AVR-3 进入比较器中断的服务程序

自从从51过来AVR后,不少东西都要重新习惯一下,比如AVR不支持位操作,对一个位操作,他可能是 PORTA |= (1<<PA1) 又或者是 PORTA &= ~(1<<PA1) 虽然都是一句,但是我觉得51的方法还是有一定的先入为主的性质,感官上是比较简单容易理解一点...也算是个习惯问题吧.
由于比较back EMF 需要一个比较器,当然,片内都载了一个模拟比较器.这样就省了外部电路了,但我需要在比较出答案以后,打开定时器,计时,然后再在下一次匹配上的时候关闭定时器.想了一阵,还是觉得用中断比较合适.正好比较器有他自己的中断,从手册上可以看到,他的名字叫做 模拟比较器中断 $020 ANA_COMP ..前前后后对比一下,猜他可能就是用这名字进入中断.但是在interrupt.h里面我们找不到中断的名字,他上面是有中断的用法ISR(vect [attribute])...突然想到,他的中断定义应该是存放在芯片的宏定义文件里面(iom16.h) 怎么说他只是一个寄存器嘛,打开一找,果然是
|
|其他中断的宏定义
|
/* Analog Comparator */
#define ANA_COMP_vect            _VECTOR(16)
#define SIG_COMPARATOR            _VECTOR(16)
|
|
显然, ISR(ANA_COMP_vect) {//code}  只要这样,就可以像定时器中断那样跳进服务进程了.

同时,也可以看见,无论用什么样的开发环境,都应该时刻查看他的 include 和 其他宏定义 头文件 等等.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值