• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::

論壇索引


Board index » All Posts (Irobotics)




Re: 想請教高手們兩個C語言code的問題.
#21
初級會員
初級會員


Hello 高手們日安,

謝謝nicecookie的提醒. 很抱歉,很租心的忘記post錯誤訊息.

PIC A傳送端的錯誤訊息是:

Executing: "C:\Program files\Picc\CCSC.exe" +FM "NEW test 3TX.c" +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 51 "C:\Code for bluetooth\NEW test 3TX.c" Line 16(8,9): A numeric expression must appear here
*** Error 76 "C:\Code for bluetooth\NEW test 3TX.c" Line 21(1,2): Expect ;
*** Error 76 "C:\Code for bluetooth\NEW test 3TX.c" Line 24(1,3): Expect ;
3 Errors, 0 Warnings.

PIC B接受端的錯誤訊息是:

Executing: "C:\Program files\Picc\CCSC.exe" +FM "NEW test 3RC.c" +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 49 "C:\Code for bluetooth\NEW test 3RC.c" Line 15(1,8): Expecting LVALUE such as a variable name or * expression
*** Error 12 "C:\Code for bluetooth\NEW test 3RC.c" Line 18(4,10): Undefined identifier strcmp
*** Error 76 "C:\Code for bluetooth\NEW test 3RC.c" Line 25(1,3): Expect ;
3 Errors, 0 Warnings.

不了解錯誤是什麼意思.

請高手幫忙一下,指點我該如何修正這個程式.

在此先說謝謝了.



十分感激.



菜鳥

發表於: 2008/7/24 15:58
頂部


想請教高手們兩個C語言code的問題.
#22
初級會員
初級會員


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
頂部


Re: 想請教我遇到的二個怪問題.
#23
初級會員
初級會員


Hello Mark, 版主,

謝謝你們喔. 我大致上了解你們的意思了.

感激你們不厭其煩的解釋

十分感激.



菜鳥

發表於: 2008/7/23 16:32
頂部


Re: 想請教我遇到的二個怪問題.
#24
初級會員
初級會員


參照:

MARKWANG 寫道:
我用組合語言寫沒遇到這問題耶!!!
因為我也有用過USB轉RS232的,也是OK!!!
問題二我的設定也是沒打勾的!!!
至於問題一會不會是你流量限制住了!
因為我看你程式也沒設定byte數量阿!!
我是都設為硬體控制啦!!!
還有RS232的4(DTR).6(DSR).8(CTS)PIN有短路在一起!!!
再試試看羅!!



Hello Mark,

這個問題我已經解決了. 我想Mark 說的沒錯可能是因為流量或是buffer的關係. 我在printf之後加上 dealy_ms(3) 之後, 這個問題就解決了. 謝謝Mark 的提醒.

我想順便請教一下, 你說的影體控制是因為你用組合語言寫的關係是嗎? 用C好像沒法直接控制硬體是嗎??? 還有你所謂的短路在一起,這有怎樣特別的影響或是意義嗎? 因為剛學所以很多不懂所以對你這句話沒法體會到它的意思.不是很了解那句話的意思.可以在深入講解一下嗎???



謝謝你抽空回文章. 十分感激.



菜鳥

發表於: 2008/7/23 13:48
頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#25
初級會員
初級會員


Hello Mark, 版主,

十分感謝你們抽空回文章.

Mark 我會在研讀你的RX範例的, 謝謝你.

版主謝謝你的建議,我會看一下C18 C compiler 這個部分的範例. 謝謝你



十分感激你們的指導跟建議.



菜鳥

發表於: 2008/7/23 13:40
頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#26
初級會員
初級會員


參照:

MARKWANG 寫道:
我能幫忙就只有組合語言的部份!
至於C就請別人幫忙了!
;;;;;;自動一直傳送16BYTE
USART_TX0:
     
MOVLW     #H'41'                   ;A=41
     
MOVWF     TXREG
USART_TX0_0
:
     
BTFSS     PIR1,TXIF
     
GOTO      USART_TX0_0
     CLRF      TXREG
     MOVLW     
#H'41'                   ;A=41
     
MOVWF     TXREG
USART_TX0_1
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_1
     CLRF      TXREG
     MOVF      BYTE0
,W               
     MOVWF     TXREG
USART_TX0_2
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_2
     CLRF      TXREG
     MOVF      BYTE1
,W               
     MOVWF     TXREG
USART_TX0_3
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_3
     CLRF      TXREG
     MOVF      BYTE2
,W                    
     MOVWF     TXREG
USART_TX0_4
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_4
     CLRF      TXREG
     MOVF      BYTE3
,W              
     MOVWF     TXREG
USART_TX0_5
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_5
     CLRF      TXREG
     MOVF      BYTE4
,W               
     MOVWF     TXREG
USART_TX0_6
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_6
     CLRF      TXREG
     MOVF      BYTE5
,W               
     MOVWF     TXREG
USART_TX0_7
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_7
     CLRF      TXREG
     MOVF      BYTE6
,W                    
     MOVWF     TXREG
USART_TX0_8
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_8
     CLRF      TXREG
     MOVF      BYTE7
,W              
     MOVWF     TXREG
USART_TX0_9
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_9
     CLRF      TXREG
     MOVF      BYTE8
,W               
     MOVWF     TXREG
USART_TX0_10
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_10
     CLRF      TXREG
     MOVF      BYTE9
,W               
     MOVWF     TXREG
USART_TX0_11
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_11
     CLRF      TXREG
     MOVF      BYTE10
,W                    
     MOVWF     TXREG
USART_TX0_12
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_12
     CLRF      TXREG
     MOVF      BYTE11
,W              
     MOVWF     TXREG
USART_TX0_13
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_13
     CLRF      TXREG
     MOVF      BYTE12
,W               
     MOVWF     TXREG
USART_TX0_14
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_14
     CLRF      TXREG
     MOVF      BYTE13
,W               
     MOVWF     TXREG
USART_TX0_15
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_15
     CLRF      TXREG
     MOVF      BYTE14
,W                    
     MOVWF     TXREG
USART_TX0_16
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_16
     CLRF      TXREG
     MOVF      BYTE15
,W              
     MOVWF     TXREG
USART_TX0_17
:
     
BTFSS     PIR1,TXIF                ;判斷TRANSMIT BUFFER是否滿了
     
GOTO      USART_TX0_17
     CLRF      TXREG     
USART_TX0_EXIT
:
     RETURN



Hello Mark,

謝謝你上次的回覆,我已經看了你的程式. 因為對程式語言也是高起步在學,所以想請教原作者Mark 或版主及板上的高手幾個問題.

上面的程式裡面,有BYTE1~BYTE15,這幾各部分是該填些什麼呢? 我的意思是說,如果我要傳輸一個字串像是"Hello Word, I am coming" 那這幾個Byte就是填這幾各十六位元碼嗎? 我知道如果我想要傳輸一個字母"U"我該像下面這麼寫.

MOVLW 0x55
MOVWF TXREG

那我要傳輸一個字串,是不是也是將那些字串的每個字都改成十六進位碼放進去所謂的Byte1~Byte15呢? 那我要是想要傳輸一些數字像是 123 那我也是一樣的道理是嗎? 那接收的部分呢? 接收的部分我該怎麼做呢? 程序顛倒還是有特別的做法?

在此先謝謝各位抽空看文章,也謝謝大家不吝嗇的指點.
在此先謝謝大家了.



菜鳥

發表於: 2008/7/21 14:57
頂部


Re: 我想請教一下版主或是各位高手關於C語言和組合語言問題
#27
初級會員
初級會員


參照:

master 寫道:
http://www.yeswedo.com.tw/product/pro ... escription.asp?rowid=4645

若水堂好像搜尋不到這本。不過我是在若水堂買的。
你可以用出版社和書名請他們幫你訂書或是查一下有沒有現貨在其他門市。



Hello Master,

我去問過好多家書局了, 包括若水堂,問津堂,秋水堂. 她們都沒有,不知道Master知不知道有沒有PDF檔可以抓或是哪裡可以買到二手書.看了一下目錄,我可以了解位什麼Master說這個可以學到很多東西.所以很想買到.有特別建議的嗎?



在這裡先謝謝master了



菜鳥

發表於: 2008/7/21 14:27
頂部


Re: 想請教我遇到的二個怪問題.
#28
初級會員
初級會員


Hello 版主,

謝謝你的回覆. 第二個問題解決了.

我發現把那個勾選取消之後,在Hyper terminal 裡面,你打字在上面好像也不會顯示出來了. 看來魚與熊掌不能兼得.

希望有高手能指導一下第一個問題.



謝謝大家抽空看文章回覆.



十分感激



菜鳥

發表於: 2008/7/21 14:20
頂部


想請教我遇到的二個怪問題.
#29
初級會員
初級會員


Hello, 各位高手

菜鳥又來問問題了,這次遇到兩各怪問題. 但是首先我要說,因為我的筆記型電腦沒有9 pins的的孔可以接rs232 所以我去買了一條use 轉 rs232的線來使用,不知道是否有什麼影響下面的問題.

第一個:

我用了一個相當簡單的測試一下我的code想試一下我的傳輸線,Code如下
#include<16F877.h>
#use delay(clock=10000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

void main()


{
printf("con 00:0C:84:00:60:44");
}

但是在Hyper terminal 的螢幕上,卻無法完整的顯示, 它永遠都只顯示到 con 00:0C:84:00:60 而後面的 44 就消失不見了,有高手可以指點一下怎麼回事嗎???

第二個:

就是當我把檔案傳入我的PIC 16f877 之後,我在Hyper terminal 上按g,要執行他,我明明指按一個g,可是他都會顯示兩個,然後他在傳輸的過程,所有的數字還有文字都是會重複在跑出來. 我輸入一個驚嘆號進去, 可是Hyper terminal 螢幕卻顯示出兩個驚嘆號,所以可以請教是什麼原因嗎?



在此先謝謝大家的幫忙



菜鳥

發表於: 2008/7/21 3:49
頂部


Re: 想請教各位前輩幾個語言問題與MPLAB v8.10
#30
初級會員
初級會員


Hello 版主,

謝謝你的回覆,還附上圖讓我了解. 這個部分已經找到了,謝謝你. 順便請教一個題外話,你說的 PIC C 是指 C18 嗎??? 還是指哪個呢???

謝謝你這次的回覆.



菜鳥

發表於: 2008/7/16 0:47
頂部



« 1 2 (3) 4 »



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------