#include "W:\CCS_Projects\LEDRec\LEDRec.h" #define RECORD_END 0x47 #define RECORD_DELAY 150 #define COMMAND_START 0xE0 #define COMMAND_LEN 31 #define COM TRUE #define REC FALSE void led_on(void) { output_high(PIN_A5); output_low(PIN_A4); } void led_off(VOID) { output_low(PIN_A4); output_low(PIN_A5); } void sensor_on(void) { output_high(PIN_A0); output_low(PIN_A2); } void sensor_off(void) { output_low(PIN_A0); output_low(PIN_A2); } void led_blink(int n) { int j; for (j=0;j 0XFF) led_blink(10); } sensor_on(); delay_ms(10); //to get comp ready for first read while (ee_addr < max) { dat = state^C1OUT; write_eeprom(++ee_addr,dat); delay_ms(RECORD_DELAY); } sensor_off(); if (mode == REC) write_eeprom(0x00,0x99); // indicate record in memory } int decode_command(void){ char ee_addr; char new, prev; int n_changes; n_changes = 0; ee_addr = COMMAND_START; prev = read_eeprom(ee_addr++); while (ee_addr < COMMAND_START + COMMAND_LEN) { new = read_eeprom(ee_addr++); if (new != prev) { n_changes++; prev = new; } } return (n_changes >> 1); } void main() { int command; output_a(0); setup_adc_ports (NO_ANALOGS); setup_adc (ADC_OFF); setup_comparator (A1_VR); setup_vref (VREF_LOW|15); setup_oscillator (OSC_4MHZ); if (read_eeprom(0x00)==0x99) playback(); WHILE (1){ command = 0; while(command == 0) { led_blink(2); record(COM); led_blink(2); command = decode_command(); } //delay_ms(100); //led_blink(command); switch (command) { case 1: record(REC); led_blink(2); case 2: playback(); led_blink(2); break; case 3: while (1){ playback(); } default: sleep(); } } }