打印

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

[复制链接]
2301|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

使用特权

评论回复
5
renyaq| | 2021-7-3 11:37 | 只看该作者
一般是一次采集完了触发下一次中断.

使用特权

评论回复
6
午夜粪车|  楼主 | 2021-7-3 11:39 | 只看该作者
是pic16f877a啊,初学AD中断,没搞懂这个?

使用特权

评论回复
7
午夜粪车|  楼主 | 2021-7-3 11:44 | 只看该作者
比如定时器中断是时间到了触发一次,串口中断是收到数据触发一次,但是AD中断是怎么用啊?

使用特权

评论回复
8
chuxh| | 2021-7-3 11:45 | 只看该作者
是每次要手动触发一次吗?

使用特权

评论回复
9
renyaq| | 2021-7-3 11:47 | 只看该作者
就是要在主循环里执行一次GO_DONE = 1吗?

使用特权

评论回复
10
午夜粪车|  楼主 | 2021-7-3 11:50 | 只看该作者
没明白的是如果还是要手动执行的话不是和查询法转换没什么区别吗?

使用特权

评论回复
11
juventus9554| | 2021-7-3 11:52 | 只看该作者
AD中断在转换结束时产生的。

使用特权

评论回复
12
supernan| | 2021-7-3 11:53 | 只看该作者
至于何时启动,要看你具体的应用。

使用特权

评论回复
13
zhenykun| | 2021-7-3 11:55 | 只看该作者
自动的话你可以使用定时器

使用特权

评论回复
14
午夜粪车|  楼主 | 2021-7-3 11:57 | 只看该作者
请问是否可以这样理解:在主循环中启动一次转换后继续执行别的事情,AD转换完成后会产生中断后处理数据,如果需要可在定时中断时来启动转换,然后在转换完成后在中断中得到转换后的数据。请问是吗?谢谢了!

使用特权

评论回复
15
zwll| | 2021-7-3 15:09 | 只看该作者
ad模块的控制寄存器中应该可以设置触发中断的方式,我用的是dspic系列的,可以设置为转换完成时产生中断。

使用特权

评论回复
16
dingy| | 2021-7-3 15:11 | 只看该作者
是的。

使用特权

评论回复
17
午夜粪车|  楼主 | 2021-7-3 15:26 | 只看该作者
谢谢各位了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

867

主题

10194

帖子

3

粉丝