×

AVR模拟比较器使用范例

消耗积分:5 | 格式:rar | 大小:33 | 2008-11-01

分享资料个

/***********************************************
****       AVR 模拟比较器使用范例              ***
****                                        ***
**** 作者:  HJJourAVR                        ***
**** 编译器:WINAVR20050214                   ***
***********************************************/
/*
本程序简单的示范了如何使用ATMEGA16的模拟比较器
 模拟比较器的设置
 中断方式--较常用
 查询方式不常用,检测ACO即可,可用作DELTA-SIGMA A/D CONVERTER,校正后精度比较高,但速度低,用汇编可以略为提高速度。
 
出于简化程序考虑,各种数据没有对外输出,学习时建议使用JTAG ICE硬件仿真器
*/

#include
#include
#include
#include
/*
宏INTERRUPT 的用法与SIGNAL 类似,区别在于
    SIGNAL 执行时全局中断触发位被清除、其他中断被禁止
    INTERRUPT 执行时全局中断触发位被置位、其他中断可嵌套执
另外avr-libc 提供两个API 函数用于置位和清零全局中断触发位,它们是经常用到的。
分别是:void sei(void) 和void cli(void) 由interrupt.h定义
注: 内部函数_delay_ms() 最高延时  262.144mS@1MHz
    该函数可以实现较精确的定时,但用JTAG仿真时较麻烦---会进入机器码窗口(Disassembeler).注意跳开该语段。
      一旦JTAG仿真进入该内部函数语句,会变得像"死机"一样(其实在运行中),可以先[break],然后在后面的C语句设[breakpoint],[RUN]跳过
  ?for()/while()语句计算延时时间较麻烦。
    为了使 _delay_ms()函数的延时正确,须在makefile中设定F_CPU为实际的系统时钟频
    本范例为1MHz内部RC振荡器 即 F_CPU=1000000
*/

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !