Beispiel #1
0
void uart_putchar(int fd, char ch) {
  int uart = (fd == 2) ? s_system_uartno : UART_MAIN;
  if (fd == 2 && !debug_enabled) return;

  if (ch == '\n') uart_tx_char(uart, '\r');
  uart_tx_char(uart, ch);
}
Beispiel #2
0
void uart_tx_strn_cooked(pyb_uart_obj_t *self, const char *str, uint len) {
    for (const char *top = str + len; str < top; str++) {
        if (*str == '\n') {
            uart_tx_char(self, '\r');
        }
        uart_tx_char(self, *str);
    }
}
Beispiel #3
0
static void uart_system_tx_char(char ch) {
  if (ch == '\n') {
    uart_tx_char(s_system_uartno, '\r');
    uart_tx_char(s_system_uartno, '\n');
  } else if (ch != '\r') {
    uart_tx_char(s_system_uartno, ch);
  }
}
Beispiel #4
0
void uart_write(int fd, char *p, size_t len) {
  size_t i;
  int uart = (fd == 2) ? s_system_uartno : UART_MAIN;
  if (fd == 2 && !debug_enabled) return;

  for (i = 0; i < len; i++) {
    if (p[i] == '\n') uart_tx_char(uart, '\r');
    uart_tx_char(uart, p[i]);
  }
}
Beispiel #5
0
bool uart_tx_strn(pyb_uart_obj_t *self, const char *str, uint len) {
    for (const char *top = str + len; str < top; str++) {
        if (!uart_tx_char(self, *str)) {
            return false;
        }
    }
    return true;
}
Beispiel #6
0
int uart_out_str(char *str, int size)
{
    int lp;

    for (lp = 0; lp < size; lp++)
        uart_tx_char(str[lp]);

    return lp;
}
Beispiel #7
0
/// \method writechar(char)
/// Write a single character on the bus.  `char` is an integer to write.
/// Return value: `None`.
STATIC mp_obj_t pyb_uart_writechar(mp_obj_t self_in, mp_obj_t char_in) {
    pyb_uart_obj_t *self = self_in;

    // get the character to write
    uint8_t data = mp_obj_get_int(char_in);

    // send the character
    if (!uart_tx_char(self, data)) {
        nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(ETIMEDOUT)));
    }

    return mp_const_none;
}
Beispiel #8
0
static size_t IRAM_ATTR uart_write(int fd, const void * data, size_t size)
{
    assert(fd >=0 && fd < 3);
    const char *data_c = (const char *)data;
    uart_dev_t* uart = s_uarts[fd];
    /*
     *  Even though newlib does stream locking on each individual stream, we need
     *  a dedicated UART lock if two streams (stdout and stderr) point to the
     *  same UART.
     */
    _lock_acquire_recursive(&s_uart_locks[fd]);
    for (size_t i = 0; i < size; i++) {
#if CONFIG_NEWLIB_STDOUT_ADDCR
        if (data_c[i]=='\n') {
            uart_tx_char(uart, '\r');
        }
#endif
        uart_tx_char(uart, data_c[i]);
    }
    _lock_release_recursive(&s_uart_locks[fd]);
    return size;
}
Beispiel #9
0
int main()
{
	int val;
	adc_init();
	uart_init();
	timer_init();
	while(1)
	{
		AD0CR |= (1<<24);			  // Start ADC
		while(!(AD0GDR & (1<<31))) ;  // Waiting for adc conversion to finish
		val = (AD0DR1 & 0xFFC0) >> 6;  // Result in bits 15:6
		uart_tx_int(val);
		uart_tx_char('\r');
		delay_ms(100);				  // To avoid PC from hanging
	}
}
Beispiel #10
0
void eeprom_read()
{
	/***********************WRITING DATA*************************************/
	start();
	uart_tx_str("\r\nhere\r\n");
	devadd1();
	location(0x00);
	stop();
	
	/******************************************READ********************************************/
	start();
	devadd2();
	for(j=0;j<=5;j++)
	{
		uart_tx_char(readdata());
	}

	stop();
}
Beispiel #11
0
int __fputc(int c, FILE *stream)
{
	uart_tx_char(uart_print_base, c);
	return 0;
}
Beispiel #12
0
 int main()
 {
 	int x,y,z;
	adc_init();
	uart_init();

	lcd_init();	delay(100);
	
	lcd_char('a');
 	
	while(1) 
	{	cmd(0x01); // Clear LCD
		
		AD0CR = 0x01200600; // ADC Stop, select Channel 0
		//AD0CR |= 0x01000000;  // Start ADC, Channel 0
		x = read_adc();
		cmd(0x80);
		lcd_int(x);
		uart_tx_num(x);
		uart_tx_char(' ');
		
		AD0CR = 0x01200602;
		//AD0CR |= 0x01000000;  // Start ADC, Channel 0
		y = read_adc();
		cmd(0x85); 
		lcd_int(y);
		uart_tx_num(y);
		uart_tx_char(' ');

		
	
		AD0CR = 0x01200604;
		//AD0CR |= 0x01000000;  // Start ADC, Channel 0
		z = read_adc();
		cmd(0x8A); 
		lcd_int(z);
		uart_tx_num(z);
		uart_tx_str("\r");

				  
		if(x>600 )
		{
			cmd(0x01);
			lcd_str("ALERT x = ");
			uart_tx_str("\nAlert x");
			cmd(0xc0);
			lcd_int(x);
			delay(1000);
			cmd(0x01);
		}
		if(y<300 )
		{
			cmd(0x01);
			lcd_str("ALERT y = ");
			uart_tx_str("\nAlert y");
			cmd(0xc0);
			lcd_int(y);
			delay(1000);
			cmd(0x01);
		}
		delay(100);	
		
			

	}
 	
 }
Beispiel #13
0
void uart_out_char_check_CR(const char c)
{
    uart_tx_char(c);
    if (c == '\n')
        uart_tx_char('\r');
}