Re: [問題] 求救!!寫不出I2C我就要走路了

看板Electronics作者 (brotherD)時間7年前 (2017/05/31 10:33), 編輯推噓8(8016)
留言24則, 9人參與, 最新討論串2/3 (看更多)
謝謝KOBE大大以及各位的支持,小弟感激不盡。 看了您的程式碼後,有一些問題想要請教一下您。 void swi2c_START(int delaytime)這段實作中 sda_set()的實作怎麼寫? 我看得懂虛擬碼,要把sda設為high,但怎麼設呢?是直接寫LATCbits.LAT4 = 1嗎? 同理,clear要怎麼清除呢?也是直接LAT設0嗎? 因為我看spec,要設定為MSSP模式必須把TRIS設為1(input),直接動LAT不是沒有用嗎? 另外,當我把SSP1CON2中的SEN = 1,效果是否就等同於這段swi2c_START實作? 在void swi2c_WRITE(int msg)裡,我看得懂這段程式碼,但沒有把要傳送的資料給 SSP1BUF,PIC有辦法送嗎? 請您指點迷津,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.26.157 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1496198020.A.08C.html

05/31 16:40, , 1F
你的理解沒錯 通常官方libs有個pin define
05/31 16:40, 1F

05/31 16:42, , 2F
通常會幫你弄好很多的macro 可以設定某個腳為什麼樣的態
05/31 16:42, 2F

05/31 16:42, , 3F
使用i2c前正確的設定好各個腳的態後, 再賦值給相對應的pin
05/31 16:42, 3F

05/31 16:43, , 4F
為0或1即可
05/31 16:43, 4F

05/31 16:44, , 5F
然後有些你說的register名稱 我沒用過pic不清楚
05/31 16:44, 5F

05/31 16:44, , 6F
還有傳給SSP1BUF我猜那是硬體i2c用的data buffer, 原理大
05/31 16:44, 6F

05/31 16:45, , 7F
概就是要將傳送的資料先寫入至此buffer, 硬體會自動將裡面
05/31 16:45, 7F

05/31 16:46, , 8F
data再行傳輸出去, 是比較穩當保險的做法
05/31 16:46, 8F

05/31 16:46, , 9F
至於用software simulate的i2c就是直接控制腳來傳送
05/31 16:46, 9F

05/31 16:47, , 10F
所以運作原理跟官方用的硬體i2c當然不同
05/31 16:47, 10F

05/31 16:48, , 11F
我只能幫到此, 因為我沒用過這系列mcu就是了XD
05/31 16:48, 11F

05/31 17:22, , 12F
TWkobe 讓我尊稱您為I2C王
05/31 17:22, 12F

06/01 11:43, , 13F
god of I2C!!!!
06/01 11:43, 13F

06/02 19:37, , 14F
本版I2C王誕生了...
06/02 19:37, 14F

06/02 19:41, , 15F
推大善人
06/02 19:41, 15F

06/02 22:33, , 16F
http://tinyurl.com/yad24ljq 這裡有教你如何用I2C跟SPI
06/02 22:33, 16F

06/02 22:34, , 17F
讀且EEPROM的application note
06/02 22:34, 17F

06/02 22:34, , 18F
http://tinyurl.com/y8sk753o 這裡有I2C的source code
06/02 22:34, 18F

06/02 22:35, , 19F
奇怪,人家現成寫好好你送你不要、要從protocol開始硬幹。
06/02 22:35, 19F

06/02 22:36, , 20F
我們是社會人士,不是培養實力的學生,有問題先上網站找文
06/02 22:36, 20F

06/02 22:36, , 21F
件是基本常識吧?先趕快copy回來加進去改再說。
06/02 22:36, 21F

06/03 16:49, , 22F
直接call vendor 0rz
06/03 16:49, 22F

06/04 19:08, , 23F
King of I2C 請受小弟一拜
06/04 19:08, 23F

06/04 21:47, , 24F
加油好嗎 真的
06/04 21:47, 24F
文章代碼(AID): #1PBYk42C (Electronics)
文章代碼(AID): #1PBYk42C (Electronics)