Here's the code:
TRISA = 0
TRISB = 2
CMCON = 7
ADCON1 = %00001111
ADCON0 = 0
symbol Off_1 = PortA.0
Symbol On_1 = PortA.1
symbol Off_2 = PortA.2
symbol On_2 = PortA.3
Symbol Speaker = PortA.4
SYMBOL Ground_1 = PortB.0
SYMBOL Positive_1 = PortB.1
symbol Lame_1 = PortB.2
symbol Ground_2 = PortB.3
Symbol Positive_2 = PortB.4
Symbol Lame_2 = PortB.5
SYMBOL Switch = PortA.5
symbol LED_1 = PortB.6
Symbol LED_2 = PortB.7
Positive_Ground_1 var bit
Ground_Lame_1 var bit
Positive_Lame_1 var bit
Positive_Bell_1 var bit
Positive_Ground_2 var bit
Ground_Lame_2 var bit
Positive_Lame_2 var bit
Positive_Bell_2 var bit
PG1_Count var byte
PG2_Count var byte
PL1_Count var byte
PL2_Count var byte
Cal var byte
Lockout var Word
Lockout_Cal var word
On1_Flag var bit
Off1_Flag var bit
On2_Flag var bit
Off2_Flag var bit
let cal = 18
let lockout_cal = 373
'''''''''''''
high on_1
pause 500
low on_1
high off_1
pause 500
low off_1
high off_2
pause 500
low off_2
high on_2
pause 500
low on_2
'''''''''''''''
input lame_1
INPUT LAME_2
Foil:
input positive_1
input positive_2
input ground_1
input ground_2
high positive_1
let positive_ground_1 = Ground_1
let positive_lame_1 = lame_2
let positive_bell_1 = ground_2
low positive_1
input positive_1
input positive_2
input ground_1
input ground_2
high positive_2
let positive_ground_2 = ground_2
let positive_lame_2 = lame_1
let positive_bell_2 = ground_1
low positive_2
input positive_2
high ground_1
let ground_lame_1 = lame_1
low ground_1
INPUT GROUND_1
high ground_2
let ground_lame_2 = lame_2
low ground_2
if positive_ground_1 = 0 and positive_bell_1 = 0 then
let pg1_count = pg1_count + 1
else
let pg1_count = 0
endif
if positive_ground_2 = 0 and positive_bell_2 = 0 then
let pg2_count = pg2_count + 1
else
let pg2_count = 0
endif
if positive_lame_1 = 1 AND POSITIVE_GROUND_1 = 0 then
let pl1_count = pl1_count + 1
else
let pl1_count = 0
endif
if positive_lame_2 = 1 AND POSITIVE_GROUND_2 = 0 then
let pl2_count = pl2_count + 1
else
let pl2_count = 0
endif
if pl1_count => cal then
high on_1
let on1_flag = 1
endif
if pl2_count => caL then
high on_2
let on2_flag = 1
endif
if pg1_count => cal AND PL1_COUNT < CAL then
high off_1
let off1_flag = 1
endif
if pg2_count => cal AND PL2_COUNT < CAL then
high off_2
let off2_flag = 1
endif
LET LED_1 = GROUND_LAME_1
LET LED_2 = GROUND_LAME_2
if On1_flag = 1 or off2_flag = 1 or on2_flag = 1 or off1_flag = 1 then
let lockout = lockout + 1
else
let lockout = 0
endif
if lockout => lockout_cal then
pause 2000
low on_1
low on_2
low off_1
low off_2
let on1_flag = 0
let on2_flag = 0
let off1_flag = 0
let off2_flag = 0
endif
goto foil
end
Bookmarks