首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]AD问题

[求助]AD问题

芯片使用 HCS08GB60
外部晶振 4MHz
程序

main{
ATD1PE = 0x01; /* Write breaks the conversion */
ATD1C = 0xA0; /* Write breaks the conversion */
ATD1SC = 0x40; /* Write starts a new conversion */
for(;;) {
__RESET_WATCHDOG(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}

interrupt 23 void Vatd1_isr(void)
{
result = ATD1RH; /* Read result and acknowledge interrupt */
ATD1SC = ATD1SC; /* Re-Start Conversion for Ch1 */
}

能进中断,但是结果一致为0
能进中断吗?似乎少了一句EnableInterrupts;吧。另外,检查一下AD的参考电平和电源脚的连接。
海纳百川  有容乃大
你也可以试一下在AD中断中先读ATD1RH,再读一下ATD1RL(虽然你不用它)。
海纳百川  有容乃大
谢版主~
开中断的语句有的~
问题找到:参考电平出了问题~
读完ATD1RH,最好再读一下ATD1RL。

另外请问:参考电平在哪儿设置呢?
我爱单片机。
参考电平是外部硬件电路连接,不用软件设置。
海纳百川  有容乃大
感谢strongchen!
我爱单片机。
返回列表