www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit Quarz?


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich habe an meinem ATmega8 einen 4MHz Quarz angeschlossen. Kapazitäten
habe ich nach Datenblatt ausgewählt.

Ich kann den ATmega ohne Probleme brennen und auch das Programm läuft
(einfacher Blinker). Allerdings bleibt das Programm nach ein paar
Sekunden stehen. Habe sämtliche Funktionen überprüft; Jede Funktion
arbeitet eingenständig -> egal von wo sie aufgerufen wird, bzw. ein
Interrupt sie unterbricht.

Nun vermute ich, dass das Quarz nicht richtig schwingt; Habe ein 30MHz
Oszi da; wie kann ich messen, ob das Quarz richtig schwingt? Habe es
zwischen Masse und Xtal versucht - ohne großen Erfolg. Nun kann es
natürlich sein, dass das schon aussagekräftig genug ist.

Wie schaut eine Schwingung des Quarzes aus?

Autor: Jens D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist wenn ein Sinus.. nur einige Oszis koenen das nicht Messen, weil
der Quarz zusammenbricht (Kapazitive belastung)

Programmierst du in ASM?

Ich hatte am WE mal einen Fehler gehabt und stadt RETI nud RET
geschrieben naja da lief der Controller zwar aber er ging nicht mehr in
die Interruptroutine, weil er dachte noch darin zu sein

Gruss

Autor: Marillion (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie schaut eine Schwingung des Quarzes aus?

Ungefährer Sinus. Aber Vorsicht! Durch die Belastung des Tastkopfes
kann dieser Sinus zusammenbrechen, deshalb 10:1 Einstellung wählen.


Sind die Fusebits richtig gesetzt? Wenn nicht läuft die MCU evtl. auf
dem internen RC-Clock.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fuses sollten richtig sein...
Der Blinker ist auf Sekundentakt parametriert. Mit falschen Fuses würde
der Blinker nicht im Sekundentakt blinken.

Aber nochmal zur Sicherheit, wie sollten die Fuses für externen Clock
gesetzt werden?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja,

ich programmiere ASM - derweil tippe ich dann doch auch auf irgendeinen
Überlauf. Shit, kann nicht OnChip debuggen.
Reti habe ich eingehalten;  - keine Ahnung, was da los ist...

itemp wird nirgends mehr verwendet

TIM0_OVF:
  lds    itemp,mySREG
  sbrs  itemp,0        ;überspringe, wenn erstes BIT gelöscht ist
  rjmp  timer0restart
timer0mydelay:
  inc    mydelay_azyk    ;jeden Timer2 überlauf inkrementieren
timer0restart:
  ldi    itemp,0xdb      ;Timerstartwert schreiben
  out    TCNT0,itemp
reti
;

Autor: Olaf_K (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde eher auf ein Softwareproblem tippen, Stichwort Stack-Overflow
(z.B. Unterprogramm mit RJMP statt RCALL aufgerufen), oder Stack nicht
richtig initialisiert. Probier Deinen Code mal im Simulator und
beobachte Stackpointer und SRAM-Inhalt.

MfG Olaf

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So...für die Leute, die über den gleichen Fehler stolpern.
Olaf_K hat den entscheidenen Hinweis gegeben.
die mainLoop war keine wirklich schleife mehr ;-) Sie hat sich immer
wieder selber mit rcall aufgerufen...

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.