A SERVICE OF

logo

Cypress CY3640 USB Starter Kit
User’s Guide
Cypress Semiconductor Ver 0.993
Page 44
iowr ThermPort
; ThermClock =0;
mov a,[gbThermPortMirror]
and a,~ThermClock
mov [gbThermPortMirror],a
iowr ThermPort
; Read in data pin and check for 0 or 1
iord ThermPort
and a,ThermData
jnz ThermPortTempReadValue1
ThermPortTempReadValue0:
jmp ThermPortTempReadClock
ThermPortTempReadValue1:
; Use bitmask
push x
pop a
or [gbThermTempRead],a
;jmp ThermPortTempReadClock ; redundant, but good practice
ThermPortTempReadClock:
; ThermClock =1;
mov a,[gbThermPortMirror]
or a,ThermClock
mov [gbThermPortMirror],a
iowr ThermPort
; Next bit in mask
push x
pop a
asl a
push a
pop x
;*********************************************
; Finished?
pop a
dec a
jnz ThermPortTempReadLoop
;*********************************************
; Last bit
;*********************************************
; Tri-state data pin for input
mov a,[gbThermPortMirror]
or a,ThermData
iowr ThermPort
; ThermClock =0;
mov a,[gbThermPortMirror]
and a,~ThermClock
mov [gbThermPortMirror],a
iowr ThermPort
; Read in data pin and check for 0 or 1
iord ThermPort
and a,ThermData
jnz ThermPortTempReadLastValue1
ThermPortTempReadLastValue0:
jmp ThermPortTempReadLastClock
ThermPortTempReadLastValue1:
; Use bitmask
mov a,1
mov [gbThermTempRead2],a
;jmp ThermPortTempReadLastClock ; redundant, but good practice
ThermPortTempReadLastClock:
; ThermClock =1;