Tuesday, February 21, 2006

The Bird Watcher






' {$STAMP BS2}
' {$PBASIC 2.5}

time_code VAR Word
elapsed_seconds VAR Word
location VAR Word
retrieve_at VAR Word
i VAR Word
year VAR Word
month VAR Byte
day VAR Byte
day_logged VAR Byte
hour VAR Byte
start_hour VAR Byte
hour_logged VAR Byte
minute VAR Byte
start_minute VAR Byte
minute_logged VAR Byte
second VAR Byte
second_logged VAR Byte
add_comment VAR Nib
added_comment VAR Nib
press_1 VAR IN0
display_times VAR IN1
on_off VAR IN2

time_code = 0
location = 128
second = 0
minute = 0
hour = 0
day = 0
start_minute = 0
start_hour = 0


DO
IF on_off = 0 THEN
DEBUG "Enter Year (YYYY) "
DEBUGIN DEC year
DEBUG CR
DEBUG "Enter Month (MM) "
DEBUGIN DEC month
DEBUG CR
DEBUG "Enter Day (DD) "
DEBUGIN DEC day
DEBUG CR
DEBUG "Enter Hour (HH) "
DEBUGIN DEC start_hour
DEBUG CR
DEBUG "Enter Minut (MM) "
DEBUGIN DEC start_minute
DEBUG CR
DEBUG DEC4 year
DEBUG "-"
DEBUG DEC2 month
DEBUG "-"
DEBUG DEC2 day
DEBUG "-"
DEBUG DEC2 start_hour
DEBUG ":"
DEBUG DEC2 start_minute
DEBUG CR
DEBUG "Press the on_off switch at any time to start logging data"
DEBUG CR

minute = minute + start_minute
hour = hour + start_hour

waiting:

ENDIF

IF on_off = 1 THEN

PAUSE 990

second = second + 1
time_code = time_code + 1

IF second > 59 THEN
second = 0
minute = minute + 1
ENDIF

IF minute > 59 THEN
minute = 0
start_minute = 0
hour = hour + 1
ENDIF

IF hour > 24 THEN
hour = 1
start_hour = 0
day = day + 1
ENDIF

IF press_1 = 1 THEN
add_comment = 0

WRITE location, time_code.LOWBYTE
location = location + 1

WRITE location, time_code.HIGHBYTE
location = location + 1

WRITE location, day
location = location + 1

WRITE location, hour
location = location + 1

WRITE location, minute
location = location + 1

WRITE location, second
location = location + 1

WRITE location, add_comment
location = location + 1


ENDIF

IF display_times = 1 THEN
retrieve_at = 128

FOR i = 1 TO ((location - 128)/7)
READ retrieve_at, elapsed_seconds.LOWBYTE
retrieve_at = retrieve_at + 1

READ retrieve_at, elapsed_seconds.HIGHBYTE
retrieve_at = retrieve_at + 1

READ retrieve_at, day_logged
retrieve_at = retrieve_at + 1

READ retrieve_at, hour_logged
retrieve_at = retrieve_at + 1

READ retrieve_at, minute_logged
retrieve_at = retrieve_at + 1

READ retrieve_at, second_logged
retrieve_at = retrieve_at + 1

READ retrieve_at, added_comment
retrieve_at = retrieve_at + 1

DEBUG DEC ? elapsed_seconds
DEBUG CR
DEBUG DEC4 year
DEBUG "-"
DEBUG DEC2 month
DEBUG "-"
DEBUG DEC2 day_logged
DEBUG "-"
DEBUG DEC2 hour_logged
DEBUG ":"
DEBUG DEC2 minute_logged
DEBUG "."
DEBUG DEC2 second_logged
DEBUG CR
DEBUG DEC ? added_comment
DEBUG CR
DEBUG "*****************************************"
DEBUG CR
NEXT
ENDIF
ELSE
GOTO waiting
ENDIF
LOOP

0 Comments:

Post a Comment

<< Home