int main(void) { unsigned char s[80]; int n; UART_init(); // in UART.c sei(); // Global interrupt enable //fdevopen( UART_fputc, UART_fgetc ); // establish buffered I/O callbacks for(;;) { // this demos the small memory function set. See below for FILE buffered version. UART_puts_P(PSTR("Enter text\r\n")); n = UART_gets(s, sizeof(s)-2); s[strlen(s)-1] = 0; // drop the ending \r UART_puts_P(PSTR("You entered '")); UART_puts(s); UART_puts_P(PSTR("' length=")); UART_puts(itoa(n, s, 10)); UART_puts_P(PSTR("\n\r")); // uncomment this to use the buffered I/O (memory hog). // and fdevopen(), above too. /* Same function as printf() but the format string resides in flash */ //printf_P(PSTR("Enter text\r\n")); //fgets(s, sizeof(s)-1, stdin); //s[strlen(s)-2] = 0; // drop the ending \r\n //printf_P(PSTR("\r\nYou entered '%s'\r\n"),s); } }
int main(void) { CLK_init(); SYS_init(); UART_init(); ADC_init(); PWM_init(); //Initialize PWM (servos not running) PWM_dutySet(500, 200); _bis_SR_register(LPM0_bits + GIE); // interrupts enabled while(1) { //_ldrL_ADCVal = _readADC(INCH_4); //Read ADC input on P2.1 //_ldrR_ADCVal = _readADC(INCH_5); //Read ADC input on P2.2 UART_puts((char *)"\n\r"); UART_puts((char *)"_ldrL_ADCVal: "); UART_outdec(_ldrL_ADCVal, 0); UART_puts((char *)"\n\r"); UART_puts((char *)"_ldrR_ADCVal: "); UART_outdec(_ldrR_ADCVal, 0); _delay_cycles(125000); P1OUT ^= (BIT0 + BIT6); } }
int main() { initUART(); UART_enable(); UART_puts("\r\nSTARTING...\r\n"); PSX_init(); _delay_ms(1000); UART_puts("\r\nENTERING MAIN...\r\n"); while(1) { _delay_ms(50); PSX_get_button_state(); UART_puth(PSX_get_button_pressure(BUTTON_PRESSURE_R2)); UART_puts(" "); if(PSX_button_pressed(BUTTON_SQUARE)) { PSX_set_pressure_mode(CMD_PRESSURE_OFF); } if(PSX_button_pressed(BUTTON_TRIANGLE)) { PSX_set_pressure_mode(CMD_PRESSURE_ON); } if(PSX_button_pressed(BUTTON_R1)) PSX_set_input_mode(CMD_SET_ANALOG, CMD_LOCK_OFF); if(PSX_button_pressed(BUTTON_L1)) PSX_set_input_mode(CMD_SET_DIGITAL, CMD_LOCK_OFF); } return 0; }
/*********************************************************************************************** 功能:UART 格式化输出 形参:fmt 输入字符串指针 返回:0 详解:类似于C标准库中的printf 但是只支持 %d %l %o %x %s ************************************************************************************************/ void UART_printf(char *fmt, ...) { char c; unsigned int *adx = (unsigned int*)(void*)&fmt + 1; _loop: while((c = *fmt++) != '%') { if (c == '\0') return; UART_SendData(UART_DebugPort,c); } c = *fmt++; if (c == 'd' || c == 'l') { printn(*adx, 10); } if (c == 'o' || c == 'x') { printn(*adx, c=='o'? 8:16 ); } if (c == 's') { UART_puts((char*)*adx); } adx++; goto _loop; }
void UART_putu32(uint32_t x) { char buff[11]; char *p = buff+9; buff[10] = 0; do { *(p--) = (x % 10L) + '0'; x /= 10L; } while(x); UART_puts((const char *)(p+1)); }
int main(void) { DDRB = 0xFF; PORTB = 0x20; // use CLK/1024 prescale value, clear timer/counter on compareA match TCCR1B = (1<<CS10) | (1<<CS12) | (1<<WGM12); // preset timer1 high/low byte OCR1A = ((F_CPU/1024) - 1 ); // enable Output Compare 1 overflow interrupt //TIMSK = (1<<OCIE1A); // Enable interrupts sei(); UART_init(4800); UART_putchar('W'); UART_putchar('\n'); UART_putchar('\r'); UART_puts("Hello World!\n\r"); UART_puts("This is a longer message!\n\rLet's hope it works well enough...\n\r"); UART_puts("Hello World! 1\n\r"); UART_puts("Hello World! 2\n\r"); UART_puts("Hello World! 3\n\r"); unsigned int i = 0; while (1) { i++; PORTB ^= 0x20; char charbuf[100]; sprintf(charbuf, "Loop number %d\n\r",i); UART_puts(charbuf); } }
void TIM2_IRQHandler() { char str[10]; uint16_t data; if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM2, TIM_IT_Update); GPIOB->ODR ^= 0x02; data = readADC1(10); sprintf(str, "%d\n", data); UART_puts(str); } }
USBSerialStream::USBSerialStream(Stream *echoStream) : m_infifo(512), m_outfifo(512), m_bTransferInProgress(false), m_bDontStartNew(false), m_bConnected(false) { // initialise stack USBInit(); // register descriptors USBRegisterDescriptors(abDescriptors); // register class request handler USBRegisterRequestHandler(REQTYPE_TYPE_CLASS, HandleClassRequest, abClassReqData); // register endpoint handlers USBHwRegisterEPIntHandler(INT_IN_EP, NULL); USBHwRegisterEPIntHandler(BULK_IN_EP, BulkIn); USBHwRegisterEPIntHandler(BULK_OUT_EP, BulkOut); USBHwRegisterDevIntHandler(DevIntHandler); USBHwRegisterFrameHandler(FrameHandler); // enable bulk-in interrupts on NAKs //USBHwNakIntEnable(INACK_BI); // set up USB interrupt VICIntSelect &= ~(1<<22); // select IRQ for USB VICIntEnable |= (1<<22); (*(&VICVectCntl0+INT_VECT_NUM)) = 0x20 | 22; // choose highest priority ISR slot (*(&VICVectAddr0+INT_VECT_NUM)) = (int)USBHandlerSerial; UART_puts("Connecting USB\n\r"); // connect to bus USBHwConnect(TRUE); }