void print_packet(uint8_t* rx_buffer) { uint8_t length = rx_buffer[0] - 3; uart_newline(); uart_sendstr_p(PSTR("Data Length: ")); utoa(length, (char *)msg_buf, 10); uart_sendstr((char *)msg_buf); uart_newline(); uart_sendstr_p(PSTR("Dec\tHex\tChr")); uart_newline(); uint8_t i; for (i = 1; i <= length; i++) { utoa(rx_buffer[i], (char *)msg_buf, 10); uart_sendstr((char *)msg_buf); uart_sendchar('\t'); utoa(rx_buffer[i], (char *)msg_buf, 16); uart_sendstr((char *)msg_buf); uart_sendchar('\t'); uart_sendchar(rx_buffer[i]); uart_newline(); } uart_newline(); }
void bios(void) { uart_start(); pwm_setup(2); adc_start(1); twi_start(); //button code init_buttons(); //set the CPU_POW led pin to high to show we have power DDRD |= (1<<CPU_POW); PORTD |= (1<<CPU_POW); //set the status leds as outputs DDRD |= (1<<stat_led1); DDRD |= (1<<stat_led2); //if this is my dev board, pull them low because the leds are cathode #if DEV PORTD &= ~(1<<stat_led1) & ~(1<<stat_led2); #endif #if DEBUG uart_sendstr("0x01 - Hardware setup successful..."); uart_sendstr("Bios complete..."); uart_sendstr("Starting main code..."); #endif return; }
void print_bits(uint16_t* bits) { utoa(((*bits) & 0x3f) << 4, (char *)msg_buf, 2); uart_sendstr((char *)msg_buf); uart_sendchar(' '); utoa((*bits) >> 6, (char *)msg_buf, 2); uart_sendstr((char *)msg_buf); uart_newline(); }
int main(void) { //Main loop, runs once but can have an infinit loop in it cli(); /* First we need to set the hardaware up, this is a macro in global.h which takes care of calling the various funtions that setup the registers to the proper seting, and also pulls the CPU_POW pin high if debug in GLOBAL.h is set, then debug keys will be sent out through the serial port when this function is called */ bios(); //if we're in debug mode, make sure you send stuff saying we got to the main code #if DEBUG uart_sendint(MAIN_KEY); #if DEBUG_BEG uart_sendstr("0x6 - Main code checkpoint..."); #endif #endif sei(); init_out('D', 5); //infinit loop that doesn't stop running. (always true since 1 is always 1 ) while(1) { pwm1A(led); }; return 0; //never reached since 1 is always true }
int main (void) { init_hw(); LCD_init(); SR_DAT_IN; while (1) { uart_sendchar('A'); uart_sendstr("0123456789abcdef"); // dly_ms(40); if (rcvd_flag) { rcvd_flag=0; uart_sendstr("R:"); if (f_gsm_ok) { f_gsm_ok=0; uart_sendstr("G_OK"); } if (f_gsm_nc) { f_gsm_nc=0; uart_sendstr("G_NC"); } if (f_gsm_cr) { f_gsm_cr=0; uart_sendstr("G_CR"); } if (f_gsm_ring) { f_gsm_ring=0; uart_sendstr("G_RI"); } uart_sendstr("\r\n"); } keys = read_keys(); if (keys==0x01) update_lcd("K1"); else if (keys==0x02) update_lcd("K2"); else if (keys==0x04) update_lcd("K3"); else if (keys==0x08) update_lcd("K4"); else if (keys==0x10) update_lcd("K5"); else if (keys==0x20) update_lcd("K6"); else if (keys==0x40) update_lcd("K7"); else if (keys==0x00) update_lcd("0123456789ABCDEF"); else update_lcd("Kx"); /* if (keys_handling(&key)) { keys = key; } */ } }
void terminalmode(unsigned char chr_nl) { signed char i; // Init terminal uart_sendstr_p(terminal_init); // uart_sendstr_P("AvrUsb500-1.4 terminal mode\r\n"); uart_sendstr_P("Enter SW Version Major ["); utoa(CONFIG_PARAM_SW_MAJOR,(char *)msg_buf, 10); uart_sendstr((char *)msg_buf); uart_sendstr_P("]: "); i=terminalmode_readnum(chr_nl); if (i >=0){ CONFIG_PARAM_SW_MAJOR=(unsigned char)i; } terminalmode_next_line(); uart_sendstr_P("Enter SW Version Minor ["); utoa(CONFIG_PARAM_SW_MINOR,(char *)msg_buf, 10); uart_sendstr((char *)msg_buf); uart_sendstr_P("]: "); i=terminalmode_readnum(chr_nl); if (i >=0){ CONFIG_PARAM_SW_MINOR=(unsigned char)i; } terminalmode_next_line(); eeprom_write_byte(EEPROM_MINOR, CONFIG_PARAM_SW_MINOR); eeprom_write_byte(EEPROM_MAJOR, CONFIG_PARAM_SW_MAJOR); eeprom_write_byte(EEPROM_MAGIC, 20);// magic number=data is valid uart_sendstr_P("\r\nOK, my SW version is now: "); utoa(CONFIG_PARAM_SW_MAJOR,(char *)msg_buf, 10); uart_sendstr((char *)msg_buf); uart_sendchar('.'); if (CONFIG_PARAM_SW_MINOR < 10){ uart_sendchar('0'); } utoa(CONFIG_PARAM_SW_MINOR,(char *)msg_buf, 10); uart_sendstr((char *)msg_buf); uart_sendstr_P("\r\n"); uart_sendstr_P("Ready. Just close the terminal. No reset needed.\r\n"); }
int main (void) { init_hw(); LCD_init(); keys_init(); number_pointer = 0; number[number_pointer] = 0; main_substate = 0; //main_state = STATE_IDLE; main_state = STATE_INIT; //main_substate = 2; while (1) { // dly_ms(NORMAL_CYCLE_MS); if (main_state==STATE_INIT) { f_gsm_ok = 0; if (main_substate==0) { update_lcd("Init..."); uart_sendstr("AT\r\nAT\r\n"); main_state=STATE_INIT_W; } if (main_substate==1) { if (number_pointer>0) update_lcd(number); else update_lcd("PIN?"); if (keys_handling(&key)) { if (key<10) { number[number_pointer++] = key + '0'; number[number_pointer]=0; } if (key==KEY_YES) { f_gsm_ok = 0; main_state=STATE_WFCALL; uart_sendstr("AT+CPIN="); uart_sendstr(number); uart_sendstr("\r\n"); main_state=STATE_INIT_W; update_lcd("PIN..."); number_pointer = 0; number[number_pointer] = 0; } if (key==KEY_NO) { number_pointer = 0; number[number_pointer] = 0; } } } if (main_substate==2) { update_lcd("PIN OK"); uart_sendstr("AT+CLVL=100\r\n"); main_state=STATE_INIT_W; } if (main_substate==3) { update_lcd("S1 OK"); uart_sendstr("AT+CALM=0\r\n"); main_state=STATE_INIT_W; } if (main_substate==4) { update_lcd("S2 OK"); uart_sendstr("AT+IPR=38400\r\n"); main_state=STATE_INIT_W; } if (main_substate==5) { update_lcd("Network..."); if (f_gsm_cr) main_state = STATE_IDLE; } } if (main_state==STATE_INIT_W) { if (f_gsm_ok==1) { f_gsm_ok = 0; main_state=STATE_INIT; main_substate++; } } if (main_state==STATE_IDLE) { if (f_gsm_ring) { f_gsm_ring=0; main_state=STATE_WFINCALL; } if (number_pointer>0) update_lcd(number); else update_lcd("Ready"); if (keys_handling(&key)) { if (key<10) { number[number_pointer++] = key + '0'; number[number_pointer]=0; } if (key==KEY_YES) { f_gsm_ok = 0; main_state=STATE_WFCALL; uart_sendstr("ATD"); uart_sendstr(number); uart_sendstr(";\r\n"); } if (key==KEY_NO) { number_pointer = 0; number[number_pointer] = 0; } } } if (main_state==STATE_WFCALL) { update_lcd("Wait"); if (f_gsm_ok==1) { f_gsm_ok = 0; main_state=STATE_CALLING; } } if (main_state==STATE_CALLING) { update_lcd("Calling"); if (f_gsm_nc) { f_gsm_nc = 0; main_state=STATE_IDLE; } if (keys_handling(&key)) { if (key==KEY_YES) { } if (key==KEY_NO) { f_gsm_ok = 0; uart_sendstr("ATH\r\n"); main_state=STATE_WFECALL; } } } if (main_state==STATE_WFECALL) { update_lcd("Ending"); if (f_gsm_ok==1) { f_gsm_ok = 0; main_state=STATE_IDLE; } } if (main_state==STATE_WFINCALL) { update_lcd("RING"); if (f_gsm_nc) { f_gsm_nc = 0; f_gsm_ring = 0; main_state=STATE_IDLE; } if (keys_handling(&key)) { if (key==KEY_YES) { f_gsm_ok = 0; uart_sendstr("ATA\r\n"); main_state=STATE_WFAINCALL; } if (key==KEY_NO) { f_gsm_ok = 0; uart_sendstr("ATH\r\n"); main_state=STATE_WFEINCALL; } } } if (main_state==STATE_WFEINCALL) { update_lcd("Ending"); if (f_gsm_ok==1) { f_gsm_ok = 0; main_state=STATE_IDLE; } } if (main_state==STATE_WFAINCALL) { update_lcd("Wait"); if (f_gsm_ok==1) { f_gsm_ok = 0; main_state=STATE_INCALL; } } if (main_state==STATE_INCALL) { update_lcd("Incall"); if (f_gsm_nc) { f_gsm_nc = 0; main_state=STATE_IDLE; } if (keys_handling(&key)) { if (key==KEY_NO) { f_gsm_ok = 0; f_gsm_ring = 0; uart_sendstr("ATH\r\n"); main_state=STATE_WFEINCALL; } } } } }