Re: AD轉換讓LED亮
|
||||
---|---|---|---|---|
版主
|
發表於: 2009/7/30 17:47
|
|||
|
Re: AD轉換讓LED亮
|
||||
---|---|---|---|---|
新會員
|
是查這個資料嗎??VR1的腳位在第一隻..好像沒對到AN幾的==請問要怎麼看??
PS.我用的是APP025配PIC18F4520 Attach file: Link only for registered users
發表於: 2009/7/30 17:23
|
|||
|
Re: AD轉換讓LED亮
|
||||
---|---|---|---|---|
版主
|
有 VR1 & VR2 應是 APP026-3 搭 PIC18F4520 模組,要接到那一隻腳須查Data Sheet 看 AN0 是在那一隻腳。自己用杜邦線跳接。
發表於: 2009/7/30 15:05
|
|||
|
Re: AD轉換讓LED亮
|
||||
---|---|---|---|---|
新會員
|
請問VR1或VR2接到哪一個AN,又要在何處查詢昵﹖謝謝!
(不好意思…初碰pic一堆問題都毫無頭緒…)
發表於: 2009/7/29 20:24
|
|||
|
Re: AD轉換讓LED亮
|
||||
---|---|---|---|---|
版主
|
PIC18F4520 所使用的 OpenADC( ) 函數是 v5 的版本,請務必參考 C:\MCC18\doc\periph-lib 裡的 AD Convertor 裡的說明使用。
另 OpenADC 裡有使用到三個 ADC 控制暫存器,你必須先研讀 PIC18F4520 Data Sheet 裡的第19章的 ADC 使用說明後,這樣你才會知道這些參數所代表的意義為何。 文中所使用的 :OpenADC 所使用的參數設定有錯,最後一個不是傳 12 進去,而是要設定使用 AN0 當類比輸入,其餘為數位腳(ADC_1ANA),請改成底下的格式:
OpenADC(ADC_FOSC_RC & ADC_LEFT_JUST & ADC_12_TAD,
"ADC_12_TAD中12代表何意思?" 代表取樣時間要用 12 個Tad 的時間當取樣時間,而使用 Internal RC for ADC clock source 的話 Tad 約為 1.2uS (參考 TABLE 19-1: TAD vs. DEVICE OPERATING FREQUENCIES ) 這樣取樣時間為 14.4uS。 VR1 在電路上是接到那一個 AN? ,設一下就好了,以此例 VR1 是接在 AN0 的。
發表於: 2009/7/29 14:30
|
|||
|
Re: AD轉換讓LED亮
|
||||
---|---|---|---|---|
新會員
|
恩~~我大概了解怎麼去對同一個版本了而不會BUILD FAILED!可是卻不知怎麼應用,麻煩再指引我一個方向!如果我要調可變電阻VR1來控制的話..該怎麼改呢??(另外我不懂ADC_12_TAD中12代表何意思)
#include <p18f4520.h> #include <delays.h> #include <adc.h> //結構位元定義 #pragma config OSC=HS,BOREN=OFF,BORV=2,PWRT=ON,WDT=OFF,LVP=OFF void main() { PORTD=0x00; TRISD=0; //開啟類比訊號轉換模組 OpenADC(ADC_FOSC_RC & ADC_LEFT_JUST & ADC_12_TAD, ADC_CH0 & ADC_INT_OFF & ADC_REF_VDD_VSS & ADC_1ANA,12); while(1) { Delay10TCYx(5); ConvertADC(); while(BusyADC()); PORTD=ADRESH; } }
發表於: 2009/7/29 13:50
|
|||
|
Re: AD轉換讓LED亮
|
||||
---|---|---|---|---|
管理員
|
你好,
因為 PIC18F 內部的 ADC 經過多次的改良後 , 已經有多種不同的版本. 所以在 MPLAB C18 中提供的 Peripheral Library 中也對此作出因應之道 . 那就是將相同 AD 結構的 MCU 歸為同一 Version. 在 adc.h 裡可以看到 mcc18 如何分類 ADC 的 Version. 另外在安裝 MPLAB C18 後 , 在以下目錄可以找到 ADC 周邊 Library 的 html 格式的說明檔 ->> C:\MCC18\doc\periph-lib , 檔案中一開始就是一個把 MCU 編號與 Version 對應的表. 你可由表中看出 PIC18F4520 是 V5. 然後你看 OpenADC 的參數說明 , 就知道你的 ADC 參數下得不對了 !! 為了增強你的印象 , 建議你自己找一下啦 : Regards,
發表於: 2009/7/28 21:07
|
|||
|
AD轉換讓LED亮
|
||||
---|---|---|---|---|
新會員
|
請幫我看一下以下程式哪裡有寫錯嗎??我是參照書上打下來的...可是在Build All的時候,一直出現BUILD FAILED.....
#include <p18f4520.h> #include <delays.h> #include <adc.h> //結構位元定義 #pragma config OSC=HS,BOREN=OFF,BORV=2,PWRT=ON,WDT=OFF,LVP=OFF void main() { PORTD=0x00; TRISD=0; //開啟類比訊號轉換模組 OpenADC(ADC_Fosc_RC & ADC_LEFT_JUST & ADC_1ANA_0REF, ADC_CH0 & ADC_INT_OFF); while(1) { Delay10TCYx(5); ConvertADC(); while(BusyADC()); PORTD=ADRESH; } }
發表於: 2009/7/28 14:13
|
|||
|