\ A small analog input example for Calliope \ Tasks: $40007000 constant adc_start $40007004 constant adc_stop \ Events: $40007100 constant adc_end \ Registers: $40007400 constant adc_busy $40007500 constant adc_enable $40007504 constant adc_config $40007508 constant adc_result : init-analog ( -- ) 1 adc_enable ! ; : analog ( channel -- result ) \ 1 adc_stop ! $200 swap lshift 2 or adc_config ! \ Select input channel and 10 bits resolution with internal 1.2V bandgap reference 1 adc_start ! begin 1 adc_busy bit@ not until adc_result @ ; : analog-demo ( -- ) \ Reads all three banana jack ports init-analog begin 2 analog u. 1 analog u. cr key? until ;