summaryrefslogtreecommitdiff
path: root/usb-led
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2013-02-05 20:33:56 +0000
committerChristian Pointner <equinox@spreadspace.org>2013-02-05 20:33:56 +0000
commit30a80ff4e416294a36c34d319980aa0db991c35a (patch)
tree5718fef30cc839dbc23175183180fd3b9e604ed5 /usb-led
parentcreate fdev stream only once (diff)
usb-led now uses stdio stream
git-svn-id: https://svn.spreadspace.org/avr/trunk@118 aa12f405-d877-488e-9caf-2d797e2a1cc7
Diffstat (limited to 'usb-led')
-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--;