2012-12-01 45 views
1

我有兩張照片:pic16f88和pic16f688。 f88正在運行一個循環,只要按下按鈕就會發送消息。我也嘗試過在定時循環中每秒發送一次而不是按下按鈕的時間。我在做什麼錯?我的照片不會互相溝通

DEFINE osc 8 
osccon.4 = 1:osccon.5 = 1:osccon.6=1 
ANSEL = 0 

pinout var PORTB.1 
LED VAR PORTB.0 ' Assign name "LED" to PORTB.0 
btn var PORTA.0 

TRISA.0 = 1 

myloop: 
    if (not(btn)) then 
    High LED  ' Turn on LED connected to PORTB.0 
    Serout2 pinout,396,["PBPSUX"] 
    endif 
    Low LED   ' Turn off LED connected to PORTB.0 

    Goto myloop 

    End 

而我的第二張照片,f688,應該是在等待信息,如果收到任何東西,就打開一個指示燈。

DEFINE osc 8 
osccon.4 = 1:osccon.5 = 1:osccon.6=1 
ANSEL = 0 

pinin var PORTA.1 
LED VAR PORTA.0 ' Assign name "LED" to PORTB.0 
test var byte[5] 

low LED 
myloop: 

    Pause 500  ' Delay for .5 seconds to allow the other pic to start sending. 
    low LED 

    Serin2 pinin,396,[wait("P"),str test\5] 

    if (test) then 
     goto lighton 
    endif 

    pause 500 
    high LED 

    Goto myloop 

lighton: 
    high LED 
    goto lighton 
End 

如果第二張圖片沒有收到任何東西,它應該再次開始等待。

出於某種原因,第一張圖片可以找到,因爲它閃爍,我們可以使用示波器從串口看到噪聲。然而第二張照片從未打開燈。

任何人都可以看到我可能做錯了什麼?

回答

1

您的LED被定義爲錯誤,所以即使芯片確實接收到它,也不會實際發光。你確定它應該是PORTA.0,而不是像其他設備一樣的PORTB.0?

+0

很可能。無論如何,我們最終都對它進行了重新編碼。但那可能是我們沒有看到的。無論如何謝謝你! –