chad
Dependencies: MCP23017 WattBob_TextLCD mbed-rtos mbed
tasks.cpp@19:1fecb6fa14a2, 2017-04-04 (annotated)
- Committer:
- f_legge
- Date:
- Tue Apr 04 13:47:53 2017 +0000
- Revision:
- 19:1fecb6fa14a2
Experiment with threads;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
f_legge | 19:1fecb6fa14a2 | 1 | #include "main.h" |
f_legge | 19:1fecb6fa14a2 | 2 | |
f_legge | 19:1fecb6fa14a2 | 3 | void speedControl(void) |
f_legge | 19:1fecb6fa14a2 | 4 | { |
f_legge | 19:1fecb6fa14a2 | 5 | Accel_Reg = (Accel * 100); |
f_legge | 19:1fecb6fa14a2 | 6 | Brake_Reg = (Brake * 100); |
f_legge | 19:1fecb6fa14a2 | 7 | } |
f_legge | 19:1fecb6fa14a2 | 8 | |
f_legge | 19:1fecb6fa14a2 | 9 | |
f_legge | 19:1fecb6fa14a2 | 10 | void ignition(void) |
f_legge | 19:1fecb6fa14a2 | 11 | { |
f_legge | 19:1fecb6fa14a2 | 12 | Ignit_LED = Ignit; |
f_legge | 19:1fecb6fa14a2 | 13 | } |
f_legge | 19:1fecb6fa14a2 | 14 | |
f_legge | 19:1fecb6fa14a2 | 15 | void Speed_avg(void) |
f_legge | 19:1fecb6fa14a2 | 16 | { |
f_legge | 19:1fecb6fa14a2 | 17 | Speed_2 = Speed_1; |
f_legge | 19:1fecb6fa14a2 | 18 | Speed_1 = Speed_0; |
f_legge | 19:1fecb6fa14a2 | 19 | Speed_0 = Speed_In; |
f_legge | 19:1fecb6fa14a2 | 20 | |
f_legge | 19:1fecb6fa14a2 | 21 | Avg_Speed = ((Speed_2 + Speed_1 + Speed_0)/3); |
f_legge | 19:1fecb6fa14a2 | 22 | } |
f_legge | 19:1fecb6fa14a2 | 23 | |
f_legge | 19:1fecb6fa14a2 | 24 | void Speed_Indi(void) |
f_legge | 19:1fecb6fa14a2 | 25 | { |
f_legge | 19:1fecb6fa14a2 | 26 | p = (Avg_Speed/100); |
f_legge | 19:1fecb6fa14a2 | 27 | SpeedIndicator = p; |
f_legge | 19:1fecb6fa14a2 | 28 | } |
f_legge | 19:1fecb6fa14a2 | 29 | |
f_legge | 19:1fecb6fa14a2 | 30 | void OverSpeed(void) |
f_legge | 19:1fecb6fa14a2 | 31 | { |
f_legge | 19:1fecb6fa14a2 | 32 | if (Avg_Speed >= 70) |
f_legge | 19:1fecb6fa14a2 | 33 | O_S_LED = 1; |
f_legge | 19:1fecb6fa14a2 | 34 | else |
f_legge | 19:1fecb6fa14a2 | 35 | O_S_LED = 0; |
f_legge | 19:1fecb6fa14a2 | 36 | } |
f_legge | 19:1fecb6fa14a2 | 37 | |
f_legge | 19:1fecb6fa14a2 | 38 | void Display(void) |
f_legge | 19:1fecb6fa14a2 | 39 | { |
f_legge | 19:1fecb6fa14a2 | 40 | lcd->locate(0,0); |
f_legge | 19:1fecb6fa14a2 | 41 | lcd->printf(".2%fmi, .2%fmph", Dist, Avg_Speed); |
f_legge | 19:1fecb6fa14a2 | 42 | } |
f_legge | 19:1fecb6fa14a2 | 43 | |
f_legge | 19:1fecb6fa14a2 | 44 | void Mail_queue(void) |
f_legge | 19:1fecb6fa14a2 | 45 | { |
f_legge | 19:1fecb6fa14a2 | 46 | mail_t *mail = mail_box.alloc() |
f_legge | 19:1fecb6fa14a2 | 47 | mail->speed = Avg_Speed; |
f_legge | 19:1fecb6fa14a2 | 48 | mail->accelerator = Accel_Reg; |
f_legge | 19:1fecb6fa14a2 | 49 | mail->brake = Brake_Reg; |
f_legge | 19:1fecb6fa14a2 | 50 | } |
f_legge | 19:1fecb6fa14a2 | 51 | |
f_legge | 19:1fecb6fa14a2 | 52 | void Mail_print(void) |
f_legge | 19:1fecb6fa14a2 | 53 | { |
f_legge | 19:1fecb6fa14a2 | 54 | pc.printf("Speed: %f\r",mail->speed); |
f_legge | 19:1fecb6fa14a2 | 55 | pc.printf("Accelerator: %f\r",mail->accelerator); |
f_legge | 19:1fecb6fa14a2 | 56 | pc.printf("Brake: %f\r",mail->brake); |
f_legge | 19:1fecb6fa14a2 | 57 | mail_box.free(mail); |
f_legge | 19:1fecb6fa14a2 | 58 | } |
f_legge | 19:1fecb6fa14a2 | 59 | |
f_legge | 19:1fecb6fa14a2 | 60 | void side_light(void) |
f_legge | 19:1fecb6fa14a2 | 61 | { |
f_legge | 19:1fecb6fa14a2 | 62 | SideL_LED = SideL; |
f_legge | 19:1fecb6fa14a2 | 63 | } |
f_legge | 19:1fecb6fa14a2 | 64 | |
f_legge | 19:1fecb6fa14a2 | 65 | void indicator(void) |
f_legge | 19:1fecb6fa14a2 | 66 | { |
f_legge | 19:1fecb6fa14a2 | 67 | if (Indi_L == 1 && Indi_R == 1) |
f_legge | 19:1fecb6fa14a2 | 68 | { |
f_legge | 19:1fecb6fa14a2 | 69 | Indi_L_LED = 1; |
f_legge | 19:1fecb6fa14a2 | 70 | Indi_R_LED = 1; |
f_legge | 19:1fecb6fa14a2 | 71 | wait(0.25); |
f_legge | 19:1fecb6fa14a2 | 72 | Indi_L_LED = 0; |
f_legge | 19:1fecb6fa14a2 | 73 | Indi_R_LED = 0; |
f_legge | 19:1fecb6fa14a2 | 74 | wait(0.25); |
f_legge | 19:1fecb6fa14a2 | 75 | } |
f_legge | 19:1fecb6fa14a2 | 76 | else if (Indi_L == 1) |
f_legge | 19:1fecb6fa14a2 | 77 | { |
f_legge | 19:1fecb6fa14a2 | 78 | Indi_L_LED != Indi_L_LED; |
f_legge | 19:1fecb6fa14a2 | 79 | wait(0.5); |
f_legge | 19:1fecb6fa14a2 | 80 | } |
f_legge | 19:1fecb6fa14a2 | 81 | else if (Indi_R == 1) |
f_legge | 19:1fecb6fa14a2 | 82 | { |
f_legge | 19:1fecb6fa14a2 | 83 | Indi_R_LED != Indi_R_LED; |
f_legge | 19:1fecb6fa14a2 | 84 | wait(0.5); |
f_legge | 19:1fecb6fa14a2 | 85 | } |
f_legge | 19:1fecb6fa14a2 | 86 | } |
f_legge | 19:1fecb6fa14a2 | 87 | |
f_legge | 19:1fecb6fa14a2 | 88 | void car_sim(void) |
f_legge | 19:1fecb6fa14a2 | 89 | { |
f_legge | 19:1fecb6fa14a2 | 90 | Speed_In = Speed_In + ((Accel_Reg - Brake_Reg)*?); |
f_legge | 19:1fecb6fa14a2 | 91 | } |
f_legge | 19:1fecb6fa14a2 | 92 | |
f_legge | 19:1fecb6fa14a2 | 93 | |
f_legge | 19:1fecb6fa14a2 | 94 | |
f_legge | 19:1fecb6fa14a2 | 95 |