PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pic Counter



hvd12
22.02.2012, 16:38
Hallo zusammen,

Ich habe einen PIC ds30f4011 und möchte nun die Flanken am Eingang RD0
zählen.

Wie mach ich das ???
kann mir jemand helfen ??

hagbart06
23.02.2012, 14:27
Es gibt eigentlich nur zwei Möglichkeiten:
Entweder den Pin permanent mit einer if abfrage überprüfen (Polling) und bei wahr werden der Abfrage wird die Variable inkrementiert.
Der schönere Weg ist es den Interrupt zu nutzen der von RD0 (Int1) erzeugt wird und dann bei jedem Interrupt eine Variable inkrementieren zu lassen.

Wie gesagt sollte man den Interrupt bevorzugen, aber wenn der PIC sowieso nicht ausgelastet ist kann man auch mit Polling arbeiten.

hvd12
23.02.2012, 17:14
Hallo

ok Danke,
ich habe die Interrupt Methode gewält...

Jedoch habe ich noch ein Problem und zwar
werden die Werte nur in 10 Schritte ausgegeben auf dem Display
was kann da falsch sein ???

hagbart06
23.02.2012, 18:07
Kann man so pauschal jetzt auch schlecht sagen. Poste doch mal deinen Quellcode.

Wenn der Wert wirklich in Zehnerschritten inkrementiert wird könntest du ihn ja vor der Ausgabe wieder durch Zehn teilen!?

PICture
23.02.2012, 18:16
Hallo!

Möglicherweise wird die Displayausgabe bei dir 10 mal per Interrupt unterbrochen und der Wert in ISR erhöht. ;)

hvd12
24.02.2012, 08:32
und wie kann ich das beheben ??

Was ist ISR ??

hagbart06
24.02.2012, 11:30
Die Isr ist die InterruptServiceRoutine. Sprich dir function die abgearbeitet wird wenn ein Interrupt ausgelöst wird. Wahrscheinlich liegt hier der Fehler. Poste doch mal deinen code. Was für eine Frequenz hat dein zu messendes Signal? Wenn es von einem Taster kommt ist es entprellt?

hvd12
01.03.2012, 16:20
Hallo,

ich habe den Fehler gefunden

danke