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(); }
int main(void) { uart_init(); int i = 0; for (i = 0; i < 20; i++) { uart_newline(); } uart_sendstr_p(PSTR("===== VirtualWire Receiver =====")); uart_newline(); vw_avr_setup(VW_AVR_MODE_RX); vw_decode_callback = &print_packet; //vw_decode_bits_callback = &print_bits; while(1) {} return 0; }
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"); }