Exemple #1
0
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);
	}
}
Exemple #2
0
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);
	}
}
Exemple #3
0
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;
}
Exemple #4
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;
}
Exemple #5
0
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));
}
Exemple #6
0
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);
	}
}
Exemple #7
0
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);

}