请教关于C8051寄存器操作问题

[复制链接]
 楼主| aiping1987 发表于 2010-9-13 14:06 | 显示全部楼层 |阅读模式
我在用C8051F120单片机时,为什么每次当初始化时都要保存当前寄存器页之后才能操作,而且操作完之后还要还原当前寄存器页呢?如下的定时器初始化操作。我感觉操作其他的单片机好像都不需要这样。
void Timer2_Init (void)
{
   unsigned char SFRPAGE_save = SFRPAGE;
   SFRPAGE = TMR2_PAGE;

   ...

   SFRPAGE = SFRPAGE_save;   
}
ayb_ice 发表于 2010-9-13 14:19 | 显示全部楼层
为什么其它MCU不叫C8051F120呢
mjj123 发表于 2010-9-13 17:30 | 显示全部楼层
你也可以不保存以前的页,直接SFRPAGE = TMR2_PAGE;
这样你每次操作相关的寄存器时,都要切换的对应的页就可以了。
ayb_ice 发表于 2010-9-14 09:53 | 显示全部楼层
SFR多于128字节,超过了51的SFR空间,自然要分页的
中断中一般要保存当前页,
而非中断调用程序不需要保存页,在访问分页SFR时,直接设定页再访问即可
ayb_ice 发表于 2010-9-14 09:54 | 显示全部楼层
SFR多于128字节,超过了51的SFR空间,自然要分页的
中断中一般要保存当前页,
而非中断调用程序不需要保存页,在访问分页SFR时,直接设定页再访问即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

38

帖子

0

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

9

主题

38

帖子

0

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