Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Frequenzähler Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von ogoianer - 15.01.2010 14:59)
 Als Antwort auf Re: Frequenzähler von Andreas - 15.01.2010 12:53
ogoianer nutzt:  Open-Micro, Open-Mini
Hallo,
> Ist Port 3 nicht host/run? Den habe ich bisher immer ausgeklammert und auf High gelegt....
Das ist das kleine "Problem" bei der OM, wenn man den internen Zähler FREQ nutzen will, muß man dafür sorgen, daß beim Start auf High liegt.

> Laut Doku wird die abfallende Flanke des angelegten Impulses am Port 3 gemessen über die voreingestellte Torzeit
> FREQ = 50    'Torzeit, bzw. Meßzeit: 1 Sekund
> Und nun ? Jetzt habe ich mit einer Torzeit von 1 Sekunde Impulse gezählt.
Das steht doch auch in der Doku. Hier nochmal der komplette Text:

FREQ
Beschreibung

      Mit dieser internen Variable kann die Frequenz am FREQ-Pin (PORT[3]) abgefragt werden. Die Messung erfolgt im Hintergrund, parallel zur Programmausführung. Die Frequenzmessung wird erst aktiviert, nachdem die Torzeit (Meßzeit) eingestellt wurde. Die Torzeit wird in 20-ms-Schritten angegeben und wird erst nach Ablauf der vorherigen wirksam. Durch "FREQ=0" oder "FREQ=OFF" läßt sich die Frequenzmessung deaktivieren. Während BEEP, GET, INPUT und SLOWMODE werden alle Interrupts deaktiviert und deshalb wird auch FREQ nicht mehr aktualisiert.

      Zurückgeliefert wird die Anzahl der innerhalb der Meßzeit aufgetretenen Impulse. Und zwar wird bei jeder fallenden Flanke am KBI2-Pin (liegt am gleichen Pin wie PORT[3]) ein Interrupt ausgelöst. Die Frequenz, gezählt in Impulse pro Sekunde, läßt sich daraus berechnen zu

            f = FREQ / MESSZEIT.

      Achtung: Nach einem Reset muß PORT[3] auf High-Potential (5 Volt) liegen, sonst geht der Kontroller in den Hostmodus und arbeitet das BASIC-Programm nicht ab.

Verfügbarkeit

      Open-Micro: an PORT[3]
      Open-Mini:  an PORT[3]
      Open-Midi:  an PORT[3]

Syntax

      FREQ
      FREQ1

Beispiel

      FREQ = 50    'Torzeit, bzw. Meßzeit: 1 Sekunde
      PRINT FREQ

Du mußt nur FREQ wieder auslesen ;-) Ist etwas verwirrend gemacht, hat aber mit Kompatibilität zu tun - probier es doch einfach mal aus - z.B. (wobei während der Ausgabe von print nicht gezählt wird, daher ist das Beispiel ungeschickt)

  freq = 50
  #loop
    print freq
    pause 50
  goto loop


Cu Rene

ogoianer früher mal topmail

 Antwort schreiben

Bisherige Antworten:

Re: Frequenzähler (von Andreas - 17.01.2010 19:19)