搜索

AVR Studio GCC编译器编写的定时器0中断函数调了1天半愣是现象没

gecimao 发表于 2019-07-03 02:34 | 查看: | 回复:

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  推荐于2016-04-06展开全部你的确中断向量名用的不对,ISR是新版gcc里的中断函数名,对应的TC0溢出中断向量叫

  TIMER0_OVF_vect,旧版的是SIGNAL(SIG_OVERFLOW0)你完全搞混了啊啊啊啊。新版里用不了SIGNAL旧版里用不了ISR,看你自己哪个版本。而且你开全局中断也与错了亲。SREG的第七位置1,不是第0位,也就是应该是SREG = 0x80; 亲。而且开全局中断用sei()多好,干嘛还要自己费尽去位操作,还给与错位了。你开头已经包含了IO.h为什么你后面还要再#includeavr/iom128.h?ICC里要单独这么写,但你用的是gcc啊亲。

  给个建议,认真的、用心的把avr的技术手册和gcc的user manual 看一遍,然后再多看看高手写的代码。追问谢谢了,我用sei()就会报错,请问头文件是哪一个?

  我刚刚改了SREG = 0x80,结果一样!追答你的程序我跑了,把我说的地方改了之后可以跑出你要的效果,无论是SREG = 0x80

  至于为什么你跑不出来我不清楚。你最好再检查下你的电路两个LED是推电流驱动还是灌电流驱动。你用sei会报错,应该是你的中断库没加对。使用中断引用的头文件就是interrupt.h

本文链接:http://kingstonflowers.net/dingshifenxi/782.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部