www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem Timer AtMega32 C


Autor: Thomas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Erstma sorry das ich 2 Threads mache (einer hier, einer GCC-Forum) aber
hier is mehr los und mehr Leute schaun rein! :-)
Also ich will einen 1s Timer mittels Overflow Compare Match Interrupt
programmieren. Das bedeutet ja (1s*16MHz)/1024 => 15625 => 3D09.
Das habe ich auch in die Compareregister geschrieben. Ausserdem habe
ich den Prescaler im TCCR1B auf 1024 gesetzt und den Timer Compare
Match B Interrupt im TIMSK gesetzt. Und anschließend noch ein "sei()"
um Interrupts global zu erlauben.
Normal alles richtig, oder?
Aber die Kiste läuft net!!!
Wäre nett wenn ihr mir helfen könntet!
Verwendete Hardware AtMega32 / 16Mhz Oszi

MFG
Thomas

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
scheint alles richtig - bis auf den beliebten Anfängerfehler:
bei 16bit-Schreiben: erst H, dann L-Teil (OCR1AH/L).
Kenn mich mit dem GCC nicht aus - aber gibts keine 16bit-Ausgabe?
OCR1A=0x3d09;

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hilfe funktioniert aber leider immer noch nicht.
Ich weiss echt net wo dran das noch liegen soll!

MFG
Thomas

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bleibt noch ein Anfängerfehler:
der PortA ist muss extra über Avcc versorgt werden, sonst kommt da
nichts. Versuchs erst mal mit einem anderen Port (Achtung, bei PortC
lauert JTAG, ist ab Werk eingeschaltet)

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann auch nicht sein AVCC liegt auf +5V. Und andere Ports hab ich auch
schon probiert!
mmhh...

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann kann ich dir nicht mehr weiterhelfen, ist dann ein gcc-spezifisches
Problem, das einzige, was mir dabei einfällt: kann an der Gültigkeit der
Variablen liegen, verstehe ich zwar nicht (wenn eine Variable global
deklariert ist, sollte sie auch global verwendbar sein). "Volatil"
glaube ich geistert hier in dem Zusammenhang immer wieder mal um. Ich
habe mich damit nie weiter beschäftigt, bei meinem Compiler sind
globale Variablen globale und lokale sind lokale. Mehr interessiert
mich dabei nicht (ausser Speicherklasse und static). Ich habe dein
Beispiel jedenfalls mal kompiliert: läuft.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok!
Danke aber für deine Bemühungen!
Ich guck mal ob es ne neuere Version von GCC zum Download gibt und da
mein Glück probieren!

MFG
Thomas

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.