chad

Dependencies:   MCP23017 WattBob_TextLCD mbed-rtos mbed

Committer:
f_legge
Date:
Tue Apr 04 13:47:53 2017 +0000
Revision:
19:1fecb6fa14a2
Experiment with threads;

Who changed what in which revision?

UserRevisionLine numberNew 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