From bee27b3f0dc610885557426e0ab11b6ecb0a78ff Mon Sep 17 00:00:00 2001 From: Bernhard Tittelbach Date: Sun, 11 Nov 2012 22:06:35 +0000 Subject: Beacon Test (still RX Buffer underflow) git-svn-id: https://svn.spreadspace.org/mur.sat@645 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- software/hhd70dongle/hhd70dongle.c | 79 ++++++++++++++++++++++++++++++++------ 1 file changed, 68 insertions(+), 11 deletions(-) (limited to 'software/hhd70dongle/hhd70dongle.c') diff --git a/software/hhd70dongle/hhd70dongle.c b/software/hhd70dongle/hhd70dongle.c index 30b7a55..d18d87a 100644 --- a/software/hhd70dongle/hhd70dongle.c +++ b/software/hhd70dongle/hhd70dongle.c @@ -50,7 +50,7 @@ //#define RTC_SECONDS -#define CPU_PRESCALE(n) do { CLKPR = 0x80; CLKPR = (n); } while(0) +#define CPU_PRESCALE(n) do { CLKPR = 0x80; CLKPR = (n); } while(0) char read_buffer[64]; // buffer for reading usb signals char write_buffer[64]; // buffer for writing usb signals @@ -116,7 +116,31 @@ void EVENT_USB_Device_ControlRequest(void) } /* ###### end LUFA CDC-ACM specific definitions ###### */ +bool enable_tx_part=false; +bool enable_rx_part=false; +bool enable_beacon_part=false; +void print_part_status(void) +{ + CDC_Device_SendString(&VirtualSerial_CDC_Interface, "OOK Beacon: "); + CDC_Device_SendString(&VirtualSerial_CDC_Interface, ((enable_beacon_part)? "Enabled": "Disabled") ); + CDC_Device_SendString(&VirtualSerial_CDC_Interface, "\r\n"); + CDC_Device_SendString(&VirtualSerial_CDC_Interface, "RX-Part: "); + CDC_Device_SendString(&VirtualSerial_CDC_Interface, ((enable_rx_part)? "Enabled": "Disabled") ); + CDC_Device_SendString(&VirtualSerial_CDC_Interface, "\r\n"); + CDC_Device_SendString(&VirtualSerial_CDC_Interface, "TX-Part: "); + CDC_Device_SendString(&VirtualSerial_CDC_Interface, ((enable_tx_part)? "Enabled": "Disabled") ); + CDC_Device_SendString(&VirtualSerial_CDC_Interface, "\r\n"); +} + +//void generate_morse_code_sequence(char *msg, *cw_buffer, uint16_t buffer_len) +//{ + //char cw_short[2] = {1,1}; + //char cw_long[2] = {1,3}; + //char cw_space[2] = {0, 1}; + //char cw_letterspace[2] = {0,3}; + //char cw_wordspace[2] = {0, 7}; +//} int main(void) { @@ -133,11 +157,14 @@ int main(void) CDC_Device_SendString(&VirtualSerial_CDC_Interface,"hhd70dongle ready\r\n"); _delay_ms(500); - c1101_init(); + c1101_spi_strobe_command(SPIC1101_ADDR_SRES); // reset c1101 + //c1101 init now happens after pressing B, S or E + hhd70_palna_rxmode(); - bool enable_tx_part=true; - bool enable_rx_part=true; + enable_tx_part=false; + enable_rx_part=false; + enable_beacon_part=false; int8_t fdev_m = 1; int8_t fdev_e = 1; @@ -156,25 +183,45 @@ int main(void) wdt_enable(WDTO_500MS); reset(); } + else if ((char) recv_byte == 'B') + { + enable_beacon_part = !enable_beacon_part; + if (enable_beacon_part) + { + enable_rx_part=false; + enable_tx_part=false; + c1101_init_ook_beacon(); + } + print_part_status(); + } else if ((char) recv_byte == 'E') { enable_rx_part = !enable_rx_part; - CDC_Device_SendString(&VirtualSerial_CDC_Interface, "RX-Part now "); - CDC_Device_SendString(&VirtualSerial_CDC_Interface, ((enable_rx_part)? "Enabled": "Disabled") ); - CDC_Device_SendString(&VirtualSerial_CDC_Interface, "\r\n"); + if (enable_rx_part) + { + enable_beacon_part=false; + c1101_init(); + } + print_part_status(); } else if ((char) recv_byte == 'S') { enable_tx_part = !enable_tx_part; - CDC_Device_SendString(&VirtualSerial_CDC_Interface, "TX-Part now "); - CDC_Device_SendString(&VirtualSerial_CDC_Interface, ((enable_tx_part)? "Enabled": "Disabled") ); - CDC_Device_SendString(&VirtualSerial_CDC_Interface, "\r\n"); + if (enable_tx_part) + { + enable_beacon_part=false; + c1101_init(); + } + print_part_status(); } else if ((char) recv_byte == 'R') + { c1101_spi_dump_registers_to_usb(); + print_part_status(); + } else if ((char) recv_byte == 'D' || (char) recv_byte == 'd') { - sprintf(write_buffer,"Freq Deviation Now: %u0 Hz\r\n", c1101_setFSKDeviationFromCarrier(fdev_m, fdev_e)); + sprintf(write_buffer,"FSK Freq Deviation Now: %u0 Hz\r\n", c1101_setFSKDeviationFromCarrier(fdev_m, fdev_e)); CDC_Device_SendString(&VirtualSerial_CDC_Interface, write_buffer); if ((char) recv_byte == 'd') { @@ -196,6 +243,7 @@ int main(void) fdev_m %= 8; } } + } CDC_Device_USBTask(&VirtualSerial_CDC_Interface); @@ -280,5 +328,14 @@ int main(void) c1101_transmitData((char*) write_buffer,14); led_off(); } + + if (enable_beacon_part) + { + char mursat_beacon[8] = {0b11101110, 0b11100010, 0b00111010, 0b10101000, 0b10001110, 0b11101110, 0b00101011, 0b10100000}; //OE6EOF + led_on(); + CDC_Device_SendString(&VirtualSerial_CDC_Interface,"OOK Sending Beacon\r\n"); + c1101_transmitData(mursat_beacon,8); + led_off(); + } } } -- cgit v1.2.3