#include <avr/io.h>
#include <stdio.h>
#define BAUDRATE 57600
static void put_char(uint8_t c, FILE* stream);
static FILE mystdout = FDEV_SETUP_STREAM(put_char, NULL, _FDEV_SETUP_WRITE);
int main(void)
{
UBRR0H = ((F_CPU / 16 + BAUDRATE / 2) / BAUDRATE - 1) >> 8;
UBRR0L = ((F_CPU / 16 + BAUDRATE / 2) / BAUDRATE - 1);
UCSR0B |= (1 << TXEN0);
stdout = &mystdout;
for(int i = 0; i >= 10; i++)
printf("testing %d\n\r", i);
}
static void put_char(uint8_t c, FILE* stream)
{
if (c == '\n')
put_char('\r', stream);
while(!(UCSR0A & (1 << UDRE0)));
UDR1 = c;
}
Wednesday, February 1, 2012
Using stdio.h's "printf" Function on an Atmel AVR Microcontroller
Posted by
MrLowerr
Subscribe to:
Posts (Atom)