mikrocontroller.net

Forum: Compiler & IDEs Pin PE3 bei ATmega128 nicht als Ausgang nutzbar


Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht 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
 DDRE |= (1<<DDE3)|(1<<DDE4)|(1<<DDE5);

ich mach das immer so:
  DDRE = (1 << PE3) | (1 << PE4);

vielleicht sind deine #defines DDE3 usw. falsch, also überladen ?

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.