
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
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 |