Project

General

Profile

Revision 1ba00e63

ID1ba00e631c31923cc3aa2116e375ef05249331d4
Parent e775590e
Child 0bfb57b4

Added by unknown almost 10 years ago

Added the watchdog code into radio buggy arduino code. Tested. Works.

View differences:

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