Styresystem for kybernetisk håndleddsprotese - NTNU
Styresystem for kybernetisk håndleddsprotese - NTNU
Styresystem for kybernetisk håndleddsprotese - NTNU
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Kapittel 6. Implementasjon 46<br />
main.c<br />
1.0: Hovedprosess<br />
ISR(CAN)<br />
2.0: CAN-interrupt<br />
ISR(Hall-sensor)<br />
3.0: Hall-interrupt<br />
ISR(Overstrøm)<br />
4.0: Interrupt ved<br />
overstrøm<br />
ISR(Magnetisk<br />
enkoder)<br />
5.0: Interrupt fra<br />
magnetisk enkoder<br />
ISR(Motorhastighet)<br />
6.0: Interrupt ved beregning<br />
av motorhastighet<br />
1.1: control_<br />
controller()<br />
2.1: control_<br />
set_...()<br />
3.1: motor_<br />
read_hall()<br />
4.1: motor_stop()<br />
4.4: motor_start()<br />
controller.c position.c<br />
motor.c<br />
4.2: _delay_ms()<br />
1.2: motor_<br />
read_speed()<br />
1.3: motor_<br />
set_speed()<br />
1.2: position_read()<br />
1.2: current_read()<br />
4.5: motor_<br />
read_hall()<br />
3.2, 4.6: motor_<br />
commutate()<br />
4.3: current_startup()<br />
current.c<br />
util/delay<br />
Figur 6.11: Kommunikasjonsdiagram <strong>for</strong> kjøring av systemets seks prosesser. Prosessene<br />
5.0 og 6.0 utfører bare manipulering av variabler i henholdsvis position.c og motor.c.<br />
I 1.2 kalles den funksjonen som er nødvendig <strong>for</strong> valgt regulator.