www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Counter3 beim mega128 auslesen


Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe Probleme die Counter3-Register TCNT3L und TCNT3H auszulesen.

Die Hardware: T3 wird mit einem ext. Clock bedient.
Dieser Clock ist ein Pulspaket vom 1sek. Dauer. Innerhalb dieser Sekunde 
werden 41000 Pulse aufgeschaltet. Diese Pulseanzahl ist immer konstant 
und wurde mit einem Digitalzähler kontolliert.

Nach Ablauf einer Sekunde ist das Pulspaket zu Ende und ich kann
das Zählregister auslesen, also:

a=TCNT3L;
b=TCNT3H;

Beim Auslesen treten merkwürdige Erscheinungen auf:
Nach dem Auslesen von TCNT3L wird TCNT3H gelöscht, oder,
die aufgezählten Impulse schwanken von 35000 bis 45000.

Diese Fehler treten sowohl im Testbetrieb mit Breakpoints und
JTAG-Emulator auf, als auch im Stand-alone-Betrieb.

Initialisiert wird mit:

TCCR3B=0x06;   // Ext.Clock, neg.Flanke

Alle anderen Controls sind 0x00.

Habt ihr eine Idee, oder hab' ich nur mal wieder im Datenblatt was 
übersehen?

Danke für eure Hilfe   Norbert

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du auch die richtige Reihenfolge berücksichtigt und das evtl. 
erforderliche sperren der Interrupts.
Beim 16 Bit Zugiff auf die Timer-Register:
schreiben = immer High Byte zuerst
lesen     = immer Low  Byte zuerst
Außerdem darf die maximale externe Taktfrequenz max.
CPUclk/2 betragen.

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@mikki:
die Reihenfolge bei lesen ist oben zu sehen: L-Byte zuerst.

Der CPU-Clock ist 10MHz.

Der Counterclock ist 41kHz.

Es ist ein ext. Interrupt freigegeben. Aber der wird von der
ext. Hardware nicht ausgelöst.
Nach einem Programmstart habe ich auf Adresse 0x0000 einen Breakpoint 
gelegt, aber da verirrt sich auch kein anderer Interrupt hin.

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sieht denn die Impulsform an Pin8 (T3) aus. 41 kHz symetrischer 
Rechteck mit entsprechendem Logikpegel?

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist ein jungfräuliches Rechtecksignal, kommt aus'm 'HC393er

Tastgrad: 1:1
Risingtime: 5nSek.
Fallingtime: 10nSek.
voller Logikpegel: 0 - 5V

keine Spices, kein Jitter, keine Reflexionen,

ich sagte ja, ein externer Frequenzzähler zählt 41000 Pulse,
keinen mehr und keinen weniger.

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@norbert
war ja auch eher eine retorische Frage. Hätte ja auch sein können das 
41.000 Impulse mit TPh bzw. TPL < 100 ns anliegen. Die Initialisierung 
des Timers als auch der Lesezugriff sind ok. Die Fehlerquellen die ich 
noch vermute:
a) die Register TCNT3L und TCNT3H werden ungewollt überschrieben. Diese 
liegen ja im extended I/O-Bereich wo bei den normalen AVRs bis MEGA32 
bereits normales SRAM vorhanden ist.
b) Interrupt Kollisionen. Ich meinte ja nicht nur externe Interrupts 
sondern auch die anderen Timer.

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mikki, ich hab's gefunden...durch meine Schuld...,

das Einlesen der Pulspakete geschiet nicht synchron mit der
Torzeit von 1sec.

Bitte entschuldige, daß ich Deine Zeit gestohlen habe.
Naja, vieleicht kann ich Dir auch mal helfen, z.B. wie man
log. Programmfehler vermeidet ;-)

Schönen Gruß     Norbert

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@norbert
Ist doch ok wenn der Fehler am Ende gefunden wird.

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.