'su bs2 sleave
valoreLuceSx VAR word 'costante per foto Sx
valoreLuceDx VAR word 'costante per foto Dx
status VAR Byte 'status da BS2E
valoreLuceSx VAR word 'costante per foto Sx
valoreLuceDx VAR word 'costante per foto Dx
work1 VAR Word 'word generica
LuceDx PIN 9 'ricettore luce destro
LuceSx PIN 10 'ricettore luce sinistro
TPin PIN 14 'Tx/Rx con BS2E
FPin PIN 15 'Feadback con BS2E
validTxRx CON $c6 'costante per verifica trasmissione 2' DeA
main:
GOSUB ..........'altre rtns
GOSUB Receive 'legge status da DeA-16
IF status = 255 THEN NoStatus
BRANCH status,[...,...,...,...,...,...,Luce,...,...]
NoStatus:
GOTO main
Receive:
SERIN TPin\FPin, 16468, ReceiverTO, RxTimeOut,[status, work1.BYTE0] '2byte
IF work1.BYTE0 <> validTxRx THEN invalid
RETURN
TxTimeOut:
counterSTO = counterSTO +1
RETURN
RxTimeOut:
status = 255
RETURN
invalid:
status = 255
counterInv = counterInv +1 'controllo errori
RETURN
Luce: 'misura della costante di tempo per il fotoresistori
HIGH luceDx
PAUSE 3
RCTIME luceDx, 1, valoreLuceDx
HIGH luceSx
PAUSE 3
RCTIME luceSx, 1, valoreLuceSx
SEROUT TPin\FPin, 16468, SenderTO, TxTimeOut,
[valoreLuceDx.BYTE0,valoreLuceDx.BYTE1, valoreLuceSx.BYTE0,valoreLuceSx.BYTE1,
validTxRx]
RETURN
--------------------------------------------------------------------------------------------------
'rtn su bs2 master
work1 VAR Word 'word generica
valoreLuceSx VAR word 'costante per foto Sx
valoreLuceDx VAR word 'costante per foto Dx
TPin PIN 14 'TPin to DeA 2k
FPin PIN 15 'FPin to DeA 2k
validTxRx CON $c6 'costante per verifica trasmissione 2' DeA
SensoriLuce: 'misura della costante di tempo per i fotoresistori
status = 9
SEROUT TPin\FPin, 16468,[status, validTxRx] 'Send 2 byte
SERIN TPin\FPin, 16468, 500, RxTO, [valoreLuceSx.BYTE0,valoreLuceSx.BYTE1,
valoreLuceDx.BYTE0,valoreLuceDx.BYTE1, work1.BYTE0] '5b.
IF work1.BYTE0 <> validTxRx THEN InvalidRx
DEBUG DEC ? valoreLuceSx, " ", DEC ? valoreLuceDx, CR
IF ABS(valoreLuceDx-valoreLuceSx) < sogliaLuce THEN avanti
IF valoreLuceDx > valoreLuceSx THEN GOTO avantiDx
IF valoreLuceSx > valoreLuceDx THEN GOTO avantiSx
GOTO avanti