Board Support Words
Defaults: Digital port pins D0 to D7 are push pull outputs, D8 to D15 are inputs with pull-up resistors.
led1! ( n -- ) sets LED1 (blue)
led2! ( n -- ) sets LED2 (green)
led3! ( n -- ) sets LED3 (red)
led1@ ( -- n ) gets LED1 (blue)
led2@ ( -- n ) gets LED2 (green)
led3@ ( -- n ) gets LED3 (red)
switch1? ( -- n ) gets switch1, closed=TRUE
switch2? ( -- n ) gets switch2, closed=TRUE
switch3? ( -- n ) gets switch3, closed=TRUE
dport! ( n -- ) sets the digital output port (D0=bit0 .. D15=bit15).
dport@ ( -- n ) gets the digital input/output port (D0=bit0 .. D15=bit15).
dpin! ( n a -- ) sets the digital output port pin (D0=0 .. D15=15)
dpin@ ( a -- n ) gets the digital input/output port pin
dmod ( u a -- ) sets the pin mode: 0 in, 1 in pull-up, 2 in pull-down, 3 out push pull, 4 out open drain,
5 out push pull PWM, 6 input capture, 7 output push pull compare
EXTImod ( u a -- ) Sets for pin a (D2, D4, D7, D10) the EXTI mode u: 0 rising, 1 falling, 2 both edges, 3 none
EXTIwait ( u a -- ) Wait for EXTI interrupt on pin a (D2, D4, D7, D10), timeout u in [ms]
pwmpin! ( u a -- ) sets the digital output port pin a (D3=3, D6=6, D9=9) to a PWM value u (0..1000). Default frequency is 1 kHz, TIMER1
pwmprescale ( u -- ) Sets the PWM prescale for TIMER1. 32 kHz / prescale, default 32 -> PWM frequency 1 kHz
ICOCprescale ( u -- ) Sets the input capture / output compare prescale for TIMER2. default 32 -> 32 MHz / 32 = 1 MHz, timer resolution 1 us
ICOCperiod! ( u -- ) Sets the input capture / output compare (TIMER2) period. default $FFFFFFFF (4'294'967'295).
When the up counter reaches the period, the counter is set to 0.
For prescale 32 the maximum time is about 1 h 11 m
ICOCcount! ( -- u ) Sets the input capture / output compare counter for TIMER2
ICOCcount@ ( u -- ) Gets the input capture / output compare counter for TIMER2
ICOCstart ( -- ) Starts the ICOC period
ICOCstop ( -- ) Stops the ICOC period
OCmod ( u a -- ) Sets for pin a (D0, D1, D5) the Output Compare mode u: 0 frozen, 1 active level on match, 2 inactive level on match,
3 toggle on match, 4 forced active, 5 forced inactive
OCstart ( u a -- ) Starts the output compare mode for pin a with pulse u
OCstop ( a -- ) Stops output compare for pin a
ICstart ( u -- ) Starts input capture u: 0 rising edge, 1 falling edge, 2 both edges
ICstop ( -- ) Stops input capture
waitperiod ( -- ) wait for the end of the TIMER2 period
OCwait ( a -- ) wait for the end of output capture on pin a
ICwait ( u -- u ) wait for the end of input capture with timeout u, returns counter u
apin@ ( a -- u ) gets the analog input port pin (A0 .. A5). Returns a 12 bit value (0..4095)