Hallo! Ich habe bereits einen Post aus dem Jahr 2005 zu diesem Thema gefunden, leider war aber keine Antwort auf das Problem zu finden. Ich habe folgendes Problem: Wenn ich beim ATmega128 versuche, den Pin3 des Ports E (PE3/OC3A/AIN1) als Ausgang zu nutzen und ihn auf HIGH zu setzen, bleibt dieser LOW. Hier der Code: int main(void) { //ACSR |= (1<<ACD); //SFIOR|= (1<<ACME); //ADCSRA &= ~ (1<<ADEN); //ADMUX &= ~ ((1<<MUX2)|(1<<MUX1)|(1<<MUX0)); DDRE |= (1<<DDE3)|(1<<DDE4)|(1<<DDE5); PORTE = 0xFF; while (1) { PORTE = 0xFF; } } Es funktioniert z.B. auf PE4 und PE5, PE3 bleibt aber LOW. Ich habe auch schon versucht, den negativen Eingang des Analogkomparators (AIN1) zu disablen (siehe auskommentierte Zeilen), aber das hat auch nichts genutzt. Eigentlich wollte ich den 16bit-Timer 3 zur PWM nutzen. Auf PE4/OC3B und PE5/OC3C funktioniert die PWM auch wunderbar, nur bei PE3 habe ich das gleiche Problem wie schon beim simplen Output eines konstanten Wertes. Ich verwende AVRStudio mit WinAVR und den Olimex JTAG ICE. Der ATmega103-Kompatibilitätsmodus ist in den Fuse-Settings deaktiviert. Hat irgendwer eine Idee, was der Grund für das Problem sein könnte? Hat irgendwer schon mal erfolgreich die "output compare A" Funktion des Timers 3 genutzt? Grüße Manfred
Also ich meine das ich auf meinem m128 Testboard schon mit allen 3 PWMs des Timer 3 gearbeitet habe, und kann mich nicht erinnern das ich Probleme damit hatte. Sollte also gehen. Da fällt mir ja ein das ich im meinem derzeitgen Drum-Projekt auch den PE3 als Ausgang mit PWM benutze. Das muß also funktionieren. Gruß Hagen
1 | DDRE |= (1<<DDE3)|(1<<DDE4)|(1<<DDE5); |
ich mach das immer so:
1 | DDRE = (1 << PE3) | (1 << PE4); |
vielleicht sind deine #defines DDE3 usw. falsch, also überladen ?
Hallo Hagen, Deine Antwort hat mir insofern weitergeholfen, dass ich die Fehlersuche wohl am AVR nicht fortsetzen muss... Nach etwas Fehlersuche habe ich bemerkt, dass auf meinem EVA-Board ausgerechnet dieser Pin einen Masseschluss hat (welch dummer Zufall). Ich habe zwar vorher schon mal gegen die Nachbarpins gemessen, nicht aber gegen Masse (wie dumm von mir...). Danke nochmal für die schnelle Antwort. Grüße Manfred
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.