Gast
#11325
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
|
Anzeige
|
Portierung AT90S8035 nach ATmega163
Gast
#11325
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
Gast
#11326
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");
}
}
Gast
#11327
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
Gast
#11328
Aha, interessante Info. Wird der 163 standartmäßig so ausgeliefert? Wäre interessant zu wissen.
Gast
#11329
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. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|