Hallo, kann mir jemand einen Tip geben wenn ich ein Programm das für den AT90S8035 geschrieben ist auf den PIN-kompatiblen ATmega163 übertragen will. Besonders im Hinblick auf UART und TC-Interrupt. Danke
Hallo Thomas, ich habe mich schon mal an der UART des MEGA163 versucht, bin aber auf das Problem gestoßen das sich die Baudrate nicht einstellen läßt. Beim Mega323 gibts dafür sogar ein ERATA SHEET. Ich benutze den IAR - COMPILER. Hier ein Sourcecode auszug. Villeicht mache ich ja auch bei der INIT phase einen Fehler schaus dir mal an. MFG JOSEPH Hier ein sourcecode auszug: #include "stdio.h" #include "iom163.h" int putchar (int c) { unsigned char test; test = UCSRA; while((test & 0x20) == 0x00 ); UDR = c; if (c == '\n') { while((test & 0x20) == 0x00 ); UDR = 0x0d; } return c; } void main (void) { UBRRHI = 0x00; UBRRLO = 0x0B; UCSRA = 0x20; UCSRB = 0x08; while (1) { printf ("hallo world"); } }
Vielen Dank für die Hilfe, aber ich habe den Fehler schon gefunden. Der ATmega163 hat sog. Fuse Bits, leider stehen die Defaultmäßig auf interne 1MHz Takterzeugung. Mein 8Mhz Quarz wurde nicht verwendet und somit lief mein Interruptprogramm zu langsam. Danke
Aha, interessante Info. Wird der 163 standartmäßig so ausgeliefert? Wäre interessant zu wissen.
Hallo Markus, ja im Datenblatt steht, das der Defaultwert der Fusebits den atmega163 auf den internen Oszillator einstellt. Man kann die Fusebits mit dem Ponyprogrammer auslesen, aber Vorsicht, es wird ein invertierter Wert angezeigt. Am besten mal ins Datenblatt schauen (Seite5 und 134). Aber Vorsicht mit den Fuse und Lock Bits.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.