初級會員
Joined
: 2008/4/26 16:42 最後登入時間
: 2009/5/28 21:29
Group:
註冊會員
Level : 4 HP : 0 / 98 MP : 12 / 4736 EXP : 94
|
Hello 高手們日安,
我想請教你們兩個關於code的問題. 我用的是兩個PIC 16F877 各自在兩個2840 development board上面,然後彼此之間是沒有任何RS232 連結. 用的是wireless連結.
我現在想要做的是從PIC A 傳送一個數字給PIC B, 然後 PIC B收到之後,在將他收到的數字+1 然後再回傳回去給PIC A 然後PIC A收到之後再 +1 再傳給PIC B .
我這兩個code compile 不過. 然後他指出的錯誤, 我不是很了解,也不知道該從哪下手做改進. 麻煩高手 或是 明眼人指點一下.
PIC A 傳送:
#include<16F877.h> #use delay(clock=10000000) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
int a=1; int c=3; int z=101; int b,y,w;
void main() { do { puts("con 11:1C:84:00:60:44"); //上面是硬體聯結指令,可以呼略這個 delay_ms(3); w=gets(); //上面這個是想說當PIC B 接收到連結訊號時, 傳送一組數字回來,證明收到訊號 }while(w!=z); puts("a"); delay_ms(9) y=getc(); delay_ms(9) do { puts("c"); printf("c is %d",y+1); }while(c!=y+1); }
PIC B 接收:
#include<16F877.h> #use delay(clock=10000000) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#define str "con 11:1C:84:00:60:44"
int b=2; int d=4; int e,x;
char address[22];
void main() { address=gets(); delay_ms(1); if(strcmp(address, str)) { puts("101"); //收到連結訊號回傳的那個數值. } x=getc(); delay_ms(3) do { puts("b"); printf("b is %d",x+1); }while(b!=x+1); }
這程式可能有點簡單,但是感覺自己好像有某個點沒通,所以一直不知道哪裡出錯,所以請各位高手指點一番.
在此先感激各位抽空看文章.
十分感激
菜鳥
發表於: 2008/7/23 16:49
|