Пример #1
0
void fill_in_message1(void) {
  int i = 0;
  uint8_t c;
  for(i = 0; i < MESSAGE1_PRODUCT_KEY_LENGTH; ++i) {
    messages[messages_index].board_product_key[i] = uart_getchar();
  }
  for(i = 0; i < MESSAGE1_OUTLET_NUMBER_LENGTH; ++i) {
    messages[messages_index].board_outlet_number[i] = uart_getchar();
  }
  for(i = 0; i < MESSAGE1_STATE_LENGTH; ++i) {
    messages[messages_index].state[i] = uart_getchar();
  }
  for(i = 0; i < MESSAGE1_OUTLET_ID_LENGTH; ++i) {
    messages[messages_index].outlet_id[i] = uart_getchar();
  }
  c = uart_getchar();
  if (c != '\0') {
    print("Characte ending message was NOT a null... Possible Error! (message_index NOT incremented)\n");
  } else {
    messages_index++;
    if(messages_index >= MESSAGES_QUEUE_LENGTH) {
      messages_index = 0;
    }
  }
  return;
}
Пример #2
0
/*-----------------------------------------------------------------------------
 *       SER_GetChar:  Read a character from the Serial Port
 *----------------------------------------------------------------------------*/
int32_t SER_GetChar (void) {
#ifdef __DBG_ITM
  if (ITM_CheckChar())
    return ITM_ReceiveChar();
#else
//  if (UART1_S1 & UART_S1_RDRF_MASK) {
    //while (!(UART1_S1 & UART_S1_RDRF_MASK));
    //return (UART1_D);

	// Wait until character has been received //
    //while (!(UART_S1_REG(TERM_PORT) & UART_S1_RDRF_MASK));
    
    // Return the 8-bit data from the receiver //
    //return UART_D_REG(TERM_PORT);
	
	if (TERM_PORT_NUM == 0)
    return uart0_getchar(UART0_BASE_PTR);
  else if (TERM_PORT_NUM == 1)
    return uart_getchar(UART1_BASE_PTR);
  else
    return uart_getchar(UART2_BASE_PTR);
  
#endif
  return (-1);
}
Пример #3
0
int main(void)
{
	ioinit();
	
	for(;;)
	{
		unsigned char c = uart_getchar();
		uart_putchar(c);
		switch(c) {
			case 0xfe:
				c = uart_getchar();
				switch(c) {
					case 0x01:
						sbi(PORTB, OUT_RELAY);
						uart_putchar(0x11);
						break;
					case 0x02:
						cbi(PORTB, OUT_RELAY);
						uart_putchar(0x11);
						break;
					default:
						uart_putchar(0xee);
				}
				break;
			default:
				uart_putchar(0xee);
		}
	}
	
	return 0;
}
Пример #4
0
// Read a max of 2 digits from the serial line
// return value of -1 means no change (user just hit return)
signed char terminalmode_readnum(unsigned char chr_nl){
        unsigned char ch;
        unsigned char lineendcnt=1;
        unsigned char digits=2; // you can enter max 2 digits
        signed char rval=-1;
	if (chr_nl){
		// we expect \r\n as line end
		lineendcnt=2;
	}
	ch=uart_getchar(1);
	while(ch != '\r' && ch !='\n' && digits){
		if ((ch >= '0') && (ch <= '9')){
			if (rval==-1){
				rval=0;
			}
			uart_sendchar(ch); // echo number back to terminal
			rval=rval*10 + (ch  - (unsigned char)'0');
			digits--;
		}
		ch=uart_getchar(1);
	}
	// user just pressed return or enter just 1 digit
	if (ch == '\r' || ch == '\n'){
		lineendcnt--;
	}
	// get \n or \r\n after a number was entered:
	while(lineendcnt){
		ch=uart_getchar(1);
		lineendcnt--;
	}
	return(rval);
}
Пример #5
0
int main(int argc, char **argv)
{
	int8_t  *p;
	uint8_t  c;

	// Initialize UART

	c = '*'; // print msg on first iteration
	for(;;) {
		uint32_t start, size; 

		switch (c) {
    		case 'u': // upload 
    			start = read_uint32();
    			size  = read_uint32();
    			for (p = (int8_t *) start; p < (int8_t *) (start+size); p++)
    				*p = uart_getchar();
    			break;
		case 'd': // download
    			start = read_uint32();
    			size  = read_uint32();
    			for (p = (int8_t *) start; p < (int8_t *) (start+size); p++)
				uart_putchar( *p );
    			break;
    		case 'g': // goto
    			start = read_uint32();
    			jump(start);
    			break;   
		default:
			uart_putstr("**SAKC/bootloader** > \r\n");
			break;
		};
		c = uart_getchar();
	}
}
Пример #6
0
void uart_get_pwms(uint8_t *pwms)
{
    char c;
    while((c = uart_getchar()));
    pwms[0] = uart_getchar();
    pwms[1] = uart_getchar();
    pwms[2] = uart_getchar();
}
Пример #7
0
int main(void)
{
  DynamixelPacket dpacketIn;
  DynamixelPacketInit(&dpacketIn);

  int c;
  int ret;
  uint8_t id;
  uint8_t type;
  uint8_t * data;
  
  uart_init();
  uart_setbaud(115200);

  //enable global interrupts 
  sei ();

  //uart_printf("hello\n\r");

  DDRC  |= _BV(PINC0);
  LaserOff();
  
  while(1)
  {
    c= uart_getchar();
    if (c != EOF)
     uart_putchar(c);
  }


  while(1)
  {
    c= uart_getchar();
    if (c != EOF)
    {
      ret = DynamixelPacketProcessChar(c,&dpacketIn);
      if (ret > 0)
      {
        id = DynamixelPacketGetId(&dpacketIn);
        if (id == LASER_POINTER_ID)
        {
          type = DynamixelPacketGetType(&dpacketIn);
          if (type == INSTRUCTION_WRITE_DATA)
          {
            data = DynamixelPacketGetData(&dpacketIn);
            if (data[0] == 0)
              LaserOff();
            else
              LaserOn();
          }
        }
      }
    }
  }
  

  return 0;
}
Пример #8
0
int uart_get(void){
    int output;
    while(1){
        if(uart_getchar() == '\n')
            break;
        else
            output = uart_getchar();
    }
    return output;
}
char
in_char (void)
{
  if (TERM_PORT_NUM == 0)
    return uart0_getchar(UART0_BASE_PTR);
  else if (TERM_PORT_NUM == 1)
    return uart_getchar(UART1_BASE_PTR);
  else
    return uart_getchar(UART2_BASE_PTR);
 
}
Пример #10
0
void main ( void )  {


xdata unsigned char ram_buffer[128];



uint8_t  i,k ;
uint16_t addr;

addr = 0x0000;

i=0;

uart_config(BR_9600_6MHZ);

printf("\r 8051s UART Test Program \n\r")	;

while(1) {

   for ( i =0; i< 20; i++) {
      k = uart_getchar();
      ram_buffer[i] = k;
      uart_putchar(k);
      printf("\n\r");

}


printf("Captured 20 data in RAM ");
printf("\r\n");
k = uart_getchar();

printf(" Buffer COntents : ");
for ( k=0 ; k < i ; k++) {
	uart_putchar(ram_buffer[k]);

}
printf("\n\r");
 printf(" Completed ");



 while(1)
  {
 	 ;
  }
}

}
Пример #11
0
/**
 * \brief Read an unsigned integer from the menu prompt
 * \param[in] prompt - the text to display
 * \return the unsigned integer read 
 */
unsigned int menu_read_uint(const char *prompt)
{
    unsigned int value = 0;
 
    uart_puts(prompt);
    
    while (1) {
        int c = uart_getchar();

        watchdog_pet();
     
        if ((c >= '0') && (c <= '9')) {
            value *= 10;
            value += c - '0';
            uart_putchar(c);
        } else if ((c == '\n') || (c == '\r')) {
            uart_puts("\n");
            break;
        } else {
            /* Not a valid character */
        }
    }

    return value;
}
Пример #12
0
int main(void)
{
        uart_init();
        i2c_init();

        i2c_start(0x74);
        i2c_send(0x00);
        i2c_send(0x25);
        i2c_send(0x06);
        i2c_send(0x24);
        i2c_send(0x0F);
        i2c_stop();

        uart_getchar();

        i2c_start(0x74);
        i2c_send(0x40);
        i2c_send(0xC1);
        i2c_send(0xC2);
        i2c_stop();

        while(1 > 0) {

        }

        return 0;
}
Пример #13
0
int c_entry(void)
{
	uart_init();
	
	myprintf("hello, world!\n");
	
	myprintf("hello, %c%c%c\n", 'a', 'k', 'a');
	myprintf("hello, %s\n", "edu");
	myprintf("hello, %x\n", 0x43110);
	myprintf("hello, %d\n", 0x0);
	myprintf("hello, %d\n", 12345678);
	
	myprintf("s5pv210 chip id = 0x%x\n", *(int *)0xE0000000);
	
	while (1)
	{
		char c = 'a';
		
		c = uart_getchar();
		
		//for (c = 'a'; c <= 'z'; c++)
		uart_putchar(c);
	}

	return 0;
}
Пример #14
0
int mymain(void)
{	
	int * p = (int *)0x7f005000;
	int i = 0;
	char c;
	
	led_init();	
	
	// clear all uart0 regs
	for (i = 0; i < 12; i++)
		*(p+i) = 0x0;
	
	// uart init
	uart_init();
	
	for (c = 'a'; c <= 'z'; c++)
		uart_putchar(c);
	
	while(1)
	{		
		c = uart_getchar();		
		uart_putchar(c);
	#if 0	
		led_on();
		delay();			
		led_off();
		delay();
	#endif	
	}
	
	return 0;
}
Пример #15
0
char * gets(char * s)
{	
	char c;
	char * buf = s;
	
	while ((c = uart_getchar()) != '\r')
	{
		if (c != '\b')
		{
			*buf++ = c;
			uart_putchar(c);
		}
		else	// '\b'
		{
			if (buf > s)
			{	
				buf--;
				*buf = '\0';
				uart_putchar('\b');
				uart_putchar(' ');
				uart_putchar('\b');
			}
		}
	}
	
	*buf = '\0';
	uart_putchar('\r');
	uart_putchar('\n');
	
	return s;	
}
Пример #16
0
void main(void) {
    welcome();

    while (1) {
        UARTCHAR(uart_getchar());
    }
}
Пример #17
0
/**
 * \brief The main application
 *
 * This application will initialize the UART, send a character and then receive
 * it and check if it is the same character as was sent.
 *
 * \note The RX and TX pins should be externally connected in order to pass the
 * test.
 */
int main(void)
{
	uint8_t data;
	uint8_t cnt;
	cli();
	uart_init();
	sei();

	// Send the test string
	for (cnt = 0; cnt < strlen(test_string); cnt++) {
		uart_putchar(test_string[cnt]);
	}

	// Check if we have received the string we sent
	cnt = 0;
	do {
		// Wait for next character
		while (!uart_char_waiting());
		data = uart_getchar();
		// Compare to what we sent
		Assert (data == test_string[cnt++]);
	} while (cnt < strlen(test_string));

	while (true);
}
Пример #18
0
intx uart_read( TiUartAdapter * uart, char * buf, intx size, uint8 opt )
{
#ifdef CONFIG_UART_INTERRUPT_DRIVEN
    intx copied=0;
    int8 count =0;
    
    hal_enter_critical();
    copied = min( uart->rxlen, size );
    if (copied > 0)
    {
        memmove( (void *)buf, (void *)&(uart->rxbuf[0]), copied );
        uart->rxlen -= copied;
        if (uart->rxlen > 0)
            memmove( (void *)&(uart->rxbuf[0]), (void *)&(uart->rxbuf[copied]), uart->rxlen );
    }
    hal_leave_critical();
    return copied;
#endif

#ifndef CONFIG_UART_INTERRUPT_DRIVEN
    intx ret=0;
    if (size > 0)
    {
        ret = uart_getchar( uart, buf );
	}
    return ret;
#endif
}
Пример #19
0
int main (void)
{
    uint32_t now, led_ms; // ms
    unsigned char c;

    DDRB  |= 1 << 7; // Arduino pin 13
    uart0_init();
    tmr_init();

    sei();

    printf("hello world\n");
    led_ms = tmr_count_ms();
    while (1) {
        now = tmr_count_ms();  

        if ((now - led_ms) >= 1000) {
            led_ms = now;
            PORTB ^= 1 << 7; // Arduino pin 13
            printf("%ld ms\n", now);
        }

        c = uart_getchar();
        if (c) {
            uart_putchar(c);
        }
    }

    return 0;
}
Пример #20
0
void console_poll()
{
	int ch = 0;

	if(!uart_getchar)
		return;
	ch = uart_getchar();
	if (ch == -1)
		return;

	console_putc((unsigned int)ch);

	if (console_buf_loc + 1 >= MAX_CONSOLE_BUF
		|| ch == '\r'
		|| ch == '\n') {
		console_buf[console_buf_loc++] = (char)ch;
		console_buf[console_buf_loc] = 0;
		console_putc('\n');
		console_rx_cmd_complete(console_buf);
		console_buf_loc = 0;
		console_buf[console_buf_loc] = 0;
	}
	else {
		console_buf[console_buf_loc++] = (char)ch;
	}
}
Пример #21
0
int main(void)
{
	led_init(); /* 设置对应管脚为输出 */
	clock_init(); /* 初始化时钟 */
	uart_init(); /* 初始化UART0 */

	wy_printf("\n********************************\n");
	wy_printf("                   wy_bootloader\n");
	wy_printf("                   vars: %d \n",2012);
	wy_printf("********************************\n");
	while (1)
	{
		char c = 'x';
		putchar('\n');
		
		c = uart_getchar();
		putchar(c);
		
		for (c = 'a'; c <= 'z'; c++)
			putchar(c);
		break;
	}

	while(1)
	{
		led_water();
	}
	return 0;
}
Пример #22
0
void load(int argc, char * argv[])
{	
	int size = 180;
	int addr = 0x51000000;
	char * p;
	int i;
	
	puts("load usage: load 0x51000000 size\n");
	
	if (argc > 2)
	{
		addr = atoi(argv[1]);
		size = atoi(argv[2]);
	}
	
	puts("Ready for binary download to 0x");
	putx(addr);
	puts(" at 115200 bps...\n");
	
	// get user load addr 
	p = (char *)addr;
	for (i = 0; i < size; i++)
	{
		*p++ = uart_getchar();
	}
	
	puts("load to addr 0x");
	putx(addr);	
	puts("\ntotal size 0x");
	putx(size);
	puts("\nload finished \n");	
}
Пример #23
0
/**
 * \brief Read user input and execute menu selection
 */
void menu_run(void)
{
    static unsigned int value = 0;
    int c = uart_getchar();

    if ((c >= '0') && (c <= '9')) {
        value *= 10;
        value += c - '0';
        uart_putchar(c);
    } else if ((c == '\n') || (c == '\r')) {
        if ((value > 0) && (value <= _current_menu_size)) {
            /* Invoke the callback */
            if (_current_menu[value - 1].handler != NULL) {
                uart_puts("\n");
                if (_current_menu[value - 1].handler() != 0) {
                    uart_puts("\nError\n");
                }
            }
        } else {    
            uart_puts("\nInvalid selection\n");
        }

        display_menu();
        value = 0;
    } else {
       /* Not a valid character */ 
    }
}
Пример #24
0
Файл: main.c Проект: Imajie/ARM
int main( void )
{
	int i;

	uart_init(9600);

	init_gpio();
	init_PWM();
	tss_init();

	__enable_interrupts();
	for( i=0; i<DELAY; i++) ;

	uart_putstr( "Initialization Complete\r\n" );

	// wait for user to press a key
	uart_putstr( "Press any key:" );
	uart_getchar();

	TSI0_DATA |= TSI_DATA_SWTS_MASK;

	while( 1 )
	{	
		uart_putnum( tss_pin9, 5 );		// 2^16 = 65536 = 5 digits
		uart_putstr( "\t" );
		uart_putnum( tss_pin10, 5 );	// 2^16 = 65536 = 5 digits
		uart_putstr( "\r\n" );

		for( i=0; i<DELAY; i++);
	}
	

	return 0;
}
Пример #25
0
int main(int argc, char **argv)
{
  int8_t  *p;
  uint8_t  c;
  unsigned int key, len, autoboot = 1, dispmenu = 1;

  // Initialize UART
  uart_init();

  while(1){ /* loop forever until u-boot gets booted or the board is reset */
    if(dispmenu){
     uart_putstr("\n1: Upload program to RAM\r\n");
//      uart_putstr("2: Upload u-boot to Dataflash\r\n");
//      uart_putstr("3: Upload Kernel to Dataflash\r\n");
//      uart_putstr("4: Start u-boot\r\n");
//      uart_putstr("5: Upload Filesystem image\r\n");
//      uart_putstr("6: Memory test\r\n");
      dispmenu = 0;
    }
    key = uart_getchar();
    autoboot = 0;
    if(key == '1'){
      len = rxmodem((unsigned char *)0x800);
      uart_putstr("Received ");
      hexprint(len);
      uart_putstr(" bytes\r\n");
//      jump(0x1000);
      dispmenu = 1;
    }
    else{
      uart_putstr("Invalid input\r\n");
      dispmenu = 1;
    }
  }
}
void auto_raw(void)
{
	//while there is not a button pressed
	while(!(UCSR0A & (1 << RXC0)))
	{
		//prints the raw vaues with a '$,' start and ',#' end	
		printf("$,");
		printf("%d,", x_accel());
		printf("%d,", y_accel());
		printf("%d,", z_accel());
		printf("%d,", x_gyro());
		printf("%d,", y_gyro());
		printf("%d,", z_gyro());
		magnetometer();
		printf("%d,", x_mag);
		printf("%d,", y_mag);
		printf("%d,", z_mag);
		printf("#\n\r");
	}

	//if a button is pressed and that button is ctrl-z, reset autorun, display menu
	if(uart_getchar() == 0x1A)
	{
		write_to_EEPROM(10,0);
		config_menu();
	}
	
	auto_raw();
}
Пример #27
0
void PDMA_Example()
{
   	uint8_t unItem;

    /* Init System, IP clock and multi-function I/O */
    SYS_Init(); //In the end of SYS_Init() will issue SYS_LockReg() to lock protected register. If user want to write protected register, please issue SYS_UnlockReg() to unlock protected register.

    /* Init UART0 for printf */
    UART0_Init();
    /* Init UART1 for PDMA test */
    UART1_Init();

	do
	{
		/* PDMA Sample Code: UART1 Tx/Rx Loopback */
//		printf("\n\n");
		printf("+------------------------------------------------------------------------+\n");
	    printf("|                         PDMA Driver Sample Code                        |\n");
	    printf("|                                                                        |\n");
	    printf("+------------------------------------------------------------------------+\n");
		printf("| [1] Using TWO PDMA channel to test. < TX1(CH1)-->RX1(CH0) >            |\n");
	    printf("| [2] Using ONE PDMA channel to test. < TX1-->RX1(CH0) >                 |\n");
		printf("+------------------------------------------------------------------------+\n");
		unItem = uart_getchar();

		IsTestOver =FALSE;
        if((unItem=='1') || (unItem == '2'))
        {
		    PDMA_UART(unItem);
//            printf("\n\n  PDMA sample code is complete.\n");
        }
    }while(unItem!=0x27);
//	return 0;
}
Пример #28
0
int mymain(void)
{	
	// beep off
	GPBCON = 0x1;	// output
	GPBDAT = 0x0;	// Tout = 0;
	
	// watchdog timer off
	WTCON = 0;
		
	uart_init();
	uart_putchar('a');
	
	sdram_init();
	
	*(int *)TEST = 0x12345678;
	
	print_addr(TEST);

	while (1)
	{
		char c;
		
		c = uart_getchar();			
		uart_putchar(c);			
	}
	
	while (1);
	
	return 0;
}
Пример #29
0
int uart_gets(char *s)
{
	int cnt = 0;
	while((*s++ = uart_getchar()) != UART_TCHAR) cnt++;
	*s = '\0';
	return cnt;
}
Пример #30
0
/*
 *  シリアルI/Oポートからの文字受信
 */
INT
uart_rcv_chr(SIOPCB *siopcb)
{
    if (uart_getready(siopcb)) {
        return((INT)(UB) uart_getchar(siopcb));
    }
    return(-1);
}