daiya1981 发表于 2020-7-6 13:36:22

(分享)ATtiny13A ADC查询法使用

ATtiny13A ADC查询法使用,经测试可用。

void adc_init(void)
{
   ADCSRA = 0x00;//禁用ADC
   ADMUX = 0x03;
   ACSR = 0x80;    //禁用模拟比较器
   ADCSRB = 0x00;
   ADCSRA = 0x83;
}
uint read_adc(void)
{
   uint temp = 0;
   ADCSRA |= (1 << ADSC);   //使能AD转换,第一次转换,结果丢弃
   while((ADCSRA & (1 << ADIF)) == 0); //等待AD转换结束
   ADCSRA |= (1 << ADIF); //ADIF写1用来清除ADIF,规格书上要求的
   ADCSRA |= (1 << ADSC);   //使能AD转换,第二次转换,结果保留
   while((ADCSRA & (1 << ADIF)) == 0); //等待AD转换结束
   ADCSRA |= (1 << ADIF);
   temp = ADCL;
   temp |= (int)(ADCH << 8);
   
   return temp;
}

armok. 发表于 2020-7-6 14:01:46

打赏!

庆祝论坛“打赏”功能实施, 现在开始发技术主题,可以获得打赏
https://www.amobbs.com/thread-5735948-1-1.html
页: [1]
查看完整版本: (分享)ATtiny13A ADC查询法使用