首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于volatile的疑问

关于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 类型的,是这样吗?

好好学习C语言

你的busy不是voliate变量!
当然要报错。
              非学无以广才,非志无以成学;              
现在改成:
do
{
busy = PTP;
}
while(busy&0x80);
就没有错误警告了。
我直接用的PTP是volatile 量吗?
返回列表