Re: CC2500
|
||||
---|---|---|---|---|
中級會員
|
不曉得你要的電路是啥
http://focus.ti.com/lit/ds/symlink/cc2500.pdf 這邊有相關的SPEC,裡面已經有CC2500的應用接法。 PIC的東西你只要去查他的DATASHEET,應該也會有一些架構。 只要將他的SPI介面的東西接好,就可以傳輸資料了 其實有些東西,你去跟小姐要,小姐可能不太理解你要的是啥。 這個時候請善用GOOGLE。
發表於: 2007/12/12 10:03
|
|||
|
Re: 請問有人寫過高/低優先權混合使用的例子嗎???
|
||||
---|---|---|---|---|
中級會員
|
他的意思應該是,你有去將你的中斷源給他對應的優先中斷順序嗎?
PIC它可以將中斷指定為高優先還是低優先的中斷, 就是利用IPR來做選擇的切換,你可以參考旁邊的一些資料有寫 我記得沒錯的話 ... 以上有錯請高手在指教
發表於: 2007/12/4 11:02
|
|||
|
Re: 請問rs232每傳完一筆data後的delay
|
||||
---|---|---|---|---|
中級會員
|
依個人拙見,你所貼的程式他主迴圈並沒有再跑你所說的Delay(1000),他這個Delay(1000)應該是為了MCU在初始化時,給的穩定時間,如果有錯,煩請高手大大指教。
發表於: 2007/10/2 8:42
|
|||
|
Re: USB 裝置無法辨識...
|
||||
---|---|---|---|---|
中級會員
|
這個我試著玩過
買板子的時候MICROCHIP應該有再附一片光碟 那一片光碟裡面有一個說明的PDF檔。 就有交你如何建立這一個系統的架構了 包含了幾隻程式還有一個VB的執行檔 還蠻好玩的..
發表於: 2007/5/28 23:23
|
|||
|
Re: dsPIC3F4011程式裡的值要如何從16進位轉10進位?
|
||||
---|---|---|---|---|
中級會員
|
因為RS232傳的資料本身就是16進制的值
而超級終端機能夠顯示的是字串 所以你再送出去的時後應該要先將其轉換成ASCII CODE //全域變數 char send[3]; void chartoasc (char cin) { char temp; temp=cin%10; send[0]=cin%10; send[1]=temp%10; send[2]=temp/10; for(temp=0;temp<3;temp++) { send[temp]=send[temp]+0x30; // change to ASCII } } 然後再把SEND的資料送出去就好了
發表於: 2007/5/24 21:30
|
|||
|
Re: APP001實驗版使用I2C傳輸的問題
|
||||
---|---|---|---|---|
中級會員
|
Hi ALL
知道原因了 因為跟EEPROM的位址跟MANUAL講的不一樣 不是A0而是AE 還有因為是新版的APP001 REV2 所以...必須送兩次位址.... 以上便是測試的結果...
發表於: 2007/3/29 10:22
|
|||
|
Re: 關於 SPI 使用 C18
|
||||
---|---|---|---|---|
中級會員
|
看你是要用軟體還適用硬體的方式實現。
再MCC18的LIBRARY的說明裡,都有一些小DEMO CODE. 你可以參考看看。
發表於: 2007/3/28 18:10
|
|||
|
Re: APP001實驗版使用I2C傳輸的問題
|
||||
---|---|---|---|---|
中級會員
|
我利用以下的程式片段,去看示波器是不是有訊號,可以看出SDA與SCL的腳位都有再變動,但是在讀取的時候,跑出的結果是不對的。我想會有資料在跑的原因是,我沒有讓程式等待ACK,但是若要等待ACK,程式又HOLD住。不知道有沒有高手有任何IDEA。
使用的MCU是18F452,參照的檔案是W401C ANS 6-2 這個測試結果,不管是有沒有將J10 的1-2 與3-4相接,結果是一樣的。所以我在想是不是EEPROM沒有作動啊 我已經照著SPEC送了兩次位址啦,實在是想不太出來到底是哪邊出了錯誤。 switch(Key_Press) { case 1: LCD_Set_Cursor(0,0); putrsLCD(" "); LCD_Set_Cursor(1,0); putrsLCD(" "); LCD_Set_Cursor(0,0); putrsLCD(LCD_MSG3); LCD_Set_Cursor(1,0); putrsLCD("1"); IdleI2C(); // ensure module is idle StartI2C(); // Start condition //I2C_Done();// Wait Start condition completed and clear SSPIF flag WriteI2C(0xA0); // Write Control+Write to EEPROM & Check BF flag //I2C_Done(); // Wait Start condition completed and clear SSPIF flag WriteI2C(0x00); // Write Control+Write to EEPROM & Check BF flag //I2C_Done(); // Wait Start condition completed and clear SSPIF flag WriteI2C(0x00); // Write Control+Write to EEPROM & Check BF flag //I2C_Done(); // Wait Start condition completed and clear SSPIF flag WriteI2C('A'); // Write Control+Write to EEPROM & Check BF flag //I2C_Done(); // Wait Start condition completed and clear SSPIF flag StopI2C(); // Stop condition I2C_Done(); // Wait the Stop condition completed break; case 2: LCD_Set_Cursor(0,0); // Put LCD Cursor on Line 1 putrsLCD(" "); LCD_Set_Cursor(1,0); // Put LCD Cursor on Line 1 putrsLCD(" "); LCD_Set_Cursor(0,0); // Put LCD Cursor on Line 1 putrsLCD(LCD_MSG3); LCD_Set_Cursor(1,0); // Put LCD Cursor on Line 1 putrsLCD("2"); IdleI2C(); // ensure module is idle StartI2C(); // Start condition //I2C_Done(); // Wait Start condition completed WriteI2C(0xA0); // Write Control to EEPROM //while(SSPCON2bits.ACKSTAT); // test for ACK condition, if received //I2C_Done(); // Clear SSPIF flag WriteI2C(0x00); // Write Address to EEPROM //while(SSPCON2bits.ACKSTAT); // test for ACK condition, if received //I2C_Done(); // Clear SSPIF flag //RestartI2C(); // initiate Restart condition WriteI2C(0x00); // Write Address to EEPROM //while(SSPCON2bits.ACKSTAT); // test for ACK condition, if received //I2C_Done(); // Clear SSPIF flag RestartI2C(); //I2C_Done(); WriteI2C(0xA1); // Write Control to EEPROM //while(SSPCON2bits.ACKSTAT); // test for ACK condition, if received //I2C_Done(); // Clear SSPIF flag f=ReadI2C(); // Enable I2C Receiver & wait BF=1 until received data //I2C_Done(); // Clear SSPIF flag NotAckI2C(); // Genarate Non_Acknowledge to EEPROM // while ( SSPCON2bits.ACKEN ); // wait until ACK sequence is over // I2C_Done(); StopI2C(); // send STOP condition I2C_Done(); // wait until stop condition is over break; }
發表於: 2007/3/28 17:29
|
|||
|
APP001實驗版使用I2C傳輸的問題
|
||||
---|---|---|---|---|
中級會員
|
各位大大,我試著使用W401 C18 Workshop裡面的 ANS 6-2
的I2C程式想要來玩玩I2C的模式。 可是很奇怪,好像寫不進去,所以在讀取的時候全部讀到的值都是0XFFFF,導致我LCD都變成顯示那個資料。 我已經把 JUMP 10改成 1-2,3-4啦! 還有哪邊要做更動嗎 我所使用的是PIC18F452 我還需要作哪些設定嗎 麻煩有經驗的大大請告知.... 我是著使用ICD2 去抓看程式HOLD在哪邊 發現在送出CTRL的訊號時 while(SSPCON2bits.ACKSTAT); // wait until received the Acknowledge from EEPROM 這裡便被HOLD住了,我想就算是EEPROM是24LC32A的原因也不該再送出CTRL就掛掉了。 題外話,範例裡的ADDR只有送一次,但是我看了EEPROM的SPEC,他需要12BIT的ADDRESS,這是不是代表我應該要送兩次ADDR啊,但這個問題應該是要能夠成功的送資料為前提。 不知道有沒有高手可以回答啊~~~~
發表於: 2007/3/27 16:01
|
|||
|