首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

驱动代码,左右赋值后,打印结果不同,该如何解决

2012-03-11 
驱动代码,左右赋值后,打印结果不同比如以下代码,preturn-len k_len//已知k_len 1for (i 0 i 8

驱动代码,左右赋值后,打印结果不同
比如以下代码,

preturn->len = k_len; //已知 k_len = 1

for (i = 0; i < 8; i++)
{
  if (a != b) //已知a != b
  {
  printk("%d",preturn->len);
  printk("%d",k_len);
  }

}

以上代码中的k_len实际上是我统计的键盘同时按键的个数,preturn->len是我准备返回给应用层的,但是有时按下一个键以后,大部分情况是正常的,但有时pretuen->len打印的结果为0,k_len打印的结果为1,这个就不太明白了,谁能解释以下

[解决办法]
考虑一下瞬态的变化:
当你执行第1句时,k_len=0
preturn->len = k_len;
printk("%d",preturn->len);
打印就为0。这期间,由于按键输入和中断接收,使k_len=1了 
于是 printk("%d",k_len);就打印出1了。

热点排行