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: C-Control und FS-20-System Kategorie: C-Control I V1.2/2.0 (von Waly - 18.11.2006 13:53)
 Als Antwort auf Re: C-Control und FS-20-System von Achim - 17.11.2006 16:08
Waly nutzt:  CC1-M-Unit V1.2/2.0, CC1-Station V2.0, Micro
> > Hat sich damit mal jemand befasst?
> > Mich würde eine Möglichkeit FS20-Geräte anzubinden wirklich interessieren.
> > Leider hab ich noch keinerlei Erfahrungen mit Assembler-Modulen.
> > Ich fürchte in reinem Basic kann man das FS 20 Protokoll nicht auswerten oder ?
>
> Ich hab's mir einfach gemacht und bediene einen FS20-Unterputzsender (über Putz) über Relais mit der CC1-Station um meine diversen FS20-Empfänger (Rollladensteuerung) zu schalten.
>
> HTH
>
> Bye
>  Achim

Ok, Ich träum aber schon von einem Universal Sender/Empfänger ;-)
Ein bisschen hab ich schon versucht in Basic zu schreiben, um das Sendersignal auszulesen:


define LIGHT   as port[16]
define FTIMER   as word[4] ' RESERVIERT VOM TREIBER
'-- SYSTEM ROUTINEN -------
CONST CLR_FTIMER = FD98h
CONST GET_FTIMER = FD89h
CONST NO_INT = FD85h
CONST YES_INT = FD87h
import "..\LIB\SERVOMODE.BAS"
'--------------------------------------------------------------------
'                  HOCHAUFLÖSENDER TIMER
'--------------------------------------------------------------------
' --------- SYS INIT  --------
SERVOMODE ()
LCD.INIT
LIGHT=off
dim x as byte
dim oldbit as bit
dim ioport as port[1]
dim wert as byte

oldbit = ioport
#LOOP
    WAIT oldbit <> ioport 'or timer > 0
    SYS CLR_FTIMER '  1us TIMER UND 20ms TIMER
    'Eine Perionde warten
    WAIT oldbit = ioport 'or timer > 0
    WAIT oldbit <> ioport 'or timer > 0
    'Timer stoppen
    SYS NO_INT '32us
    SYS GET_FTIMER ' WERTE DER TIMER SICHERN
    'Bestimmen ob es ein HighBit oder ein LowBit war ( wert=2 : ungültige Perionenlänge )
    if FTIMER < 600 then wert = 2
    if FTIMER > 600 then wert = 0
    if FTIMER > 1000 then wert = 1
    if FTIMER > 1450 then wert = 2
   
    'Zeit und Wert ausgeben
    LCD.POS 1,1
    '---------- n*20 ms VOM TIMER BERECHNEN -----------------------------
    SYS YES_INT
    LCD.PRINT "ZEIT: " & FTIMER & "."
    LCD.POS 2,1
    LCD.PRINT "Wert: " & wert
pause 20
'Nächste Periode messen
goto LOOP

'--------- GERÄTETREIBER LADEN ----------
syscode "M20_UTIL11_PAGE0.s19"



Hier nutze ich das Util1.1 zum Messen der Zeiten.
Zumindest kann ich schon einmal High von Low-Bits unterscheiden. Aber das stößt schon sehr an die Grenzen von Basic.
Hat keiner eine bessere Idee, wie das besser zu lösen ist ?

 Antwort schreiben

Bisherige Antworten:

Re: C-Control und FS-20-System (von Waly - 19.11.2006 13:57)
    Re: C-Control und FS-20-System (von Hauk - 23.11.2006 13:08)