硬件平台:stm8s103
编译环境:IAR for stm8
//adc通道4初始化
void adc_init(void)
{
ADC_CSR_CH = ADC_Chanel4; //选择ADC通道4
ADC_CR3_DBUF = 0; //数据缓存功能禁止
ADC_CR2_ALIGN = 1; // 数据右对齐
}
void startReadAdc4(void)
{
ADC_CR1_ADON = 1; //打开ADC
ADC_CSR_EOCIE = 1; //势能中断知道转换完成
}
中断处理
#pragma vector = ADC1_EOC_vector
__interrupt void ADC1_EOC_IRQHandler()
{
unsigned char low, high;
int reading;
ADC_CR1_ADON = 0; // 禁用ADC
ADC_CSR_EOC = 0; // 表示ADC转换完成
//读取ADC数据寄存器值
low = ADC_DRL;
high = ADC_DRH;
reading = 1023 - ((high * 256) + low);
}