• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: dspic4011 A/D暫存器
#7
新會員
新會員


查看用戶資訊
請問一下
如果我用2個10bit的a/d腳位分別是AN0, AN1
那他的副程式要分開寫嗎??
AN0--的ADCNON1裡的SSRC<2:0>設馬達控制PWM 間隔結束
AN1--的ADCNON1裡的SSRC<2:0>設使用內部時序設定取樣時間及轉換時間(自動轉換)

也就是void ADC10_Initial(void)要分別設定兩次嗎
void _ISR _ADCInterrupt(void)要設定兩次嗎??

如果要的話~~第二個副程式的檔名怎麼設定????????





///////////////////////////////////////////////////
void ADC10_Initial(void)
{

ADPCFG = 0xFFBF; // AN6/RB6 is Analog , others are Digital;
ADCON1 = 0x0026; // 0b0000 0000 0010 0110
// Auto convert using INT0 as trigger source
// A/D Sample Auto-Start
ADCON2 = 0x0000; // ADCON2 = 0000 0000 0000 0000
// Don't scan inputs , SMPi = 00 ( Interrupt for each sample/convert )
ADCSSL = 0x0000; // no scan input selected .......
ADCON3 = 0x1F3F; // TAD = 8 Tcy , SAMC = 15 TAD
ADCHS = 0x06 ; // ADCHS = 0b 00000000 00000110

IEC0bits.ADIE = 1 ; // Enable AD interrupt
IPC2bits.ADIP = 7 ; // Set Priority to 7 >> highest !!

ADCON1bits.ADON = 1; // turn ADC ON
}



void _ISR _ADCInterrupt(void)
{

Flags.AD_DONE = 1 ;
IFS0bits.ADIF = 0 ;
ADC_Buf = ADCBUF0 ;
LED1 = !LED1 ;

}

發表於: 2008/3/20 21:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: dspic4011 A/D暫存器
#6
版主
版主


查看用戶資訊
51的AD功能無法跟這顆dsPIC比,差太多了。這是硬體的掃描無關軟體的 polling。有個暫存器先要了解 : ADCSSL Register

dsPIC30F Peripheral Module - 10-bit ADC 的教材 第47頁有說明怎樣設定ADC掃描功能。
http://www.microchip.com.tw/modules/mydownloads/viewcat.php?cid=4

發表於: 2008/3/19 17:58
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: dspic4011 A/D暫存器
#5
新會員
新會員


查看用戶資訊
SCAN 的方式直接掃瞄~~是輪循法嗎??....................

像51系列是用輪循~~
現在使用的a/d就是中斷....
那有無SCAN的範利程式..............
還是也是暫存器,在設定上面會說明..........使用中斷orSCAN的嗎????
是在那些暫存器上面會說明??

沒用過SCAN~~~~所以請教一下板主................

謝謝!!



發表於: 2008/3/19 17:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: dspic4011 A/D暫存器
#4
版主
版主


查看用戶資訊
記住,每次的AD中斷都會將儲存的指標就會指向 ADBUF0, 這時新的AD轉換後的資料就會到 ADBUF0。
在中斷之前的轉換都會依序的存入 ADBUFx 中,直到最後一個AD轉換完產生中斷。你可以參考一下利用 SCAN 的方式直接掃瞄你要的輸入全部完成後再中斷,這樣處理比較簡單好用。

發表於: 2008/3/19 15:45
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: dspic4011 A/D暫存器
#3
新會員
新會員


查看用戶資訊
ADNCON2暫存器裡有一個
SMPI<3:0>~~~~~~~~~~~~

SMPI<3:0> - 設定AD 要轉換幾次後才產生一次中斷
(這些轉換後的資料會被存到ADCBUFx 的暫存器列裡)

這意思是不是說如果我設SMPI為0的話轉換一次的話~~他就存在ADCUF0~~~~~~~~那轉換兩次的話不就存在ADCBUF1

那是不是說~如果我使用兩估A/D
要儲存在兩估不同的BFU0跟BFU1,就是分別給他轉換一次跟兩次,就是SMPI設0 跟1 ....................對嗎???

板主~~

發表於: 2008/3/19 15:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: dspic4011 A/D暫存器
#2
版主
版主


查看用戶資訊
採用AD輸入掃描的方式,這樣第一次的轉換就會存到 ADBUF0 而第二個輸入的轉換就可以存到 ADBUF1 了。而且可以設定轉兩次後產生中斷。
相關的設定與說明可以參考 dsPIC30F Peripheral Module - 10-bit ADC 的教材說明。在左邊的檔案下載裡有。

發表於: 2008/3/19 11:58
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


dspic4011 A/D暫存器
#1
新會員
新會員


查看用戶資訊
個位先進:
如果使用A/D的話,如果不做任何設定那他轉換完的值,會儲存在ADCBUFO, 可是若我要使用兩A/D,想要分別存在不同的暫存器ADCBUF1,那要如何設定。
曾百由的書上好像也沒說到要設定那估地方,是在a/d的其他暫存器設定嗎看了DATA Family 還是不清楚怎麼設定???
ADCON1
ADCON2
ADCON3
ADCHS
ADPCFG
ADCSSL
看了好久了~~麻煩了~~~~~~
因為要用兩個A/D怕都會存在同一估暫存器還是它會存在BUF0~BUF7~~???
麻煩各位先進說明一下有程式說明更好!!謝謝啦~~

以下是我在Family找到的但看太懂是什意思~~
那邊是把他放到自已想要的暫存器裡面...............
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ADPCFG = 0xFF78; // RB0,RB1,RB2 & RB7 = analog
ADCON1 = 0x00EC; // SIMSAM bit = 1 implies ...
// simultaneous sampling
// ASAM = 1 for auto sample after convert
// SSRC = 111 for 3Tad sample time
ADCHS = 0x0007; // Connect AN7 as CH0 input
ADCSSL = 0;
ADCON3 = 0x0302; // Auto Sampling 3 Tad, Tad = internal 2 Tcy
ADCON2 = 0x030C; // CHPS = 1x implies simultaneous ...
// sample CH0 to CH3
// SMPI = 0011 for interrupt after 4 converts
ADCON1bits.ADON = 1; // turn ADC ON
while (1) // repeat continuously
{
ADC16Ptr = &ADCBUF0; // initialize ADCBUF pointer
OutDataPtr = &OutData[0]; // point to first TXbuffer value
IFS0bits.ADIF = 0; // clear interrupt
while (IFS0bits.ADIF); // conversion done?
for (count = 0; count < 4; count++) // save the ADC values
{
ADCValue = *ADC16Ptr++;
LoadADC(ADCValue);
}
} // repeat

發表於: 2008/3/19 0:48
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------