Re: dsPIC30f4011 A/D 問題
|
||||
---|---|---|---|---|
資深會員
|
我覺得你有空多練練 C 程式的基本寫作 對你會很有幫助 不過你有心做一些新的嘗試 還是值得鼓勵
加油
發表於: 2007/12/7 17:45
|
|||
|
Re: dsPIC30f4011 A/D 問題
|
||||
---|---|---|---|---|
初級會員
|
成功解決^^謝謝~終於可以顯示10位元的A/D了
發表於: 2007/12/7 17:27
|
|||
|
Re: dsPIC30f4011 A/D 問題
|
||||
---|---|---|---|---|
初級會員
|
非常感謝!!
再請問,我改的方式好像是錯誤的步驟,我第一次改的方式是直接去C:\Tutorial\EX11_1_ADC_Manual裡的 C30EVM_LCD.C 筆記本改,但沒有效果,第二次我就去MPLAB開啟EX11_1_ADC_Manual的範例程式後,再他 Source Filec下裡的 C30EVM_LCD.C 改,改完後程式執行要讓他run的時候出現 The project is out of date.Would you like to build it now. 是否還要什麼步驟呢?因為我只是單純的把內容改過後儲存
發表於: 2007/12/7 10:51
|
|||
|
Re: dsPIC30f4011 A/D 問題
|
||||
---|---|---|---|---|
資深會員
|
void put_Num_LCD( unsigned int The_Number10 )
前幾行稍加修改 主要把 put_Num_LCD 的參數改為 unsigned int The_Number10 因 unsigned char 只能處理 8 bit 的資料 再來把原來的 The_Number 設為 1000 的餘數 則原來處理 3 位數的顯示程式可不用更動 然後取千位數 Temp_Char_1000 把他先顯示出來即可
發表於: 2007/12/7 7:26
|
|||
|
Re: dsPIC30f4011 A/D 問題
|
||||
---|---|---|---|---|
初級會員
|
這是"C30EVM_LCD.h"裡put_Num_LCD的程式寫法,如何改為10位元的顯示法呢。
void put_Num_LCD( unsigned char The_Number ) { unsigned char Temp_Char_100, Temp_Char_10, Temp_Char ; Temp_Char_100 = The_Number /100 ; //取百位數的數字 putcLCD( Temp_Char_100 + '0' ) ; //轉換為ASCII編碼,'0'的編碼加數字大小 Temp_Char_10 = (The_Number - Temp_Char_100*100) /10 ; //取十位數的數字 putcLCD( Temp_Char_10 + '0' ) ; Temp_Char = The_Number - ( Temp_Char_100*100 + Temp_Char_10 * 10 ) ; //取個位數的數字 putcLCD( Temp_Char + '0' ) ; }
發表於: 2007/12/7 5:41
|
|||
|
Re: dsPIC30f4011 A/D 問題
|
||||
---|---|---|---|---|
初級會員
|
謝謝版主和各位先進的熱心幫忙,問題已找出來果然要把
ADCValue = (ADCBUF0 >> 2) 改成 ADCValue = (ADCBUF0) 程式可執行了^^~之前是我軟體操作的錯誤拍謝~ 但我執行結果有發現新的問題,程式執行後我調VR2可變電阻,程式未修改前LCD顯示的最大值是255最小值為0,現在程式修改後由於已從8位元改成10位元A/D轉換,因此VR2每ㄧ小格電壓值被除以(1024-1),照理說最大值應為1023最小為0,但我微調時發現當他超過255後LCD所顯示的數字就開始亂跳,我發現問題應該出在最後ㄧ行 put_Num_LCD( ADCValue ) ; // 將類比轉換結果以十進位數字顯示至液晶顯示器 這個函式指令是曾百由這本書第8章所講到的,他的功能和作用 put_Num_LCD( unsigned char ) ; //在lcd上顯示10進位數字引數 而其中的 unsigned char 所表示的數值資料只能是8位元,0-255 是否因此而造成大於255後數值就無法計算造成亂掉的局面,如果要修改 是否就必須從lcd的原型宣告檔案"C30EVM_LCD.h"進入修改。 這是我發現的問題但不知是不是這樣,請先進不令指教。
發表於: 2007/12/6 5:40
|
|||
|
Re: dsPIC30f4011 A/D 問題
|
||||
---|---|---|---|---|
中級會員
|
板主所提的修改應該是很正確的, 但qwert你卻回覆沒有效果...
我想你是不是沒有重新 build 專案, 導致沒有產生新的程式碼! 因為你有提到使用了已有的範例來做. ---------------------------------------------------------------------- 重新 build 操作, 請點選 Project -> Build All
發表於: 2007/11/30 10:16
|
|||
|
Re: dsPIC30f4011 A/D 問題
|
||||
---|---|---|---|---|
版主
|
用Watch Window 配合 Breakpoint 看一下變數的結果。
ADCBUF0 是ADC轉換完成後所存的暫存器。 兩個的值應該是一樣的。
發表於: 2007/11/30 9:59
|
|||
|
Re: dsPIC30f4011 A/D 問題
|
||||
---|---|---|---|---|
初級會員
|
板主你好
void Show_ADC(void) { unsigned char dummy ; unsigned int ADCValue; . . } 不太懂~他不是已經設定為INT了嗎?
發表於: 2007/11/29 20:00
|
|||
|