PDA

View Full Version : Structure of a Byte Variable



Archangel
- 5th July 2008, 06:13
Thanks to the code posted below by Darrel
in http://www.picbasic.co.uk/forum/showthread.php?t=9134


TimeCmpFlags VAR BYTE
PastStart VAR TimeCmpFlags.0
PastStop VAR TimeCmpFlags.1
NextDay VAR TimeCmpFlags.2
ProgON VAR TimeCmpFlags.3


CheckTimes:
TimeCmpFlags = 0 ; clear flags first

; if the Start and Stop times are the same, then Always OFF
if (Stop_H=Start_H) AND _
(Stop_M=Start_M) AND _
(Stop_S=Start_S) then AlwaysOFF

; is it past the Start time?
if (Hours>Start_H) OR _
(Hours=Start_H AND Minutes>Start_M) OR _
(Hours=Start_H AND Minutes=Start_M AND Seconds>=Start_S) then PastStart=1

; is it past the Stop time?
if (Hours>Stop_H) OR _
(Hours=Stop_H AND Minutes>Stop_M) OR _
(Hours=Stop_H AND Minutes=Stop_M AND Seconds>=Stop_S) then PastStop=1

; does the period end the following day?
if (Stop_H< Start_H) OR _
(Stop_H=Start_H AND Stop_M < Start_M) OR _
(Stop_H=Start_H AND Stop_M=Start_M AND Stop_S < Start_S) then NextDay=1

;---------------
if !NextDay then ; same day, use AND
if PastStart AND !PastStop then ProgON = 1
else ; next day, use OR
IF PastStart OR !PastStop then ProgON = 1
endif

AlwaysOFF:
return

I will never think of a BYTE variable the same way again. I always thought of a BYTE as a container which holds a number from 0-255, but the code above struck me this way, a BYTE is a BIT Array! where 8 bits all share the same variable name. All in how you look at things I guess, I saved this as an example for some future need. Thanks Darrel.

Darrel Taylor
- 5th July 2008, 08:33
All in how you look at things I guess
Exactly!

Thanks for fishing Joe. :)
<br>