PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pulse Zählen



blondie
23.07.2006, 11:22
Hallo!
Ich habe noch ein (ich denke kleines) Problem...
Ich möchte ganz gerne Pulse Zählen. Diese Pulse stammen direkt vom Parallelport und steuern schrittmotore.
Ich möchte mir nun eine Digitalanzeige dafür machen.
Da die Pulsgeschwindigkeit unterschiedlich ist, bringt es mir nichts ein Programm zu schreiben, das den eingang nach einer bestimmten Zeit immer abfragt und dann den Wert verändert. Es muss schon die änderung des zustands erfasst werden.
Mit welchem Befehl kann ich dies machen? Ich habe es mit einem kleinen Programm versucht hinzubekommen...es ist leider nur ein Zufallsgenerator geworden ](*,)



$regfile = "m16def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 8000000

Config Portc = Output 'display
Config Porta = Input 'Schalter

'Pins des LCD-Modules setzen ggf. an eigene Anschlüsse anpassen
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4

Config Lcd = 20 * 4a , Chipset = Ks077
'Config Lcd = 20 * 4 ' wird nicht benötigt daher auskommentiert
'Config Lcdbus = 4 ' oder weglassen :-)
Initlcd
Cls


Dim A As Bit 'A ist die Variable für den zustand...also entweder 0 oder 1
Dim B As Byte


A = 0 'als erstes bei 0 anfangen
B = 0

Start:

Do
If Pina.0 = A Then
Locate 4 , 1
Lcd "keine änderung"
'wenn der gleiche zustand anliegt tue nichts
Else
B = B + 1

Goto Anders

End If

Locate 1 , 1
Lcd A

Locate 2 , 1
Lcd B

Loop


Anders:
If A = 0 Then A = 1
If A = 1 Then A = 0


Goto Start


Danke für eure Hilfe!!

Hanni
23.07.2006, 11:26
Mein Tipp:

entweder externer Interupt oder einen Timer zählen lassen.

albundy
23.07.2006, 15:41
...es ist leider nur ein Zufallsgenerator geworden

das wundert mich auch nicht.
Wenn "Anders" angesprungen wird, bleibt A trotzdem immer "0".
Sieh dir mal den Befehl "Toggle" an.
Und B zählt, wie oft die Schleife durchlaufen wird ?
Und das jeweils mit einem anderen Ergebnis, da B nie zurückgesetzt wird ?


Ich habe noch ein (ich denke kleines) Problem...

sorry, das sehe ich etwas anders ...

blondie
23.07.2006, 16:01
Hallo!
Wieso? War doch echt nur ein kleines Problem. Ich habe jetzt "Anders" mit dem Befehl Toggle geschrieben. Jetzt zählt er mir jede zustandsänderung. Genauso wollte ich es ja auch haben :)

Danke für die Hilfe!