Board logo

标题: 关于volatile的疑问 [打印本页]

作者: icetea    时间: 2006-1-16 16:30     标题: 关于volatile的疑问

我用D64的片子,使用向导生成的工程,Libraries里有MC9S12D64.h和MC9S12D64.c,其中有


extern volatile PTPSTR _PTP @(REG_BASE + 0x00000258);


volatile PTPSTR _PTP;


请问哪个才是volatile 变量?


我用P口作双向I/O,有这样的语句:DDRP = 0xFFTP = c;//向外围器件写数据,c是byte变量


和 DDRP = 0x00; busy = PTP;  if(!busy&0x80){}   //读外围器件状态


结果是编译通知上一个判断语句的条件永远为假。我觉得我用的这个PTP还不是volatile 类型的,是这样吗?


作者: shpdlizj    时间: 2006-1-17 10:33     标题: 好好学习C语言

你的busy不是voliate变量!
当然要报错。
作者: icetea    时间: 2006-1-17 14:36

现在改成:
do
{
busy = PTP;
}
while(busy&0x80);
就没有错误警告了。
作者: icetea    时间: 2006-1-17 14:42

我直接用的PTP是volatile 量吗?




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