Hallo Daniel
Ich hab mich auch damit beschäftigt. Ich benutze ebenfalls einen Mega8 zum Experimeentieren.
Hier mal 2 Beispiele
Code:
#include <stdlib.h>
#include <avr/io.h>
void uart_init (void);
void uart_transmitt (unsigned char data);
void uart_puts (char *s);
/* Initialisierung des UARTs für Mega8, F_CPU = 8 MHz; Baud = 9600*/
void uart_init (void)
{
UCSRB |= (1 << TXC);
UCSRC |= ((1 << URSEL) | (3 << UCSZ0));
UBRRH = 51;
UBRRL = 25;
}
void uart_transmitt (unsigned char data)
{
while (!(UCSRA & (1 << UDRE)))
UDR = data;
}
void uart_puts (char *s)
{
while (*s)
{ /* so lange *s != '\0' also ungleich dem "String-Endezeichen" */
uart_transmitt(*s);
s++;
}
}
int main (void)
{
uart_init();
uart_transmitt('a');
return(0);
}
2. Beispiel mit Hilfe der Procyon Lib
Code:
#include <stdlib.h>
#include <avr/io.h>
#include "uart.h"
#include "rprintf.h"
int main (void)
{
int i = 5;
uint16_t a;
uartInit();
uartSetBaudRate(9600);
rprintfInit(uartSendByte);
rprintf("TEST %d", i);
for(;;)
{}
return(0);
}
Das Empfangen von Daten verstehe ich selbst noch nicht. Schau dir mal das GCC-Tutorial auf www.mikrocontroller.net an. Das hat mir sehr geholfen.
mfg Robert
Lesezeichen