Gast
#1100682
Hi!
Hab da so ein Problem. Ich würde gerne ein Zeichen vom Terminal (PC)
senden
und dieses dann auf einem LCD am atmega8 ausgeben. Nur leider
funktioniert das nicht. Habe schon Zeichen vom yC zum Terminal gesendet,
das funktioniert gut. Die Display Ausgabe habe ich auch getestet, diese
funktioniert auch.
Hier mein Quellcode:
#include <stdlib.h>
#include <avr/io.h> // Einbindung der allgemeinen "io.h"
Header-Datei
#include <avr/wdt.h>
#include "lcd.h"
long i=0 ;
double a=0;
double x=0;
char zzz[30];
unsigned char c;
/* Zusaetzlich zur Baudrateneinstellung und der weiteren
Initialisierung: */
void Usart_EnableRX(void)
{
UCSRB |= ( 1 << RXEN );
}
/* Zeichen empfangen */
unsigned char uart_getc(void)
{
while (!(UCSRA & (1<<RXC))) // warten bis Zeichen verfuegbar
;
return UDR; // Zeichen aus UDR an Aufrufer
zurueckgeben
}
void initUart()
{
UBRRL = 11;
UCSRB = 8;
}
void putChar (char data)
{
while (!(UCSRA &32));
UDR=data;
}
void print (char buffer[])
{
for (int f=0; buffer [f] != 0; f++)
putChar (buffer[f]);
}
void main( void ) // Die Funktion "main" wird
aufgerufen,
{ // es wird kein Wert mitgegeben
(void)
// es wird kein Wert zurückgegeben
("void" vor main)
initUart();
lcd_init();
lcd_on();
lcd_clear();
while ( 1 ) // Endlosschleife,
{
Usart_EnableRX();
c=uart_getc();
lcd_write_s(c);
}
}
Vielleicht fällt euch ja der Fehler auf ...
Bin um jeden Tipp dankbar.
mfg Luk