Forum: Mikrocontroller und Digitale Elektronik Impulse zählen mit P18F67J60


von Thomas (Gast)


Lesenswert?

Hallo

Ich möchte gerne wissen wie es Codetechnisch funktioniert Impulse z.b. 
von einem Stromzähler ( z.b. 500 Impulse entspricht 1 KW/H) zu zählen.
Kann man das über einen normalen Eingang des PIC's machen oder gibt es 
da einen speziellen bzw wie kann das realisiert werden?


Chip : PIC18F67J60
Compiler: C18-Compiler


Greets

von Michael S. (rbs_phoenix)


Lesenswert?

Also Softwaretechnisch kann man es so machen, dass du einen Timer so 
einstellst, dass der Timerinterrupt jede Sekunde kommt. Du startest den 
Timer, Zählst mit jedem Impuls einen Zähler hoch. Wenn der Interrupt 
kommt, schaust du nach, wieviel Impulse du hast, machst mit der Info was 
du willst (z.B. umrechnen/skalieren und anzeigen), löschst den Counter 
wieder und startest den Timer neu.

Eine andere Möglichkeit wäre (sofern du noch evtl einen anderen Chip 
nehmen kannst, z.b. aus der Reihe 18FxxK22) mit dem Timer 1 Gate Modul:
http://ww1.microchip.com/downloads/en/DeviceDoc/41565c.pdf - Seite 7.


Mit diesem kannst du den Takteingang messen und alles Mögliche damit 
anstellen. z.B. kannst du die Dauer von Rising-Edge zu Rising-Edge 
messen. Wenn du 500 Takte pro Sekunde hast, ist das eine Frequenz von 
500Hz -> Periodendauer von 2ms. Der Vorteil hierbei wäre, dass du nicht 
eine ganze Sekunde die Takte zählst und daraus den Mittelwert bildest, 
sondern gleich die Frequenz hast und mit jedem Takt den aktuellen Wert 
hast.

Dies geht natürlich auch ohne das Modul, also dass du mit einer 
steigenden Flanke den Timer startest und bei der Nächsten stoppst und 
guckst, wieviel Zeit verstrichen ist. Nur wird das mit dem Modul 
angenehmer gehen.

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.