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


Browsing this Thread:   1 Anonymous Users




(1) 2 »


Re: 想請問I2C應用範例
#14
新會員
新會員


查看用戶資訊
哇~再次感謝pic5566的熱情解答
感激感激~~~

發表於: 2005/8/9 21:18
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問I2C應用範例
#13
高級會員
高級會員


查看用戶資訊

解開就好,有問題再問好了。

發表於: 2005/8/9 19:14
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問I2C應用範例
#12
高級會員
高級會員


查看用戶資訊
這是針對pic12f675所寫的
所以運用在pic18fxx你要讀一下data sheet

.................... ack = input(P_SDA);
005F: BSF 03.5
0060: BSF 05.5
0061: BCF 03.5
0062: CLRF 2D
0063: BTFSC 05.5
0064: INCF 2D,F
回應一下INPUT()所產生的CODE
很嚇人喔,但是保證不會出錯因為你每input()他都會幫你切BANK設輸入但是CODE真的比較多
.................... output_low(P_SCL);
0065: BSF 03.5
0066: BCF 05.4
0067: BCF 03.5
0068: BCF 05.4
output()也一樣
在C18你可以以一行就解決
這是你問的delay_us() and delay_ms() CCS C compiler所產生的CODES

.................... delay_ms(250);
01B3: MOVLW FA
01B4: MOVWF 25
01B5: CALL 00A
000A: MOVLW 25
000B: MOVWF 04
000C: MOVF 00,W
000D: BTFSC 03.2
000E: GOTO 01E
000F: MOVLW 01
0010: MOVWF 21
0011: CLRF 20
0012: DECFSZ 20,F
0013: GOTO 012
0014: DECFSZ 21,F
0015: GOTO 011
0016: MOVLW 4A
0017: MOVWF 20
0018: DECFSZ 20,F
0019: GOTO 018
001A: NOP
001B: NOP
001C: DECFSZ 00,F
001D: GOTO 00F
001E: RETLW 00
總之希望對你有所幫助

發表於: 2005/8/9 19:12
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問I2C應用範例
#11
新會員
新會員


查看用戶資訊
一切謎底都解開了
感謝 pic5566 的熱情與解答
小弟我感激不盡

發表於: 2005/8/9 19:10
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問I2C應用範例
#10
高級會員
高級會員


查看用戶資訊
Re: 想請問I2C應用範例
版主~各位大大~
小弟我想把上述的程式改成C18可以compiler的程式
不過在"解讀"上述ccs的程式時遇到一些問題= ="
問題如下:
問題一
函式input()的作用是做什麼用的?

就是c18 的 if (Port==1 or 0)
CCS 比較C化他都幫使用者寫好函數但是他也是笨笨的不管怎樣他都會翻出比較多的CODE

難道作用在於讀取腳位電位?如果是,是不是對應到C18指的PORTXbits.RXX?
ans: 對
問題二
函式debug_pin()的作用是做什麼用的?
ans:
由於我沒有ICE,PIC12Fxx實在太小顆了,我很窮沒錢買ICE,我只有一台三十幾萬的是波器而已,所以我會利用一隻IO腳輸出信號用示波器量測看輸出幾個脈波就可以知道程式跑到那裡了,這是一種DEBUG技巧,有時你無法停下MCU,所以就必須藉助這一個方法來做。
乾脆我再送你一個我的DEBUG();
這一個我是用C18寫的希望你好好運用一下窮人DEBUG法說不定你會用到

使用方法:
例如你要輸出一個脈波

debug_p4(1);
----+ +--------
| |
+--+
就會在示波器顯示這樣的波形




void debug_p4(uchar i)
{
switch(i)
{
case 10:
L_TEST2 = 0;
DLY10US();
L_TEST2 = 1;
case 9:
L_TEST2 = 0;
DLY10US();
L_TEST2 = 1;
case 8:
L_TEST2 = 0;
DLY10US();
L_TEST2 = 1;
case 7:
L_TEST2 = 0;
DLY10US();
L_TEST2 = 1;
case 6:
L_TEST2 = 0;
DLY10US();
L_TEST2 = 1;
case 5:
L_TEST2 = 0;
DLY10US();
L_TEST2 = 1;
case 4:
L_TEST2 = 0;
DLY10US();
L_TEST2 = 1;
case 3:
L_TEST2 = 0;
DLY10US();
L_TEST2 = 1;
case 2:
L_TEST2 = 0;
DLY10US();
L_TEST2 = 1;
case 1:
L_TEST2 = 0;
DLY10US();
L_TEST2 = 1;
default:
break;
}

}

我再示範一下
ex:
switch(step)
{
case 1:
{ debug_p4(1); break;}
case 2:
{ debug_p4(2);break}
.
.

}


問題三
delay_us(2)--->延遲2us?? ans--->yes這也是CCS C compiler所提供的函數
delay_ms(100)--->延遲100ms?? ans -->yes這也是CCS C compiler所提供的函數

問題四
BUFFER1 = IIC_RECEIVE_BYTE();
BUFFER2 = IIC_RECEIVE_BYTE();
PORTDATA = IIC_RECEIVE_BYTE();
input(P_INTERRUPT);
問題四 C code 中提到BURRER1、BURRER2、 PORTDATA、P_INTERRUPT分別指的是什麼??
透過IIC_RECEIVE_BYTE()向裝置讀資料進來然後放在記憶體備用因為我需要讀兩筆資料所以開兩個bytes的記憶體
input(P_INTERRUPT); 將IO port設定為輸入端,因為我這一個程式是用來控制MICROCHIP公司的MCP23016 IO PORTS EXPANDER 所以他有一隻腳是在通知io port有輸入
我是原作者啦~~~~不好意思喔害你讀的這麼辛苦


版主還有其他大大可以幫忙解答嗎??
小弟我感激不盡!!!

發表於: 2005/8/9 18:21
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問I2C應用範例
#9
新會員
新會員


查看用戶資訊
版主~各位大大~
小弟我想把上述的程式改成C18可以compiler的程式
不過在"解讀"上述ccs的程式時遇到一些問題= ="
問題如下:
問題一
函式input()的作用是做什麼用的?
難道作用在於讀取腳位電位?如果是,是不是對應到C18指的PORTXbits.RXX?

問題二
函式debug_pin()的作用是做什麼用的?

問題三
delay_us(2)--->延遲2us??
delay_ms(100)--->延遲100ms??

問題四
BUFFER1 = IIC_RECEIVE_BYTE();
BUFFER2 = IIC_RECEIVE_BYTE();
PORTDATA = IIC_RECEIVE_BYTE();
input(P_INTERRUPT);
問題四 C code 中提到BURRER1、BURRER2、 PORTDATA、P_INTERRUPT分別指的是什麼??

版主還有其他大大可以幫忙解答嗎??
小弟我感激不盡!!!

發表於: 2005/8/9 17:48
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問I2C應用範例
#8
高級會員
高級會員


查看用戶資訊
SORRY
我又忘了交代,這一些函數我都有測試過是量產程式基本上沒問題我是寫來控制microchip MCP23016的
你應該可以很容易改成控制EEPROM或者其他IIC的裝置
還有一點這一個程式為了抗雜訊干擾還加上當通訊沒有獲得ACK信號他會送出STOP然後重新RETRY 10次
所以看起來有一點複雜
慢慢看吧
不懂再問
OK
我是用pic12f508寫的
所以你用pic18f452他應該有硬體的IIC介面C18也有支援IIC函數,你如果不想用內部硬體介面當然也可以使用這一些函數。
不過你要注意一下IO PORT方向設定
不然動不了

發表於: 2005/8/8 16:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問I2C應用範例
#7
高級會員
高級會員


查看用戶資訊
忘了跟你講
這是用CCS C compiler寫的
如果用其他的c compiler 可以改成
output_high(P_xx)------> P_xx = 1;
output_low(P_xx)-------> P_xx = 0;
output_high();
output_low();
這是CCS 內定函數

發表於: 2005/8/8 15:56
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問I2C應用範例
#6
資深會員
資深會員


查看用戶資訊
引言:
<對了!!請問這是c16還是c18的程式??>
當然是C18 因為microchip只有C18 AND C30
沒有C16的語言


發表於: 2005/8/5 11:23
==== ^^ ^^ ====
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問I2C應用範例
#5
新會員
新會員


查看用戶資訊
恩 剛試了一下這個程式
他說
output_low(P_SDA);
output_high(P_SCL);
這未定義
請問這個還有.h黨的宣告需要一起執行ㄇ

發表於: 2005/8/4 18:13
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

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

教育訓練中心

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