打印

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

[复制链接]
2502|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 赞一个!
5
SaberLion|  楼主 | 2014-7-4 10:11 | 只看该作者
wangch_sh 发表于 2014-7-4 09:47
一样的

也就是说这只是个习惯问题是吧
其他没有任何影响
那如果 在方便移植的前提下  用哪一种好?

使用特权

评论回复
6
原野之狼| | 2014-7-4 10:22 | 只看该作者
SaberLion 发表于 2014-7-4 10:11
也就是说这只是个习惯问题是吧
其他没有任何影响
那如果 在方便移植的前提下  用哪一种好? ...

前一种好!

使用特权

评论回复
7
SaberLion|  楼主 | 2014-7-4 10:38 | 只看该作者
原野之狼 发表于 2014-7-4 10:22
前一种好!

为什么呢?
前一种不是要相应包含该函数的头文件才能操作么
后一种直接操作寄存器不是更明了么

使用特权

评论回复
8
wangch_sh| | 2014-7-4 11:01 | 只看该作者
前一种一看就知道什么意思。
后一种意义不明显。

使用特权

评论回复
9
SaberLion|  楼主 | 2014-7-4 11:05 | 只看该作者
wangch_sh 发表于 2014-7-4 11:01
前一种一看就知道什么意思。
后一种意义不明显。

哦 ,后一种可以写成 SREG |= SREG_I 这样

使用特权

评论回复
10
原野之狼| | 2014-7-4 11:11 | 只看该作者
SaberLion 发表于 2014-7-4 10:38
为什么呢?
前一种不是要相应包含该函数的头文件才能操作么
后一种直接操作寄存器不是更明了么 ...

使用封装过的方法  就不用操作寄存器了   更具有可读性和可移植性

使用特权

评论回复
11
SaberLion|  楼主 | 2014-7-4 11:23 | 只看该作者
原野之狼 发表于 2014-7-4 11:11
使用封装过的方法  就不用操作寄存器了   更具有可读性和可移植性

知道了  谢谢

使用特权

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

本版积分规则

18

主题

59

帖子

1

粉丝