![]() |
發布時間: 2024-1-2 08:25
正文摘要:新手,做了一個用紅外光發射接收管做輸入,用用STC8G1K08A-8P做控制輸出一個低電平的程序,就是發射接收中間有東西,STC8G1K08A-8P的P33就輸出低電平。 電路和程序做好之后,實際測試發現STC8G1K08A-8P的P55輸入低 ... |
lkc8210 發表于 2024-1-2 15:53 確定了,就是延時這里有問題,程序邏輯沒有問題,出問題的是賦的初值,3000只有大約1mS左右,而不是我想的3秒,但我一直當是3秒,,學藝不精害人, 再次感謝大佬, |
我這樣寫,while(--HVDTcnt); 它應該延時才對,好像也沒延時, 所以就改成這樣了 while(--HVDTcnt) { HV_OUT = 0; //輸出低 } 這 樣,好像就是一下子就出去了,問題應該就是出在這兒,明天改成delay1ms()再試 |
Lthrwy 發表于 2024-1-2 13:46 應為那斷 while(--HVDTcnt) { HV_OUT = 0; //輸出低 } 沒加延時 所以幾十毫秒后就會跳出循環 在循環里加個delay1ms()延時就可以了 |
lkc8210 發表于 2024-1-2 10:55 感謝大佬回復,中斷是打開了的,在主程序里面打開的,現在上傳的是修改后的,可以有反應了,但是時間很短,但其實程序里寫了如果P55低電平,P32就輸出低電平3秒時間,就是沒找到它為什么不能延時3秒的原因 |
你的接收處理代碼在中斷里運行 但又不開啟中斷 當然沒反應 ![]() ![]() |