Hallo zusammen,
ich bastle im Moment an einem Projekt mit dem Mega 1284p (16 MHz). Ich nutze den Mighty1284 Core ohne Bootloader und alles klappt auch soweit. Aber sobald ich die Serielle Schnittstelle verwende zeigt sich ein seltsames Verhalten: Die Kommunikation funktioniert bis zu einem gewissen Punkt, das folgende Programm läuft und gibt mir genau die gesendeten Daten zurück. Dazwischen sind jedoch ein paar Null-Bytes obwohl ich nur druckbare Ziechen gesendet habe gesendet habe. Naja, damit kann man evtl. noch leben. Aber schlimmer: Nach einer gewissen (zufälligen) Anzahl von gesendeten Zeichen stürzt der ATmega ab. Ich konnte das Problem auf die Funktion serialEventRun() in der Arduino-Main zurückverfolgen, da der PIN A0 LOW ist wenn der Controller einfriert. Dann reagiert der Controller auf keinerlei serielle Daten mehr, die PMW an PIN 14 (PORTD bit 6) die ich zum Testen mal angemacht habe, geht aber weiterhin.
void setup() {
DDRA |= 1; //PIN A0 Output
Serial.begin(9600);
pinMode(14,OUTPUT);
analogWrite(14,128); //PWM on PIN D6
}
void loop() {
PORTA |= 1; //PIN A0 HIGH
if (Serial.available()) Serial.write(Serial.read());
PORTA &= ~1; //PIN A0 LOW
}
Sorry für die Mischung aus Ardiuno-Befehlen und die Direkte Port Manipulation, das Programm entstand während dem Testen.
Edit: hier mal eine Testausgabe:
▒123467890asdfg▒hj▒klöäyxcv (Hier Absturz)
eingegeben habe ich:
1234567890asdfghjklöäyxcvbnm
Ach ja: ich benutze Putty als Terminal und einen Arduino Duemilanove ohne Atmega für den FTDI.
Ich hoffe hier kann mir jemand weiterhelfen und weiß woran das liegt (evtl mit Kristallkugel?!? ), ich bin echt am verzweifeln...
Gruß,
Marv