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: Impuse zählen mit CC1 Kategorie: C-Control I Micro (von Henrik, Homepage - 12.07.2004 17:35)
 Als Antwort auf Re: Impuse zählen mit CC1 von Tobias - 12.07.2004 16:12
Hallo!

> Mir fallen zwei möglichkeiten ein:
>
> -M-Unit kaufen! Kostet erstens nur die hälfte, und hat zweitens nen 2ten Freq-Messeingang
>  bis 32kHz!

Im Prinzip ja, sprach Radio Eriwan. Das Problem ist allerdings die sehr niedrige Frequenz.
Bei 4 Hz macht ein vermisster Impuls gleich 25% Messergebnisverfälschung aus. Leider
lasst sich bei der CC1 im Gegensatz zur Micro die Torzeit nicht einstellen. Wäre auch
noch kein Problem, man könnte ja eine Interruptroutine benutzen (der IRQ Eingang läßt
sich noch einfacher anzapfen, als der zweite Frequenzeingang), wenn da das Betriebssystem
nicht so versaut wäre.

Also bleibt letztich nur eine Subroutine, die einen Port abfragt und sich einen eigenen
Timeoutzähler setzt. Eine Einfachstmethode könnt so aussehen:

#PULSCOUNTER_SUB

hertz = 0
'warten auf positive Flanke1
#warten
if second > 30 then return
if impuls = off then goto warten
second = 0

'warten auf positive Flanke2
#WARTEN1

if second > 15 then return                     'Timeout? - Keine Impulse?
if impuls = off then goto WARTEN1

hertz = hertz + 1
if second => tor then return                   'Messung abgeschlossen?

'warten auf negative Flanke
#WARTEN2
if second > 15 then return                     'Timeout? - Keine Impulse?
if impuls = on then goto WARTEN2
goto WARTEN1


für tor kann natürlich ein fester Wert gesetzt werden. 5 sek.sind bei  4 Hz vertretbar.
Zu beachten ist, daß bei einer solchen Lösung leider der Controller nichts anderes tut
als zählen (für die Zeit des Aufrufs der Sub).

Schöner wäre eine Lösung in Assemler, die dann schnell genug ist, die Impulslänge
zu ermitteln. Das geht nur bei kontinuierlichem Volumenstrom, nicht bei
pulsierndem (zb.verursacht durch Kreiselpumpen).

Nebenbei: Ein Reedrelais ist da keine sooo gute Idee. Das prellt zwar wenig, aber es
prellt auch, Basic ist zwar langsam, aber so langsam dann auch wieder nicht.
Ein Durchflussgeber mit einem open Collector Ausgang wäre vorzuziehen.

Viele Grüße
Henrik


Meine Homepage: http://www.henrik-reimers.de

 Antwort schreiben

Bisherige Antworten: