Pin PE3 bei ATmega128 nicht als Ausgang nutzbar

Gast #455666
Lesenswert?
• ▲
▼
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
#455689
Lesenswert?
• ▲
▼
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 ?
Gast #455691
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.