打印

F28335_ADC使用

[复制链接]
586|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Peonys|  楼主 | 2017-10-27 10:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
F28335_ADC使用


  CONV_RUN为1时,无限次的会自动转换MAX_CONVn次,同时会把排序指针指向CONV00/08处,并重新开始;若为0时,每次触发转换MAX_CONVn次,但是指针不会自动指向CONV00/08处,需要自己使用RST_SEQn=1来调整指针。此指针包含排序部分和结果部分。
        SEQ_OVRD用于CONV_RUN为1时的连续运行模式
        ADC转换结束时AdcRegs.ADCST.bit.INT_SEQ1会被置位,用它来判断是否转换完成
  • <span style="line-height: 1.5;">while (AdcRegs.ADCST.bit.INT_SEQ1== 0){}语句用于等待。后面还要有手动清除</span>
  • <span style="line-height: 1.5;">AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1,除非使用了触发DMA功能,因为DMA会自动清除次标志。</span>

复制代码
       因为ADC是12位的,比较好的方式就是ADC转换结束后直接出发DMA,把AdcMirror的值直接转移到自己的目的寄存器中,免去了CPU的操作,同时转移的数据也是12位的有效数据,可以直接使用,而不需要进行右移4位的操作。因此可以使用DMA中断来处理ADC转换结束后的代码
沙发
shenmu2012| | 2017-10-27 14:26 | 只看该作者
比较好的方式就是ADC转换结束后直接出发DMA,把AdcMirror的值直接转移到自己的目的寄存器中,免去了CPU的操作

使用特权

评论回复
板凳
shenmu2012| | 2017-10-27 14:27 | 只看该作者
这个就是DMA的优势的,不占用CPU的

使用特权

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

本版积分规则

640

主题

901

帖子

5

粉丝