summaryrefslogtreecommitdiff
path: root/software/hhd70dongle/hhd70dongle.c
diff options
context:
space:
mode:
authorBernhard Tittelbach <xro@realraum.at>2012-11-11 22:06:35 +0000
committerBernhard Tittelbach <xro@realraum.at>2012-11-11 22:06:35 +0000
commitbee27b3f0dc610885557426e0ab11b6ecb0a78ff (patch)
tree4bffe34913bed43f76da3f9f66d382453b64f677 /software/hhd70dongle/hhd70dongle.c
parentAdded TCM8240, SN74LVCC3245A, SDCard Conn to mur-sat.lib (diff)
Beacon Test (still RX Buffer underflow)
git-svn-id: https://svn.spreadspace.org/mur.sat@645 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'software/hhd70dongle/hhd70dongle.c')
-rw-r--r--software/hhd70dongle/hhd70dongle.c79
1 files changed, 68 insertions, 11 deletions
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 <port>
-#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();
+ }
}
}