標題: 求教以下超聲波測距單片機程序哪有問題,求教大神 [打印本頁]
作者: 1歲就蠻壞 時間: 2017-11-30 18:26
標題: 求教以下超聲波測距單片機程序哪有問題,求教大神
問題如下:如果只是打開電源燒錄上去(電源開關有三檔,第一檔是關閉,第二檔是用于調(diào)試,不轉(zhuǎn)動車輪,第三檔打開讓車輪轉(zhuǎn)動),調(diào)試得到的返回值和執(zhí)行是沒有問題的。
但是當開啟第三檔,讓車輪轉(zhuǎn)動后,就會同時執(zhí)行if和else,并且else得到的值永遠是0.
請各位高手指點下,謝謝各位大神
- void main()
- {
- int xx; //儲存超聲波測距的值
- uart_Init(); //初始化串口
- while(1)
- {
- xx=GetF_juli(); //獲取超聲波測距的值
- if(xx>30)
- {
- printf("%d\n",xx); //輸出獲取的值,用于調(diào)試
- Forward(); //執(zhí)行前進
- Delay_nms(100); //延遲
- }
- else
- {
- back(); //執(zhí)行后退
- printf("%d\n",xx); //輸出獲得的值,用于調(diào)試
- delay_nms(100); //延遲
- }
- }
- }
復制代碼
作者: 嘉輝先生 時間: 2017-12-1 13:41
看看你的執(zhí)行前進Forward(); 函數(shù)里面有沒有對所謂測到的距離XX進行操作,導致其值發(fā)生了變化
作者: changle11 時間: 2017-12-1 14:29
沒原理圖,代碼不完整,讓人無法判斷
作者: bobbyvip 時間: 2017-12-1 15:11
首先,同時執(zhí)行if和else是不可能的,直觀的你可以加個延時對比一下,else得到的值永遠是0,得查看一下GetF_juli()這個函數(shù),會不會是溢出了
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |