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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.