找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4427|回復: 7
收起左側

請教下關于兩對紅外對射傳感器檢測人的進出門的程序,不考慮并排的情況

[復制鏈接]
ID:161953 發(fā)表于 2017-8-17 22:54 | 顯示全部樓層 |閱讀模式
10黑幣
不考慮并排的情況下,人的進或出(有連續(xù)進,連續(xù)出,一出一進,一進一出等情況,我寫了一個程序,有連續(xù)進,一進一出,一出一進沒問題,但連續(xù)出的情況就有問題了,求幫忙解決,先謝謝各位了
主要相關程序如下:
while (1) //這是主函數(shù)里的
{

if(HW1==1&&HW2==0)
{
// led6=0;
delay_ms(100);
if(HW1==1&&HW2==1)
{
HW1=0; //
// H21=0;
// led6=1;
HW2=0; //
// led7=1;
SendStringByUart3(youren);//發(fā)送指令
}
}
else if(HW1==0&&HW2==1)
{
HW1=0;
// led6=1;
HW2=0;
// led7=1;
// H21=1;
}


void INT0_int (void) interrupt INT0_VECTOR //紅外對射開關1引起的中斷0
{
HW1=1;
}


void INT1_int (void) interrupt INT1_VECTOR //紅外對射開關2引起的中斷1
{
HW2=1;
}

回復

使用道具 舉報

ID:123289 發(fā)表于 2017-8-17 23:55 | 顯示全部樓層
單向可以,
雙向混合(同時有出有入)不行。
雙向分開(不同時)可以。
回復

使用道具 舉報

ID:161953 發(fā)表于 2017-8-18 03:17 | 顯示全部樓層
yzwzfyz 發(fā)表于 2017-8-17 23:55
單向可以,
雙向混合(同時有出有入)不行。
雙向分開(不同時)可以。

我就需要這種,請問有程序或指點下嗎?謝謝
回復

使用道具 舉報

ID:161953 發(fā)表于 2017-8-18 03:20 | 顯示全部樓層
yzwzfyz 發(fā)表于 2017-8-17 23:55
單向可以,
雙向混合(同時有出有入)不行。
雙向分開(不同時)可以。

我現(xiàn)在排除了第二種,需要的是第一三種,但程序在第三種那里出現(xiàn)bug,假設屋里有兩個人,輪流出門,第二個出門就會被檢測到是進門的
回復

使用道具 舉報

ID:123289 發(fā)表于 2017-8-18 22:01 | 顯示全部樓層
不在于程序,而在于你如何構思,你不要忙于寫程序,而是要先做下列事情中的一種:
.列出邏輯表
.畫出框圖
回復

使用道具 舉報

ID:679425 發(fā)表于 2020-3-7 10:23 | 顯示全部樓層
列出邏輯表
.畫出框圖
回復

使用道具 舉報

ID:494707 發(fā)表于 2020-3-7 12:14 | 顯示全部樓層
大概看懂你的程序,有個建議,程序里面不要主程序和中斷都修改變量。這樣計算你邏輯覺得調通了,但偶爾會出現(xiàn)不靈的情況,程序寫的時候注意臨界保護
回復

使用道具 舉報

ID:468535 發(fā)表于 2020-3-7 13:36 來自手機 | 顯示全部樓層
請參考編碼開關的程序,這兩個例子有點類似,抓住正反走的關系
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表