furs

ex1-out
Login

ex1-out

Small example

GPIOA_MODER_MODER1 ANALOG bfs!

becomes

$48000000  2  %11 bfs!

A larger example

Human Friendly
: gpio-init ( -- )
\ Enable GPIOA and GPIOC
RCC_AHBENR_IOPAEN enable! \ enable GPIOA
RCC_AHBENR_IOPCEN enable! \ enable GPIOC

\ PA1 is COMP1 & 2 INPUT. I/Os used as comparators inputs must be configured in analog mode. GPIOA_MODER_MODER1 ANALOG bfs! \ porta-1 is analog mode

\ PA5 is TIM2_CH1_ETR external clock via AF2 GPIOA_MODER_MODER5 AF bfs! GPIOA_AFRL_AFRL5 AF2 bfs!

\ PA6 COMP1 OUT for LMT01 pulses GPIOA_MODER_MODER6 AF bfs! GPIOA_AFRL_AFRL6 AF7 bfs!

\ PA7 is INPUT for TIM14_CH1 via AF4 GPIOA_MODER_MODER7 AF bfs! GPIOA_AFRL_AFRL7 AF4 bfs!

\ PA12 is COMP2 out via AF7 for LED GPIOA_MODER_MODER12 AF bfs! GPIOA_AFRH_AFRH12 AF7 bfs!

\ Power to LMT-01 via PC1 GPIOC_MODER_MODER1 OUTPUT bfs! \ PC1 to output (%01) PUSH PULL GPIOC_BSRR_BR1 1 bfs! \ PC1 set, BSRR is atomic so no bis! is needed

\ GPIOC 8 and 9 drive leds GPIOC_MODER_MODER8 OUTPUT bfs! \ blue led GPIOC_MODER_MODER9 OUTPUT bfs! \ green led ;

MCU Friendly
: gpio-init 
$40021014  17  enable!
$40021014  19  enable!
$48000000  2  %11 bfs!
$48000000  10  %10 bfs!
$48000020  20  %0010 bfs!
$48000000  12  %10 bfs!
$48000020  24  %0111 bfs!
$48000000  14  %10 bfs!
$48000020  28  %0100 bfs!
$48000000  24  %10 bfs!
$48000024  16  %0111 bfs!
$48000800  2  %01 bfs!
$48000818  17  1 bfs!
$48000800  16  %01 bfs!
$48000800  18  %01 bfs!
;