summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usb-led/Makefile2
-rw-r--r--usb-led/usb-led.c19
2 files changed, 16 insertions, 5 deletions
diff --git a/usb-led/Makefile b/usb-led/Makefile
index 0cb59f5..a8530b5 100644
--- a/usb-led/Makefile
+++ b/usb-led/Makefile
@@ -21,7 +21,7 @@
##
NAME := usb-led
-BOARD_TYPE := minimus32
+BOARD_TYPE := teensy2
OBJ := $(NAME).o
LIBS := util led lufa-descriptor-usbserial
EXTERNAL_LIBS := lufa
diff --git a/usb-led/usb-led.c b/usb-led/usb-led.c
index 658fb27..fc62874 100644
--- a/usb-led/usb-led.c
+++ b/usb-led/usb-led.c
@@ -70,6 +70,16 @@ void EVENT_USB_Device_ControlRequest(void)
}
/* end LUFA CDC-ACM specific definitions*/
+FILE usb_stream;
+
+void stdio_init(void)
+{
+ CDC_Device_CreateStream(&VirtualSerial_CDC_Interface,&usb_stream);
+ stdin = &usb_stream;
+ stdout = &usb_stream;
+ stderr = &usb_stream;
+}
+
void handle_cmd(uint8_t cmd)
{
switch(cmd) {
@@ -77,9 +87,9 @@ void handle_cmd(uint8_t cmd)
case '1': led_on(); break;
case 't': led_toggle(); break;
case 'r': reset2bootloader(); break;
- default: CDC_Device_SendString(&VirtualSerial_CDC_Interface, "error\n"); return;
+ default: printf("error\r\n"); return;
}
- CDC_Device_SendString(&VirtualSerial_CDC_Interface, "ok\n");
+ printf("ok\r\n");
}
int main(void)
@@ -90,13 +100,14 @@ int main(void)
cpu_init();
led_init();
USB_Init();
+ stdio_init();
sei();
for(;;) {
int16_t BytesReceived = CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface);
while(BytesReceived > 0) {
- int16_t ReceivedByte = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
- if(!(ReceivedByte < 0)) {
+ int ReceivedByte = fgetc(stdin);
+ if(ReceivedByte != EOF) {
handle_cmd(ReceivedByte);
}
BytesReceived--;