Forum: Compiler & IDEs UART & ATMega163


von Christan (Gast)


Lesenswert?

Hallo!!
Ich habe mir vor kurzer Zeit einen ATMega163 gekauft und für diesem 
schon einige Testprogramme (AVRgcc) geschrieben (LCD-Ansteuerung,...). 
Nun würde ich gerne eine Art LCD - Terminal bauen. Hoerfür sollen die 
Date via RS232 zum Mikrocontroller gesendet werden und der 
Mikrocontroller soll dann das LCD ansteuern.
Leider habe ich mit dem UART ziemliche Probleme. Um das UART zu testen 
habe ich folgendes Programm geschrieben:


#include <iom163.h>

void InitUART( unsigned char baudrate );
void TransmitByte( unsigned char data );


int main( void )
{

InitUART( 0x1f ); /*  Set the baudrate to 9600 using a 4.9152MHz crystal 
*/

  for(;;)       /* Forever */
  {
  TransmitByte('A');
  }
  return 0;
}

/* Initialize UART */
void InitUART( unsigned char baudrate )
{
  UBRR = baudrate;        /* Set the baud rate */
  UCSRB=0x08;    /* Transmitter/receiver enable */
}



void TransmitByte( unsigned char data )
{
  while ( UCSRA & 0x40 != 0x40 ){
  }                /* Wait for empty transmit buffer */
  UDR = data;
}


Gedacht war eigentlich, dass ich mit HyperTerminal lauter A's empfange. 
Doch stattdessen empfange ich irgendwelche Zeichen. Vielleicht hatte 
jemand schon mal das selbe Problem.
Würde mich über eure Hilfe freuen!!!

mfG Christian

von Christian (Gast)


Lesenswert?

Hallo,

ich hatte mal ein ähnliches Problem, wenn ich ehrlich bin kenn ich mich 
in anderen Programmen immer nicht so recht aus und kann nicht sagen ob 
da ein Fehler ist. Du hast aber vermutlich vergessen die Fusebits 
richtig zusetzen - der Mega läuft wohl mit seinem internen 1mhz RC 
oszillator - schau mal ins Datenblatt was man da wie setzen muss....

Viel Erfolg

Christian

von Christan (Gast)


Lesenswert?

DANKE vielmals für deine Hilfe!!!!!
Jetz funktionierts!!!!!

Florian

PS: das nächse mal sollte ich wohl das Datenblatt etwas genauer 
durchlesen ;-)

von Jens Fiedelak (Gast)


Lesenswert?

Hallo Christian,

ich habe zurzeit das gleiche Problem. Die Fusebits habe ich 
kontrolliert. Gibt es noch andere bits die man setzen muss?

Gruß Jens

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.