Re: 如何從定義的運算式,取出高低位元分別做存取
|
||||
---|---|---|---|---|
版主
|
我好像看懂您先前的問題了:
1、取modulo的運算符號(%)可以用嗎?如果可以,直接可以取得低位元。 2、至於高位元,直接除(/)256,可以嗎?試過嗎? 3、至於什麼十進位,二進制,看得我一頭霧水。也許是我功力不足。但是,那不過是表示數字的方式,要轉嗎?除示您要轉成文字(ASCII)來傳出去顯示,那就要分得很清楚。 希望這次有幫助。
發表於: 2004/5/27 10:41
|
|||
|
Re: 如何從定義的運算式,取出高低位元分別做存取
|
||||
---|---|---|---|---|
版主
|
用C語言的話,利用union及struct好辦,用法如下:
union RESULT { int WHOLE_WORD; struct { char Lo_BYTE; char Hi_BYTE; }BYTES; }VALUE; 如果 VALUE.WHOLE_WORD == 0x1234; 則 VALUE.BYTES.Lo_BYTE == 0X34; VALUE.BYTES.Hi_BYTE == 0X12; 這是不是您要的呢?不過其中的高低位元次序我不太確定,可以實驗一下。
發表於: 2004/5/27 9:33
|
|||
|
Re: 使用燒入器時,MPLAB 有時間限制嗎?
|
||||
---|---|---|---|---|
版主
|
您的問題真的是很奇怪。我自己一直有在用MPLAB5.X版,搭配PICSTART PLUS (Microchip原廠的,不過和LEAP的應該沒什麼差別才是,除了外觀不同),從來沒有什麼問題。
也許,這個時候該用「控制變因」的方法,也就是:是同一台電腦,還是同一台LEAP PSTART,還是同一個MPLAB軟體。如果一切都是正常的,應該就和我的情形一樣都沒問題才對。 如果決定是電腦或PSTART的問題,就換一台電腦或PSTART (或升級其中的FIRMWARE)試試;不然,就重抓MPLAB重裝。 希望您的問題能解決。
發表於: 2004/5/27 9:24
|
|||
|
Re: GPS的GPGGA訊息格式可以存入PIC暫存器,暫存器格式如何表示
|
||||
---|---|---|---|---|
版主
|
不好意思,是terry回答您的。
發表於: 2004/5/26 23:53
|
|||
|
Re: 使用燒入器時,MPLAB 有時間限制嗎?
|
||||
---|---|---|---|---|
版主
|
參照:
您應該是用MPLAB5.X版的吧! 我的經驗是:在啟動PICSTART之前,要先設定正確的COMM PORT。否則,MPLAB會變得很奇怪。至於怎麼奇怪,我已經忘了。
發表於: 2004/5/26 11:14
|
|||
|
Re: GPS的GPGGA訊息格式可以存入PIC暫存器,暫存器格式如何表示
|
|
|||
---|---|---|---|---|
版主
|
發表於: 2004/5/24 17:14
|
|||
|
Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
|
||||
---|---|---|---|---|
版主
|
參照:
當一個byte由傳送方傳給接收方的時候,當那個byte傳完時,在其後緊接著的那一個clock,即為第9個clock時,傳送方的data線上會「傳」高位元(電位)的資料。如果接收方有將該位元拉為低位元(電位),那就表示接收方回了一個ACK;否則就表示回了一個NACK。為什麼將「傳」用引號括起來呢?這是因為其實I2C的CLOCK及DATA線具有所謂的OPEN COLLECTOR的特性;傳高位元,其實就等於沒傳資料,藉以判斷有沒有人將DATA線拉LOW (ACK)。
發表於: 2004/5/24 10:28
|
|||
|
Re: 很像玩DSPIC很花錢的樣子呢?
|
||||
---|---|---|---|---|
版主
|
1、ICD2可以"debug"全部的dsPIC。我不說"模擬",因為ICD2根本不是在"模擬"那一顆IC,而只是利用IC本身內部具有的debug功能來做debug而已。
2、Microchip的產品通常不是以價格取勝。像USB產品的價格像殺戮戰場,Microchip採取保守應對的策略;用的地方鎖定功能複雜,無現成SOLUTION的場合。 3、市場區隔不同。 4、5/21在高雄有MICROCHIP春季最後一場產品研討會。如對MICROCHIP新產品不太熟,可以把握機會去聽一下。 參照:
發表於: 2004/5/20 10:00
|
|||
|
Re: 讀取I2C_EEPROM需要注意什麼地方,請大家指教...
|
||||
---|---|---|---|---|
版主
|
我的經驗是:不管先前有沒有對EEPROM下過任何指令,反正不管是READ DATA或WRITE DATA的指令,指令第一個BYTE一定是BIT0=0(要先給EEPROM ADDRESS),即是一種形式的WRITE。之後,就要去POLLING ACK。若沒收到ACK,就重送START,再下第一個BYTE (WRITE ADDRESS),一直重覆直到收到ACK為止,再接下去下後面的指令。我用這種方式,存取24LC256,一直很順利。
另外,POWER ON之後,不要太快下指令,否則第一次會收不到ACK。
發表於: 2004/5/19 12:57
|
|||
|