**********************************************************************************************
***************Sprejemni task za ir povezavo. Damo ga 4x v scheduler na enakomerne intervale******************
**************in tako dosezemo hitrost prenosa 256 bitov/s. Ko sprejmemo cel paket ga shranimo*****************
***************v spremenljivko sprejeto. Ce ne sprejmemo dovolj stop bitov sprejem prekinemo******************
*******************************in do tu sprejete podatke zavrzemo************************************
**********************************************************************************************
 
IR_RX ldab #$03
REC_Z2 ldaa _DPRB potrebno je nastavit kateri port bo vhod
rora
rol SAMP
decb
beq REC_SF
ldaa #DELAY izracunaj konstanto za zakasnitev 0.15ms
REC_Z1 deca
bne REC_Z1 ta kos vzorci vhodni signal v 3 tockah
 
bra REC_Z2
REC_SF ldaa REC_CNT kaj je slucajno v teku sprejemanje znaka
bne REC_NAD ce je skocimo na sprejem
*ker ne sprejemamo pregledamo ce ni to slucajno start bit
*in ce je ugotovimo kateri vzorec je najbolj na sredini intervala
*tako, da bodo podatki kar najbolj zanesljivo vzorceni
*in sinhronizirani glede na start bit
 
ldaa SAMP
beq REC_INC
cmpa #$01
beq REC_INC
cmpa #$04
beq REC_CLR
bra RX_RTS
REC_CLR clra
bra REC_ST
REC_INC inca
REC_ST staa ST_BIT
ldaa #DOLZINA dolzina paketa brez start bita; 8+stevilo stop bitov
staa REC_CNT
bra RX_RTS
 
*poteka sprejem in zato moramo odcitati ustrezen vzorec in ga prilepiti k
*ze sprejetim bitom podatka. Podatke sprejemano po vrsti od MSB do LSB
*in zato ji pomikamo levo v sprejemni register (REC_CHR). V ST_BIT je
*shranjeno kateri bit je pravi vzorec za vzeti
REC_NAD ldaa ST_BIT
REC_SH1 beq REC_NAP vzorec shiftamo da dobimo na LSB pravi vzorec
lsr SAMP signala
deca
bra REC_SH1
REC_NAP ldaa REC_CNT
cmpa #STBITI stevilo stop bitov v paketu
ble REC_SB
lsr SAMP tu bite prekladamo iz vzorca v
rol REC_CHR sprejemni register
dec REC_CNT
bra RX_RTS
*tu stejemo stop bite. Ce se med stop biti pojavi kaka nicla sprejem
*prekinemo, ker je prislo do napake v prenosu
REC_SB lsr SAMP
bcc REC_ERR prislo do napake. prekini sprejem
dec REC_CNT
bne RX_RTS
ldaa REC_CHR
staa SPREJETO
bra RX_RTS
REC_ERR clr REC_CNT
RX_RTS rts