Revision 1ba00e63
Added the watchdog code into radio buggy arduino code. Tested. Works.
arduino/RadioBuggyMega/RadioBuggyMega.ino | ||
---|---|---|
7 | 7 |
#include "receiver.h" |
8 | 8 |
#include "brake.h" |
9 | 9 |
#include "encoder.h" |
10 |
#include "watchdog.h" |
|
10 | 11 |
|
11 | 12 |
#define BRAKE_PIN 8 |
12 | 13 |
#define BRAKE_INDICATOR_PIN 5 |
... | ... | |
23 | 24 |
|
24 | 25 |
#define XBEE_DANGER 12 |
25 | 26 |
|
27 |
#define TIME_THRESH 1000 |
|
28 |
|
|
26 | 29 |
unsigned long timer = 0L; |
27 | 30 |
static char data; // used to pass things into xbee |
28 | 31 |
static unsigned long last_time; |
29 | 32 |
|
33 |
|
|
34 |
#define LED_DANGER_PIN 12 |
|
35 |
|
|
30 | 36 |
enum STATE { START, RC_CON, RC_DC, BBB_CON }; |
31 | 37 |
|
38 |
// TODO: FIX IT WHEN IT STOPS FAILING. MAKE CODE BREAK BETTER |
|
39 |
|
|
40 |
void watchdog_fail(){ |
|
41 |
brake_drop(); |
|
42 |
Serial.println("Watchdog Fail! -------------------"); |
|
43 |
digitalWrite(LED_DANGER_PIN, HIGH); |
|
44 |
} |
|
45 |
|
|
32 | 46 |
void setup() { |
33 | 47 |
Serial.begin(9600); |
34 | 48 |
Serial1.begin(9600); |
... | ... | |
38 | 52 |
// Initialize Buggy |
39 | 53 |
// Pins 2 and 3: pin 2 is thr, pin 3 is ail |
40 | 54 |
receiver_init(); |
55 |
watchdog_init(TIME_THRESH, &watchdog_fail); |
|
41 | 56 |
brake_init(BRAKE_PIN, BRAKE_INDICATOR_PIN); |
42 | 57 |
steering_init(STEERING_PIN, 120, 133, 145); |
43 | 58 |
encoder_init(ENCODER_PIN); |
59 |
|
|
60 |
pinMode(LED_DANGER_PIN, OUTPUT); |
|
44 | 61 |
|
45 | 62 |
// Set up loop |
46 | 63 |
//last_time = millis(); |
... | ... | |
67 | 84 |
void loop() { |
68 | 85 |
|
69 | 86 |
if(rc_available[THR_INDEX]) { |
87 |
watchdog_feed(); |
|
70 | 88 |
rc_angle = receiver_get_angle(THR_INDEX); |
71 | 89 |
steer_angle = convert_rc_to_steering(rc_angle); |
72 | 90 |
steering_set(steer_angle); |
73 | 91 |
} |
74 | 92 |
|
75 | 93 |
if(rc_available[AIL_INDEX]) { |
94 |
watchdog_feed(); |
|
76 | 95 |
rc_thr = receiver_get_angle(AIL_INDEX); |
77 | 96 |
// TODO make this code...less...something |
78 | 97 |
if(rc_thr < 90) { |
... | ... | |
83 | 102 |
} |
84 | 103 |
|
85 | 104 |
// Loop |
105 |
watchdog_loop(); |
|
86 | 106 |
encoder_loop(); |
87 | 107 |
//xbee_loop(); |
88 | 108 |
|
Also available in: Unified diff