国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電子工程網

標題: 讀取TH0,TL0的值的問題 [打印本頁]

作者: 風溪香士    時間: 2012-8-31 11:45
標題: 讀取TH0,TL0的值的問題
我寫的一個程序,需要讀取TH0,TL0的值,用time=256*TH0+TL0;可正確讀取,而用time|=TH0;   time<<=8;   time|=TL0;卻不能。具體情況如下。
外部中斷0和定時器0初始化:
P3=0;
TMOD=0x09;
TH0=0;
TL0=0;
IT0=1;
EA=1;
EX0=1;
TR0=1;
外部中斷0服務函數:
void int0() interrupt 0
{
// time|=TH0;
// time<<=8;
// time|=TL0;
time=256*TH0+TL0;
// time_l=TL0;
// time_h=TH0;
// time|=time_h;
// time<<=8;
// time|=time_l;
TH0=0;
TL0=0;
}
我是測試HC-SR04超聲波模塊,它的輸出腳接在P32,會輸出一個脈沖,我就是要計算這脈沖的高電平時間。
設定了定時器0的GATE位為1,當P32的高電平開始時,TH0,TL0開始計數,當高電平結束時,產生負跳變,進入中斷服務函數,計算時間。
以上就是程序的思路。
問題在于,如果用time=256*TH0+TL0;計算時間,得到的值符合實際,time的值為幾百;而如果用此語句的上面三句,或者下面五句(見上面中斷服務函數)來計算時間,得到的值不符合實際,time的值為幾萬。
請各位前輩指點一下,為何會這樣?
作者: 123654789    時間: 2012-9-4 12:17
用time=256*TH0+TL0;可正確讀取,而用time|=TH0;   time<<=8;   time|=TL0;卻不能。具體情況如下。


純粹是C語言的問題

因為time在使用之前不為0
那么你執(zhí)行time|=TH0;語句就不能覆蓋原來的數值
假如 time在使用之前是等于0x3
      TH0=0X50;
你執(zhí)行time|=TH0;
那么time就等于0x53
但是你實際上是想要time=0x50
那么你就把time原來的數值攜帶了進來






歡迎光臨 電子工程網 (http://m.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 午夜特片网 | 成人亚洲精品7777 | 日本经典在线三级视频 | 一本卡二卡三乱码最近更新版 | 亚洲一级片网站 | 在线观看福利影 | 青青草伊人网 | 日本在线网站 | 亚洲在成人网在线看 | 特级深夜a级毛片免费观看 特级全黄一级毛片视频 | 五月婷网站| 久草精品视频在线观看 | 日韩毛片免费线上观看 | 亚洲高清一区二区三区 | 欧美xxxxx性视频| www.操操| 日韩性网站 | 999精品视频| 日本亚洲一区二区 | 久久久精 | 中文字幕无线码一区二区三区 | 一级黄色毛片 | 痴女中文字幕在线视频 | 欧美黄色免费网站 | 久久婷婷色 | 欧美第二区 | 中文字幕亚洲色图 | 欧美激情一级欧美精品 | 亚洲精品日本高清中文字幕 | 另类视频在线观看 | 午夜一级做a爰片久久毛片 午夜一级毛片看看 | 免费看黄网站在线 | 热久久中文字幕 | 97狠狠干| 日韩 国产 欧美 | 日韩不卡在线视频 | 国产真实乱人视频在线看 | 日本免费的一级v一片 | 一级人做人a爰免费视频 | 扒开粉嫩进进出出 | 色综合久久久久久久久五月性色 |