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

F28335_ADC使用

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转换结束后的代码
继承事业,薪火相传
返回列表