//! [get_res]
uint16_t result;
sio2host_init();
printf("Hello
");
do {
/* Wait for conversion to be done and read out result */
} while (adc_read(&adc_instance, &result) == STATUS_BUSY);
//! [get_res]
printf("Fuck
");
//! [inf_loop]
while (1) {
/* Infinite loop
*/
delay_cycles_ms(5000);
do {
/* Wait for conversion to be done and read out result */
} while (adc_read(&adc_instance, &result) == STATUS_BUSY);
//! [get_res]
printf("%d
",result);
我什么都没动过,就是加了IO重定向以及delay模块,我在想是不是要我手动加入对ADC中断的处理函数啊,是不是执行之后,就表示要调用ADC中断处理函数,但是没有清除中断标识什么的,可是我觉得Atmel的工程师应该把这些都做好了的啊!你可以把你的实验代码工程发给我吗?谢谢了
先用查询的方式进行ADC转换试试。AS6中有R21的ADC例程,不需要修改什么,只要选好通道就可以。参考我那个帖子就可以很快试验出来。
好的,我下吃过饭试试看!不懂的地方还要麻烦您!谢谢了
int main(void)
{
system_init();
delay_init();
//! [setup_init]
configure_adc();
//! [setup_init]
//! [main]
//! [start_conv]
adc_start_conversion(&adc_instance);
//! [start_conv]
//! [get_res]
uint16_t result;
sio2host_init();
printf("Hello ");
do {
/* Wait for conversion to be done and read out result */
} while (adc_read(&adc_instance, &result) == STATUS_BUSY);
//! [get_res]
printf("Fuck ");
//! [inf_loop]
while (1) {
/* Infinite loop
*/
delay_cycles_ms(5000);
do {
/* Wait for conversion to be done and read out result */
} while (adc_read(&adc_instance, &result) == STATUS_BUSY);
//! [get_res]
printf("%d ",result);
}
//! [inf_loop]
//! [main]
}
还是不可以,就是卡死
一周热门 更多>