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

[复制链接]
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部