16x84 opdrachten - jal samenvatting
aan het begin van een programma:
include 16c84_10 -- aanpassen aan de processor en het kristal dat je gebruikt!
include jlib -- altijd (port_a, delay_1mS etc.)
bepalen van de richting (input of output) van de gebruikte pinnen:
port_a_direction = all_input -- alle pinnen van poort a in 1 keer
port_b_direction = all_output -- alle pinnen van poort b in 1 keer
pin_b0_direction = output -- 1 pin tegelijk
pin_b1_direction = input
constantes definieren:
const bit aan = low, uit = high -- handig voor pinnen die actief-laag zijn
const byte cr = 10
const byte seven_7 = 0b_1010_0111
getallen:
0 1 2 255 256 -1 -2 -- decimaal. let op: 256 == 0, -1 == 255!
0b_1100_0011 -- binair (de _'s mag je toevoegen of weglaten)
0x_FF -- hexadecimaal
variabelen definieren:
var bit naar_links -- waarden true/false, high/low, on/off
var byte teller -- waarden 0..255
een procedure definieren:
procedure optellen( byte in out totaal, byte in erbij = 1 ) is
totaal = totaal + erbij
end procedure
een functie definieren:
function dubbel( byte in x ) return byte is
return 2 * x
end function
expressies:
optellen: + aftrekken: - vermenigvuldigen: * delen: /
modulo (rest bij deling): %
schuiven: << en >> vergelijken: < > <= >= == !=
of (OR): | en (AND): & of-of (XOR): ~ niet (NOT): !
statements:
a = <expressie>
<procedure>
if <conditie> then <statements> end if
if <conditie> then <statements> else <statements> end if
while <conditie> loop <statements> end loop
forever loop <statements> end loop
for <aantal> loop <statements> end loop
delays:
delay_100us( ) delay_200us( ) delay_500us
delay_1ms( ) delay_2ms( ) delay_5ms( )
delay_10ms( ) delay_20ms( ) delay_50ms( )
delay_100ms( ) delay_200ms( ) delay_500ms( )
delay_1s( ) delay_2S( ) delay_5s( )
De delay is wat de procedure aangeeft maal wat je tussen haakjes meegeeft.