04.09.2013 Views

Styresystem for kybernetisk håndleddsprotese - NTNU

Styresystem for kybernetisk håndleddsprotese - NTNU

Styresystem for kybernetisk håndleddsprotese - NTNU

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!