請問dsPIC有除法嗎??
|
||||
---|---|---|---|---|
中級會員
![]() ![]() |
請問dsPIC有乘法及除法嗎??
如果我做的乘除法算為有小數點的計算那程式寫法 會是類似 ex: A=5.123 B=2.111 C=A*B D=A/B
發表於: 2004/7/9 1:04
|
|||
|
Re: 使用c18定義時#define常數的疑問及pragma romdata疑問
|
||||
---|---|---|---|---|
版主
![]() ![]() |
const 是用來定義不會被改變的數一般稱之為常數,在Hi-Tech PICC 及 C18裡,常用來宣告它是存放在 Flash ROM 的查表值,例如 lcd顯示的固定字串,SIN Table ...等固定不變的資料。記住它實際佔有記憶空間的。
#define 是定義以文字取代常數、數值、變數或 I/O位址...等,簡單而言就是以文字取代,編譯時不占記憶空間的,即使是取代變數也是你在宣告變數時佔用記憶空間,與#define無關。
發表於: 2004/7/8 21:51
|
|||
|
Re: 如何燒錄pic18f452
|
||||
---|---|---|---|---|
新會員
![]() ![]() |
我發現了一個問題
1.我插上16f877(購買PICDEM.net BOARD附的)時lcd有顯示ip:16.17.18.19 2.而第一次插上18f452(學弟交接給我的),lcd也有顯示ip:10.10.5.15 3.後來為了再看看16f877的網頁檔,所以用終端機下載webpage.rom(光碟附的)至24LC256(用終端機應該是下載至此I2C吧),此時16f877的網頁可觀看,但再度插上18f452時lcd卻顯示DHCP/Gleaning...,使原本的ip不見了,請問我應該怎麼做?謝謝
發表於: 2004/7/8 21:05
|
|||
|
Re: 使用c18定義時#define常數的疑問及pragma romdata疑問
|
||||
---|---|---|---|---|
初級會員
![]() ![]() |
謝謝回答
最後再試了一下,我發現我的原因出在 例define c-1 在c還沒定義前就先運算,導致後面運算式算出來的值都錯誤 恩感激不盡 另外一問我們使用#define跟使用const來定義常數 兩者之間有什麼差別呢?
發表於: 2004/7/8 14:12
|
|||
|
Re: 使用c18定義時#define常數的疑問及pragma romdata疑問
|
||||
---|---|---|---|---|
版主
![]() ![]() |
#define 的用意是用一個好記有意義的文字去取代一個數字、常數及文字。
用法如下: #define KEY_SW1 PORTAbits.RA0 #define Baud_Rate 4000000/(51+1) if (KEY_SW1) PORTB=0x00 ; 再寫程式中就可以用KEY_SW1來取代PORTA的RA0簡單又好記 程式也比較容易讀。
發表於: 2004/7/8 14:05
|
|||
|
Re: 使用c18定義時#define常數的疑問及pragma romdata疑問
|
||||
---|---|---|---|---|
高級會員
![]() ![]() |
相同的型式 , #define可以用來定義巨集 , 動作和組語MACRO相似 , 都可算是插入式語法 , COMPILER看到相同的變數時 , 代入所定義的資料 .
發表於: 2004/7/8 10:35
|
|||
|
Re: dsPIC30F6014的RS232傳送單一字元
|
||||
---|---|---|---|---|
新會員
![]() ![]() |
其它的設定我能確定都ok,因為我可以從終端機傳送一字元出去後再從PIC端將此字元回傳至終端機。但就是在只想傳送單一字元時,都不能正常工作。
發表於: 2004/7/8 10:33
|
|||
|
Re: 使用c18定義時#define常數的疑問及pragma romdata疑問
|
||||
---|---|---|---|---|
初級會員
![]() ![]() |
感謝版主的回答,那另外一問
#define a=10 #define b=2 #define c=a/b 直接定義來做運算式可以嗎? c語言好像不行,我在c18講義有寫到可以直接運算,不知是否能 還是要另外寫副程式來做運算呢?
發表於: 2004/7/8 10:14
|
|||
|
Re: 使用c18定義時#define常數的疑問及pragma romdata疑問
|
||||
---|---|---|---|---|
高級會員
![]() ![]() |
使用#define不是將變數定義成另一個變數或常數嗎?是不是應該這樣寫
#define abc 0b00001111 不過我自己都是這樣寫 #define abc B'00001111' #pragma romdata //是告訴compiler以下的宣告是在程式記憶體中 const rom CONFIG1H = 0X0E ; const 是指宣告的值是固定常數 , rom是指放在rom裡面 CONFIG1H的位址是在Header file裡就定義好的變數 , 變數 = 0x0E ,當然就是0x0E放到CONFIG1H囉!
發表於: 2004/7/8 10:06
|
|||
|