# C-Control-intern - Forum zur CC-1

Zur Übersicht - Neuer Beitrag - Zur FAQ - Zum CC-2-Forum

Zähler programmieren, aber wie? (von Jens G. - 20.5.2001 2:46)
> Hallo Jens, > Bevor man etwas schneller macht, sollte man probieren, ob es überhaupt funktioniert. In Zeile drei und sechs fehlt ein ungleich zwischen bit1 und bit2 etc. Vielleicht hast Du's im Programm, aber hier ist es nicht. Dann glaube ich mich zu erinnern, hinter "then" geht nichts mit Doppelpunkt ( siehe CC intern). > Zum Testen auf bit 2 eine Led setzen oder besser auf serielle SS oder auf LCD einen counter herausführen. Dann die Lichtschranke ganz langsam bewegen und zusehen, wie es geht. Da kann man in Ruhe alles ausbügeln. > Wenn's dann schneller werden soll, die Anzeige wegnehmen und eine Strecke fahren, wo man vorher die Grenze (Endwert) markiert hat. Wenn es einmal nicht mehr dort stoppt, dann hat es nicht mehr alle Impulse mitgekriegt und war zu schnell. Vielleicht reicht es aber auch. > Viel Erfolg WR > > > Hallo Leute! > > > > Ich versuche schon seit Stunden ein brauchbares Programm in Basic hinzubekommen, das 2 (zwei)Zähler unabhängig voneinander laufen lassen kann und bei jeweils erreichtem Sollwert einen Schaltvorgang auslöst. > > Sensoren sind zwei Gabellichtschranken mit je einer Lochscheibe. Ich will damit eine Wegmessung bewerkstelligen. > > > > Das Problem vermute ich in der langsamen Ausführungsgeschwindigkeit des Programmes: > > > > #loop > > bit1=lichtschranke1 > > if bit1bit2 then counter1=counter1+1:bit2=bit1 > > if counter1=endwert1 then gosub stop_links > > > > bit3=lichtschranke2 > > if bit3bit4 then counter2=counter2+1:bit4=bit3 > > if counter2=endwert2 then gosub stop_rechts > > > > goto loop > > > > Hat jemand einen Tip, wie man sowas schneller machen kann? Oder gleich so gefragt: wie programmiert man sowas in Assembler? > > > > Jens Also der Fehler ist tasächlich nur im abgedruckten Listing-im Programm steht da wirklich jeweils ein Ungleichzeichen. Auch das mit dem Doppelpunkt nach then schein zu funktionieren. Das Programm ansich läuft recht zufriedenstellend. Allerdings "verschluckt" die Unit wohl den ein oder anderen Impuls, weil die Ereignisse zu schnell aufeinander folgen. Mit nur einem Zähler ist das kein Problem. Ich frage mich, ob denn sowas nicht auch in Assembler zu programmieren geht. Das müßte doch einen Geschwindigkeitszuwachs im Programmablauf bringen? Die C-Control ist ja auch in der Lage, zwei Frequenzen gleichzeitig zu messen(freq2 und freq1=DCF). Wenn ich richtig gelesen habe, werden die Impulse an den Frequenzmesseingängen in einer internen Variablen zwischengespeichert. Durch den Timer werden die Werte regelmäßig ausgelesen und daraus die Frequenz errechnet, die mit dem Befehl x=Freq ausgelesen werden kann. Dabei werden die internen Variablen rückgesetzt und der Zählvorgang beginnt von vorn. Ich hab mir gedacht, daß es vielleicht möglich wäre diese Frequenzmeßeingänge für meine Zwecke zu nutzen. Schnell genug müßten diese ja allemal sein. Oder liege ich damit völlig daneben??? Jens Auf diese Nachricht eine Antwort schreiben bisherige Antworten:
Ja mit den Freq-Eingängen kann man Impulse zählen (von sl am 27.5.2001, 22:21)
Zum Bezugsartikel