Project

General

Profile

Revision 191

Added by Kevin Woo about 14 years ago

Added jump table to point to the right functions in the toolbox

View differences:

main.c
19 19
/** @file main.c
20 20
 *  @brief Contains the main function for the toolbox code.
21 21
 *
22
 *  @author Suresh Nidhiry (snidhiry), Kevin Woo (kwoo)
22
 *  @author Suresh Nidhiry (snidhiry@andrew.cmu.edu)
23
 *  @author Kevin Woo (kwoo@2ndt.com)
23 24
 */
24 25

  
25 26
//Includes
......
27 28
#include <avr/interrupt.h>
28 29
#include <stdint.h>
29 30
#include <util/delay.h>
30
#include "uart.h"
31

  
31
#include <tooltron.h>
32
#include "jumptable.h"
33
#define TOOLBOX
32 34
#define RELAY       _BV(PORTD4)
33 35
#define VAC_SENSE   _BV(PIND3)
34 36
#define BUT_RED     _BV(PINB4)
......
141 143
	sei();				//Enable interrupts
142 144
	init_timer();		//Set registers for timer
143 145
	init_pins();		//Set pin directions
144
	init_uart(51);		//Set registers for uart
146
    rs485_init(51);
145 147
	/***** End Start-up Sequence *****/
146 148

  
147 149
    uint8_t r;
......
151 153
    packet[2] = 0x00;
152 154
   
153 155
	while(1) {
154
        /*
155
        usb_puti(min);
156
        uart_send_byte('m');
157
        usb_puti(sec);
158
        uart_send_byte('s');
159
        uart_send_byte('\r');
160
        uart_send_byte('\n');
161
        _delay_ms(500);
162
        */
163
        
164 156
        switch (state) {
165 157
            case sd:
166 158
                toggle_led(LED_RED, ON);
167 159
                toggle_led(LED_YELLOW, OFF);
168 160
                toggle_led(LED_GREEN, OFF);
169 161
                toggle_relay(OFF);
170
                while ((uart_get_byte(&r)) < 0);
162
                while ((rs485_get_byte(&r)) < 0);
171 163
                if (r == DELIM) {
172 164
                    state = src;
173 165
                }
174 166
                break;
175 167
            case src:
176
                while ((uart_get_byte(&r)) < 0);
168
                while ((rs485_get_byte(&r)) < 0);
177 169

  
178 170
                if (r == DELIM) {
179 171
                    state = src;
......
183 175
                }
184 176
                break;
185 177
            case dest:
186
                while ((uart_get_byte(&r)) < 0);
178
                while ((rs485_get_byte(&r)) < 0);
187 179

  
188 180
                if (r == DELIM) {
189 181
                    packet[0] = 0x00;
......
197 189
                }
198 190
                break;
199 191
            case data:
200
                while ((uart_get_byte(&r)) < 0);
192
                while ((rs485_get_byte(&r)) < 0);
201 193
                
202 194
                if (r == DELIM) {
203 195
                    packet[0] = 0x00;
......
209 201
                }
210 202
                break;
211 203
            case cs:
212
                while ((uart_get_byte(&r)) < 0);
204
                while ((rs485_get_byte(&r)) < 0);
213 205

  
214 206
                if (r == (packet[0] ^ packet[1] ^ packet[2])) {
215 207

  
......
225 217
                state = sd;
226 218
                break;
227 219
            case ack:
228
                uart_send_byte(DELIM);
229
                uart_send_byte(ADDR);
230
                uart_send_byte(SERVER);
231
                uart_send_byte('A');
232
                uart_send_byte(ADDR ^ SERVER ^ 'A');
220
                rs485_send_byte(DELIM);
221
                rs485_send_byte(ADDR);
222
                rs485_send_byte(SERVER);
223
                rs485_send_byte('A');
224
                rs485_send_byte(ADDR ^ SERVER ^ 'A');
233 225

  
234 226
                toggle_led(LED_RED, OFF);
235 227
                toggle_led(LED_YELLOW, ON);

Also available in: Unified diff