sei(); 和 sreg |= 0x80; 效果是否一样?

[复制链接]
2967|10
 楼主| SaberLion 发表于 2014-7-4 09:44 | 显示全部楼层 |阅读模式
我在atmel studio6 里面调试是一样的
但是我看datasheet官方例程和网上的其他代码大多数用的是sei();
写哪种是习惯问题么?
为什么不写后面这种呢,这样不是有利于自己记住操作的是哪个寄存器么
 楼主| SaberLion 发表于 2014-7-4 09:45 | 显示全部楼层
新人刚开始学avr  
所以想要个好的习惯  
希望前辈们指点指点
wangch_sh 发表于 2014-7-4 09:47 | 显示全部楼层
一样的

评分

参与人数 1威望 +2 收起 理由
SaberLion + 2 赞一个!

查看全部评分

原野之狼 发表于 2014-7-4 09:50 | 显示全部楼层
没考究过
看下其汇编有没有差别吧

评分

参与人数 1威望 +2 收起 理由
SaberLion + 2 赞一个!

查看全部评分

 楼主| SaberLion 发表于 2014-7-4 10:11 | 显示全部楼层
wangch_sh 发表于 2014-7-4 09:47
一样的

也就是说这只是个习惯问题是吧
其他没有任何影响
那如果 在方便移植的前提下  用哪一种好?
原野之狼 发表于 2014-7-4 10:22 | 显示全部楼层
SaberLion 发表于 2014-7-4 10:11
也就是说这只是个习惯问题是吧
其他没有任何影响
那如果 在方便移植的前提下  用哪一种好? ...

前一种好!
 楼主| SaberLion 发表于 2014-7-4 10:38 | 显示全部楼层
原野之狼 发表于 2014-7-4 10:22
前一种好!

为什么呢?
前一种不是要相应包含该函数的头文件才能操作么
后一种直接操作寄存器不是更明了么
wangch_sh 发表于 2014-7-4 11:01 | 显示全部楼层
前一种一看就知道什么意思。
后一种意义不明显。
 楼主| SaberLion 发表于 2014-7-4 11:05 | 显示全部楼层
wangch_sh 发表于 2014-7-4 11:01
前一种一看就知道什么意思。
后一种意义不明显。

哦 ,后一种可以写成 SREG |= SREG_I 这样
原野之狼 发表于 2014-7-4 11:11 | 显示全部楼层
SaberLion 发表于 2014-7-4 10:38
为什么呢?
前一种不是要相应包含该函数的头文件才能操作么
后一种直接操作寄存器不是更明了么 ...

使用封装过的方法  就不用操作寄存器了   更具有可读性和可移植性
 楼主| SaberLion 发表于 2014-7-4 11:23 | 显示全部楼层
原野之狼 发表于 2014-7-4 11:11
使用封装过的方法  就不用操作寄存器了   更具有可读性和可移植性

知道了  谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

59

帖子

1

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