Created
July 7, 2020 14:40
-
-
Save andrewsclapp/af1f41537a95710198603bb6f3758872 to your computer and use it in GitHub Desktop.
test1-adc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\res MCU: STM8L051 | |
\res export CLK_PCKENR2 | |
5 CONSTANT PCKEN25 | |
#require ]B! | |
#require WIPE | |
NVM | |
: adcCLKCFG ( -- ) | |
[ 1 CLK_PCKENR2 PCKEN25 ]B! | |
; | |
RAM | |
WIPE | |
\res MCU: STM8L051 | |
\res export RI_ASCR1 RI_IOSR2 | |
#require ]C! | |
#require WIPE | |
NVM | |
: INITRI ( -- ) | |
[ $82 RI_IOSR2 ]C! | |
\ [ $82 RI_ASCR1 ]C! | |
[ $00 RI_ASCR1 ]C! | |
; | |
RAM | |
WIPE | |
\res MCU: STM8L051 | |
\res export ADC1_CR1 ADC1_CR2 ADC1_SR ADC1_DRH ADC1_DRL | |
4 CONSTANT ADC_CR1_CONT | |
96 CONSTANT ADC_CR1_RES | |
2 CONSTANT ADC_CR1_START | |
1 CONSTANT ADC_CR1_ADON | |
128 CONSTANT ADC_CR2_PRESC | |
0 CONSTANT ADC_PRESC_1 | |
128 CONSTANT ADC_PRESC_2 | |
0 CONSTANT ADC_Res_12Bit | |
#require C! | |
#require WIPE | |
NVM | |
: ADCINIT ( -- ) | |
\ ADCINIT - conversion mode single, resolution 12bit, prescaler 1 | |
ADC_CR1_CONT ADC_CR1_RES OR NOT ADC1_CR1 @ AND ADC1_CR1 C! \ ADC_CR1 Register | |
ADC_CR2_PRESC NOT ADC1_CR2 @ AND ADC1_CR2 C! \ res | |
ADC_PRESC_2 ADC1_CR2 @ OR ADC1_CR2 C! \ Set ADC_Prescalar_1 | |
; | |
RAM | |
WIPE | |
7 CONSTANT ADC_384_Cycles \ slow | |
2 CONSTANT ADC_16_Cycles \ fast | |
7 CONSTANT ADC_CR2_SMPT1 | |
\res MCU: STM8L051 | |
\res export ADC1_CR1 ADC1_CR2 ADC1_SR ADC1_DRH ADC1_DRL | |
#require C! | |
#require WIPE | |
NVM | |
: STCFG ( -- ) | |
\ STCFG | |
ADC_CR2_SMPT1 NOT ADC1_CR2 @ AND ADC1_CR2 C! \ SamplingTimeConfig | |
ADC_16_Cycles ADC1_CR2 @ OR ADC1_CR2 C! \ 16_Cycles - slowest | |
; | |
RAM | |
WIPE | |
1 CONSTANT ADC_CR1_ADON | |
\res MCU: STM8L051 | |
\res export ADC1_CR1 ADC1_CR2 ADC1_SR ADC1_DRH ADC1_DRL | |
#require C! | |
#require WIPE | |
NVM | |
\ ADC on-off control | |
\ The ADC can be powered-on by setting the ADON bit in the ADC_CR1 register. | |
\ When the ADON bit is set, it wakes up the ADC from Power-down mode. | |
\ Conversion should be started only when the ADC power-up time (t WKUP ) | |
\ has elapsed and before the ADC maximum idle delay (t IDLE ) has elapsed. | |
\ The software can stop conversion and put the ADC | |
\ in Power-down mode by resetting the ADON bit. | |
: ADCEN ( -- ) | |
\ ADCEN - ADC_Cmd(ADC1, ENABLE); | |
ADC_CR1_ADON ADC1_CR1 @ OR ADC1_CR1 C! \ ADC Enable | |
; | |
RAM | |
WIPE | |
784 CONSTANT ADC_Channel_4 | |
320 CONSTANT ADC_Channel_22 | |
\res MCU: STM8L051 | |
\res export ADC1_SQR1 ADC1_SQR2 ADC1_SQR3 ADC1_SQR4 | |
#require C! | |
#require WIPE | |
NVM | |
: ADCCH ( -- ) | |
\ ADCCH - ADC_ChannelCmd(ADC1, Channel, ENABLE | |
\ not sure about this | |
\ ADC_Channel_4 ADC1_SQR1 @ OR ADC1_SQR1 C! \ ADC Enable Channel - voltage | |
ADC_Channel_22 ADC1_SQR1 @ OR ADC1_SQR1 C! \ ADC Enable Channel - current | |
; | |
RAM | |
WIPE | |
#require C! | |
#require WIPE | |
NVM | |
2 CONSTANT ADC_CR1_START | |
\res MCU: STM8L051 | |
\res export ADC1_CR1 ADC1_CR2 ADC1_SR ADC1_DRH ADC1_DRL | |
: STARTCONV ( -- ) | |
\ STARTCONV - ADC_SoftwareStartConf(ADC1); | |
\ not sure about this | |
ADC_CR1_START ADC1_CR1 @ OR ADC1_CR1 C! | |
; | |
RAM | |
WIPE | |
\res MCU: STM8L051 | |
\res export ADC1_CR1 ADC1_CR2 ADC1_SR ADC1_DRH ADC1_DRL | |
#require WIPE | |
NVM | |
: WAITCONV ( -- ) | |
\ WAITCONV | |
\ Function | |
\ while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET) { | |
\ } | |
\ begin ADC1_SR @ ADC_FLAG_EOC AND 0 = until | |
\ but ADC_FLAG_EOC is 1 | |
begin ADC1_SR @ 1 AND 0 = until | |
; | |
RAM | |
WIPE | |
\res MCU: STM8L051 | |
\res export ADC1_CR1 ADC1_CR2 ADC1_SR ADC1_DRH ADC1_DRL | |
#require WIPE | |
NVM | |
: ADCGETVAL ( -- a ) | |
\ ADCGETVAL - ADC_GetConversionValue(ADC1); | |
ADC1_DRH @ 2* ADC1_DRL @ AND \ it is left on the stack | |
; | |
RAM | |
WIPE | |
\ : showv 4 ADC! ADC@ . ; | |
\ : showa 22 ADC! ADC@ . ; | |
: ADCRD | |
adcCLKCFG | |
INITRI | |
ADCINIT | |
STCFG | |
ADCEN | |
ADCCH | |
STARTCONV | |
WAITCONV | |
ADCGETVAL | |
; | |
\ ADCRD . |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment