PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten über RS232 an ATmega8 senden und empfangen



daniel85
10.03.2006, 19:13
Hallo!

Ich verwenden einen ATmega 8 als Mikrokontroller. Zum programmieren verwende ich das AVR Studio. Den Mikrokontroller habe ich über einen MAX232 an eine serielle Schnittstelle angeschlossen. Nun möchte ich über das Hyper Terminal Daten an den ATmega 8 senden und Daten empfangen!
Hat da vielliecht jemand ein Programmbeispiel, wie das funktioniert??

danke im voraus!

mfg daniel

Razer
10.03.2006, 19:53
Hallo Daniel

Ich hab mich auch damit beschäftigt. Ich benutze ebenfalls einen Mega8 zum Experimeentieren.

Hier mal 2 Beispiele


#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


#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

strunz
23.04.2006, 16:07
Hat es sich schon erledigt, oder bist du noch an einer Lösung interesiert?

Razer
23.04.2006, 16:53
Nein

Ich habs auch schon herausgefunden ;)