Board logo

标题: [求助]关于freescale的C语言 [打印本页]

作者: Michael001    时间: 2005-9-30 09:00     标题: [求助]关于freescale的C语言

在freescale的C语言中,如何判定有进位位是否被置‘1’?
例如在PIC中只需判定
if(CARRY)
{
.....
}
就可以了。
在freescale的C语言中是否有同样的标志位呢?
如果没有,应如何判定?
谢谢!
作者: 8808beter    时间: 2005-9-30 09:32

C语言中好象没有对应的助记符,起码908GP32系列没有。只有汇编可以实现,为CCR位操作(置0/1)、CCR转移(跳转)指令,另外还可以用位测试指令BRCLR 0,CCR,*、BRSET 0,CCR,*来解决,总之要用C则很麻烦。
作者: strongchen    时间: 2005-9-30 10:14

CodeWarrior中定义了处理器标志位的判别函数,请参看《HC08_Compiler.pdf》的第372页。也可以看CodeWarrior的help中的“Read Processor Flags”章节。
作者: 8808beter    时间: 2005-9-30 10:21

真的呀,还是斑竹厉害,承教了——
Carry C __isflag_carry
Half carry H __isflag_half_carry
Overflow V __isflag_overflow
Interrupt pin high I __isflag_int
Interrupt enable M __isflag_int_enabled

Example:
if(__isflag_carry()) goto label
作者: Michael001    时间: 2005-9-30 13:59

谢谢版主!
作者: Michael001    时间: 2005-9-30 14:20

再问一下,需要INCLUDE什么头文件,我在编译时出错了,说
Implicit parameter-declaration for "__isflag_carry()"
作者: strongchen    时间: 2005-9-30 15:37

应该只是警告,不会出错的。这个警告对程序没有影响。
作者: Michael001    时间: 2005-10-8 14:51

哦,知道了,谢谢!




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0