打印
[Atmel]

大虾好,在AVR C编译器中怎么样定义一个寄存器全局变量?

[复制链接]
1486|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MIKEZHONG|  楼主 | 2015-4-25 18:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大虾好,在AVR C编译器中怎么样定义一个寄存器全局变量?

当然大家都会说不要这么做,编译器也不支持这样做。

但是我这个对时序要求非常严格,有一个1.6US的中断,用来发送数据。主循环的数据传到中断如果不能用用寄存器传送,那么中断进入时间+退出时间+中间的执行的就会造成1.6US不够。出来的1.6US时间就长短不一。

用的是AVR MEGA16 16M晶振,有高人实现了,但是就是搞不懂是怎么实现的?

大家能明白我说的?

相关帖子

沙发
ayb_ice| | 2015-4-26 08:10 | 只看该作者
C已经不可能这样做了,

register这个关键字已经基本没有意义了,只是建议编译器尽量定位在寄存器中,局部变量还行,全局变量不可能了

使用特权

评论回复
板凳
mcu5i51| | 2015-4-26 09:14 | 只看该作者
AVR的C编译器有一部分可以做到,不过是用占用一些寄存器的方法,不过和编译器的关系太大,双不知你用哪个,自己看看你用的编译器行不行

使用特权

评论回复
地板
ddllxxrr| | 2015-4-26 10:58 | 只看该作者
要想精确的定时,最好用汇编及C,联合混编,中断部分汇编。

使用特权

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

本版积分规则

51

主题

250

帖子

1

粉丝