zbh-avr 发表于 2009-5-7 00:34:16

傻孩子,#define SEI() asm("sei")是什么意思呢,可以解释下嘛?

是不是汇编语言,asm("")这种格式可以解释下嘛,还有上面两个宏定义,所完成的是什么功能?
具体是对AVR寄存器中的哪一个位进行操作吗?

helloavr 发表于 2009-5-7 15:38:13

就是说当程序中使用SEI();时 表示 执行 asm("sei");开中断

chip_good 发表于 2009-5-7 16:18:12

这种DATASHEETS都讲的很清楚的
全局中断使能       SREG寄存器 I位置1

enterout123 发表于 2009-5-13 11:03:08

功能确实是二楼说的没错,但我觉得二楼是答非所问.楼主的意思是这句语法啥理解?sei是汇编全局中断使能,要将它用在C里,就加个asm();意思是在C里使用汇编指令.

zbh-avr 发表于 2009-5-17 08:37:36

谢谢,明白了。

denglu 发表于 2010-6-10 00:49:24

mark

Keith24 发表于 2011-8-4 15:12:45

就是方便你嵌入汇编啦,#define SEI() asm("sei")、#define CLI() asm("cli")分别是总中断允许位置位/清除。用宏就是免得让你嵌入汇编时出错,而且更方便而已

Kidult 发表于 2012-3-29 14:13:10

enterout123 发表于 2009-5-13 11:03 static/image/common/back.gif
功能确实是二楼说的没错,但我觉得二楼是答非所问.楼主的意思是这句语法啥理解?sei是汇编全局中断使能,要将 ...

太感谢你了!我的问题解决了,可是我不明白为什么既然是宏定义了,为什么用SEI()不行呢?我用SEI(),报的错误是:
      !ERROR file 'main.o': undefined symbol '_SEI';奇怪了,我包含了头文件 macros.h啊,里面有对于这个位操作指令的定义:
#define _asm asm    /* old style */
#define WDR()   asm("wdr")
#define SEI()   asm("sei")
#define CLI()   asm("cli")
#define NOP()   asm("nop")
#define _WDR()   asm("wdr")
#define _SEI()   asm("sei")
#define _CLI()   asm("cli")
#define _NOP()   asm("nop")

为什么还要报错呢?

该为asm("sei")的时候就对了!

bigfatfish 发表于 2012-3-29 14:32:39

Kidult 发表于 2012-3-29 14:13 static/image/common/back.gif
太感谢你了!我的问题解决了,可是我不明白为什么既然是宏定义了,为什么用SEI()不行呢?我用SEI(),报的 ...

你的macro.h里面,后面那些#是全角字符么?

Hunter 发表于 2012-3-29 15:06:58

可以使用的,楼主再检查一下哈。

Kidult 发表于 2012-3-29 15:22:03

Hunter 发表于 2012-3-29 15:06 static/image/common/back.gif
可以使用的,楼主再检查一下哈。

真的不行呀...试过很多遍了

Gorgon_Meducer 发表于 2012-3-29 22:48:32

全角字符……

liuchangkui 发表于 2012-5-5 18:08:02


#define _asm asm    /* old style */
#define WDR()   asm("wdr")
#define SEI()   asm("sei")
#define CLI()   asm("cli")
#define NOP()   asm("nop")
#define _WDR()   asm("wdr")
#define _SEI()   asm("sei")
#define _CLI()   asm("cli")
#define _NOP()   asm("nop")


把见面的#号该了,这样就可以用了

t3486784401 发表于 2012-5-6 12:46:27

全角神马的最讨厌了
,;#!+-=    <-------------- 全角
, ; # ! + - =   <-------------- 半角

xxxudong 发表于 2012-6-11 23:24:25

有道理,应该是这样

shuiluo 发表于 2012-6-12 07:37:09

还有全角半角这一出,学习了

brb2010 发表于 2012-7-3 16:33:36

学习了

zhanyicai000 发表于 2012-7-26 09:39:20

hhhhhhhhhhhhhhh
页: [1]
查看完整版本: 傻孩子,#define SEI() asm("sei")是什么意思呢,可以解释下嘛?