请问定义的中断方式A/D转换,什么时候触发中断啊

[复制链接]
2732|16
 楼主| 午夜粪车 发表于 2021-7-3 11:28 | 显示全部楼层 |阅读模式
请问定义的中断方式A/D转换,什么时候触发中断啊
supernan 发表于 2021-7-3 11:30 | 显示全部楼层

什么意思?不是很明白你说的什么,能再解释一下这个现象吗
 楼主| 午夜粪车 发表于 2021-7-3 11:32 | 显示全部楼层
总是没搞懂,发像不知道怎样调用这个中断。谢谢了

//A/D中断函数
void __interrupt() ISR(void)
{
    if (ADIE && ADIF)
    {
        ADIF = 0;
        ADbuf = ADRESH * 256 + ADRESL; //将10位A/D转换结果暂存在ADbuf        
        GO_DONE = 1;
    }
}
zwll 发表于 2021-7-3 11:34 | 显示全部楼层
什么芯片啊? 这个通用中断函数名看起来像PIC,不像AVR
renyaq 发表于 2021-7-3 11:37 | 显示全部楼层
一般是一次采集完了触发下一次中断.
 楼主| 午夜粪车 发表于 2021-7-3 11:39 | 显示全部楼层
是pic16f877a啊,初学AD中断,没搞懂这个?
 楼主| 午夜粪车 发表于 2021-7-3 11:44 | 显示全部楼层
比如定时器中断是时间到了触发一次,串口中断是收到数据触发一次,但是AD中断是怎么用啊?
chuxh 发表于 2021-7-3 11:45 | 显示全部楼层
是每次要手动触发一次吗?
renyaq 发表于 2021-7-3 11:47 | 显示全部楼层
就是要在主循环里执行一次GO_DONE = 1吗?
 楼主| 午夜粪车 发表于 2021-7-3 11:50 | 显示全部楼层
没明白的是如果还是要手动执行的话不是和查询法转换没什么区别吗?
juventus9554 发表于 2021-7-3 11:52 | 显示全部楼层
AD中断在转换结束时产生的。
supernan 发表于 2021-7-3 11:53 | 显示全部楼层
至于何时启动,要看你具体的应用。
zhenykun 发表于 2021-7-3 11:55 | 显示全部楼层
自动的话你可以使用定时器
 楼主| 午夜粪车 发表于 2021-7-3 11:57 | 显示全部楼层
请问是否可以这样理解:在主循环中启动一次转换后继续执行别的事情,AD转换完成后会产生中断后处理数据,如果需要可在定时中断时来启动转换,然后在转换完成后在中断中得到转换后的数据。请问是吗?谢谢了!
zwll 发表于 2021-7-3 15:09 | 显示全部楼层
ad模块的控制寄存器中应该可以设置触发中断的方式,我用的是dspic系列的,可以设置为转换完成时产生中断。
dingy 发表于 2021-7-3 15:11 | 显示全部楼层
是的。
 楼主| 午夜粪车 发表于 2021-7-3 15:26 | 显示全部楼层
谢谢各位了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

867

主题

10194

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部