Forum: Mikrocontroller und Digitale Elektronik µC mit großem Counter


von Andrew (Gast)


Lesenswert?

Hallo,

kenn jemand von euch Mikrocontroller mit internen Zählern von mehr als
16 Bit?

Andrew

von Andrew (Gast)


Lesenswert?

Oder würde es funktionieren bei z.B. einem ATMega zwei Counter (16Bit
und 8Bit) seriell zu betreiben?

Andrew

von peter dannegger (Gast)


Lesenswert?

"kenn jemand von euch Mikrocontroller mit internen Zählern von mehr
als
16 Bit?"


Wozu denn ?

Es gibt doch Overflow-Interrupts, wo man prima in Software weiterzählen
kann (siehe Codesammlung).


Peter

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Ein kleines Interrupt-Programm, das bei jedem Zählerüberlauf ein
Register um eins hochzählt kann doch nicht so kompliziert sein?
Schneller als die halbe Taktfrequenz kann ein AVR nicht zählen, bei 16
Bit tritt also der Interrupt alle 128k Takte einmal auf, das
beschäftigt den Controller nicht übermäßig.

von mh789 (Gast)


Lesenswert?

Mein gcc macht das von ganz alleine ;-) uint32_t auf einem ATmega16.

von mh789 (Gast)


Lesenswert?

Huch, da war ich zu schnell. Sagtest Du Counter oder Register? ;) Sorry.

von Andrew (Gast)


Lesenswert?

Danke für den Tip!

Wir der Overflow-Interrupt bei jedem Overflow gesetzt, auch wenn sich
der Counter schon im Overflow befindet?
Wie kann ich den Counter takten? Ich will die Zeit eines High-Pegels
mit einem 13.56MHz-Signal messen.

Andrew

von peter dannegger (Gast)


Lesenswert?

Mehr als Setzen geht nicht (Bits haben nur 2 Zustände), d.h. der 2.
Überlauf geht verloren.


Peter

von Manos (Gast)


Lesenswert?

Da es sich um einen Interrupt handelt kann man hierbei auch eine
Behandlungsroutine anspringen (die dann das Bit nach Auswertung wieder
löscht).

von peter dannegger (Gast)


Lesenswert?

Wenn der 2. Überlauf erst kommt, wenn Du schon im Interrupt bist, dann
hast Du gerade nochmal Glück gehabt, denn das Bit wurde ja beim
Einsprung gelöscht und kann somit wieder gesetzt werden.


Peter

von ... (Gast)


Lesenswert?

Der M16C62 kann auch Hardwaremäßig mehr als 16Bit. Wenn man mag auch
mehr als 64Bit.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

In ARM-basierten Controllern standardmäßig 32 Bit.

von michael (Gast)


Lesenswert?

Hi ...

Warum nicht im Interrupt (Zeitbasiert) den letzten Stand des Zählers
mit dem aktuellen verrechnen und zu einer Gesamtvariable hinzurechnen
?

Michael

von peter dannegger (Gast)


Lesenswert?

@Andreas


"In ARM-basierten Controllern standardmäßig 32 Bit."


Es ist ein Irrtum zu glauben, es gäbe nur Philips ARMs oder ARMs seien
untereinander kompatibel.

Die ST ARM7 haben 16Bit Counter/Timer, dafür können sie aber im
Gegensatz zu den Philips ARMs auch extern zählen.

Ich hab schön blöd aus der Wäsche gekuckt, als ich beim LPC2292 den
Countereingang für nen Frequenzzähler gesucht habe, der hat nur Timer,
keine Counter.


Peter

von Robert Teufel (Gast)


Lesenswert?

@Peter,

es ist korrekt, dass der LPC2104/5/6 nicht extern zaehlen kann. Alle
213x, 214x, 2101/2/3 koennen auch extern zaehlen und haben mehrere
32-bit counters.

Z.B. der LPC2101 kostet weniger als die meisten AVR und hat 2 x 32-bit
timer, 2x 16-bit timer und kann auch 4 unabhanegige externe Signale mit
diesen Countern zaehlen.

Einfach nur um Missverstaendnisse auszuraeumen

Gruss, Robert

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.