include 16c84_10 include jlib pin_a0_direction = output -- hoofdweg rood pin_a1_direction = output -- hoofdweg oranje pin_a2_direction = output -- hoofdweg groen pin_b0_direction = output -- zijweg rood pin_b1_direction = output -- zijweg oranje pin_b2_direction = output -- wijweg groen pin_b3_direction = output -- voetgangers rood pin_b4_direction = output -- voetgangers groen pin_a4_direction = input -- voetgangers drukknop pin_b5_direction = output -- voetgangers indicatie const bit aan = low const bit uit = high const byte rood = 0 const byte oranje = 1 const byte groen = 2 var bit voetgangers = no procedure schakelaar is for 100 loop if pin_a4 == aan then pin_b5 = aan voetgangers = yes end if delay_10mS( 1 ) end loop end procedure procedure wacht( byte in seconden ) is for seconden loop schakelaar end loop end procedure procedure fase( byte in seconden, byte in hoofdweg, byte in zijweg, byte in voetgangers ) is pin_a0 = ! ( hoofdweg == rood ) pin_a1 = ! ( hoofdweg == oranje ) pin_a2 = ! ( hoofdweg == groen ) pin_b0 = ! ( zijweg == rood ) pin_b1 = ! ( zijweg == oranje ) pin_b2 = ! ( zijweg == groen ) pin_b3 = ! ( voetgangers == rood ) pin_b4 = ! ( voetgangers == groen ) wacht( seconden ) end procedure -- de voetgangers komen alleen na de zijweg aan bod pin_b5 = uit forever loop fase( 1, rood, rood, rood ) fase( 5, groen, rood, rood ) fase( 1, oranje, rood, rood ) fase( 1, rood, rood, rood ) fase( 3, rood, groen, rood ) fase( 1, rood, oranje, rood ) fase( 1, rood, rood, rood ) if voetgangers then pin_b5 = uit fase( 5, rood, rood, groen ) voetgangers = no fase( 1, rood, rood, rood ) end if end loop