/* simple USB terminal demo */ /* This demo implements an */ /* USB virtual COM port, */ /* which echos all inputs */ /* in capital letters. */ #include <stdlib.h> #include <stdio.h> #include <string.h> #include <avr/io.h> #include <avr/power.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <util/delay.h> #if (F_CPU != 32000000) #warning clock should better be 32MHz - USB needs it #endif /* initialize the USB on chip hardware * - also switches to 32MHz * - enables medium priority interrupts * - also enables global interrupts */ extern void USBInit(void); /* process the USB */ extern void USBPoll(void); extern FILE *USBtty0; int main(void) { /* Init the USB (and clock + interrupts) */ USBInit(); for (;;) { /* Must throw away unused bytes from the host, or it will lock up while waiting for the device */ int c = fgetc(USBtty0); /* simple demo: implement an uppercase echo */ if (!(c<0)) { fputc(toupper(c), USBtty0); } USBPoll(); } }