:::

論壇索引


Board index » All Posts (handy)




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


to PSIR

CCS sfr定義的方式可以用內建的#BYTE、#BIT
如:

#BYTE PORTA=0X05

#BIT RA5 =0x05.5
#BIT RA4 =0x05.4
#BIT RA3 =0x05.3
#BIT RA2 =0x05.2
#BIT RA1 =0x05.1
#BIT RA0 =0x05.0

good luck~~

發表於: 2008/7/25 10:01
頂部


Re: [求教] 12F508 GP2 GP3 無法變更其值!!
#12
新會員
新會員


MOVLW 0x3C
TRIS GPIO
MOVWF GPIO <--此行執行後,GPIO=0X00
並沒寫入0x3C值
^^^^^^^^^^^^^^^^^^^^^^^^
0x3C = b'111100'
因為GP2,GP3,GP4,GP5都是輸入。
所以GPIO沒辦法寫入0x3C

BTFSC GPIO,GP3 <--故此行偵測還是0
^^^^^^^^^^^^^^^^^^^^^^
若沒有更改過定義的話,應該要下btfsc GPIO,3
你用BTFSC GPIO,GP3
這樣compiler會過嗎?

把你的程式稍改一下,是沒有問題的,給你參考嚕

ORG 0x00
NOP
MOVWF OSCCAL
MOVLW 0x3C
TRIS GPIO
movlw b'000011'
MOVWF GPIO
Loop
bcf GPIO,1
BTFSC GPIO,3 ;<--- 問題處
bsf GPIO,1
goto Loop

發表於: 2008/4/29 13:03
頂部


Re: AD轉換問題
#13
新會員
新會員


透過PWM輸出,經RC便可得到一類比準位。
你可以參考AN538這一份Application Notes.
http://ww1.microchip.com/downloads/en/AppNotes/00538c.pdf

發表於: 2008/3/19 9:32
頂部


Re: 程式穩定度debug的問題
#14
新會員
新會員


我會先把各功能(你的按鍵)切割開來

讓範圍縮小。

獨立去TRY,確定OK以後

再一個一個整合起來。

如果一開始的架構就構思得不錯的話,會比較好DEBUG。

希望有幫上你的忙。

GOOD LUCK~~

發表於: 2008/2/12 15:13
頂部


Re: HI-TECH PICC 陣列操作疑問
#15
新會員
新會員


問題已解決,是COMPILER的問題。

後來把PICC 9.6改為PICC 8.05後,編出來的碼就正確了。

沒親眼見到,還真是難以相信呀。

特地上來分享一下這個經驗。

也特別感謝taiwanuser大大的幫忙嚕。

發表於: 2007/10/3 12:03
頂部


Re: HI-TECH PICC 陣列操作疑問
#16
新會員
新會員


Array[]宣告為unsigned char

完整code如下:

thanks.
-----------------------------------------------------------------------
#include <pic.h>

__CONFIG (INTRCRB4 & PROTECT & WDTDIS & MCLRDIS);

unsigned char i;
unsigned char j;
unsigned char Array[6];

//----------------------------------------
void InitMCU(void)
{
OSCCAL=0b0000000;
TRISB=0b011011;
PORTB=0;
TRISC=0b000000;
PORTC=0;
OPTION=0b10000111;
return;
}
//----------------------------------------
void main(void)
{
InitMCU();

for(i=0;i<=5;i++){
Array[i]=i;
}

while(1){
continue;
}
}

發表於: 2007/10/1 11:31
頂部


HI-TECH PICC 陣列操作疑問
#17
新會員
新會員


Dear All :
目前在使用PICC做陣列操作時,發現一個有疑問的現象如下:
compiler:HI-TECH PICC 9.60 Lite
Device:PIC16F505

先宣告一個Array[6]。

當後面我如此做時
for(i=0;i<=5;i++){
Array[i]=i;
}
結果Array[0]~Array[5]=0。(錯誤)
於是我把Array[i]=i;改為一個定值Array[i]=0xab;
結果Array[0]~Array[5]=0xab。(正確)

分析Disassembly Listing的結果發現。
只要我把Array[i]=i 等號後面為變數時(不管是i,j,k)則編出來的碼會多了一行CLRF FSR的動作,導致i要丟入INDF時,FSR所指位置已經被清除了。

---------------------------------------------------------------------
有疑問的部份:
C code:
for(i=0;i<=5;i++){
Array[i]=i;
}

Disassembly:
79: for(i=0;i<=5;i++){
1EF 064 CLRF 0x4
1F0 071 CLRF 0x11
1F1 C06 MOVLW 0x6
1F2 091 SUBWF 0x11, W
1F3 603 BTFSC 0x3, 0
1F4 BFF GOTO 0x1ff
1FD 2B1 INCF 0x11, F
1FE BF1 GOTO 0x1f1
80: Array[i]=i;
1F5 211 MOVF 0x11, W
1F6 038 MOVWF 0x18
1F7 C12 MOVLW 0x12
1F8 1D1 ADDWF 0x11, W
1F9 024 MOVWF 0x4
1FA 064 CLRF 0x4 <--- 就是這一行。
1FB 218 MOVF 0x18, W <--- FSR已被清除,故此兩行所寫入位置為錯的。
1FC 020 MOVWF 0
81: }

---------------------------------------------------------------------
改為常數則無此問題:
for(i=0;i<=5;i++){
Array[i]=0xab;
}

79: for(i=0;i<=5;i++){
1F1 064 CLRF 0x4
1F2 071 CLRF 0x11
1F3 C06 MOVLW 0x6
1F4 091 SUBWF 0x11, W
1F5 603 BTFSC 0x3, 0
1F6 BFF GOTO 0x1ff
1FC 064 CLRF 0x4
1FD 2B1 INCF 0x11, F
1FE BF3 GOTO 0x1f3
80: Array[i]=0xab;
1F7 C12 MOVLW 0x12
1F8 1D1 ADDWF 0x11, W
1F9 024 MOVWF 0x4 <--- 設定好FSR後
1FA CAB MOVLW 0xab <---緊接著0xab寫入INDF
1FB 020 MOVWF 0
81: }
---------------------------------------------------------------------
我在想Array[i]=i; 似乎只是基本的C語法。
這算是compiler的問題嗎?
或著有其他語法可以達成類似的動作?
想請教各位是否有遇過這種現象呢?
感謝各位撥時間看完落落長這篇。
Thanks.

發表於: 2007/10/1 10:48
頂部



« 1 (2)



:::

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... ]

教育訓練中心

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