• slider image 442
  • slider image 492
  • slider image 493
  • slider image 494
  • slider image 495
  • slider image 496
:::


Browsing this Thread:   1 Anonymous Users






CCP(1)
#1
資深會員
資深會員


查看用戶資訊
#include <p18f4520.h>
#include <delays.h>
#include <adc.h>
#include <timers.h>

#pragma config OSC=HS, BOREN=OFF, BORV = 2, PWRT=ON, WDT=OFF, LVP=OFF

void CCP1_isr(void);

#pragma code low_vector=0x18
void interrupt_at_low_vector(void)
{
_asm GOTO CCP1_isr _endasm
}
#pragma code

#pragma interruptlow CCP1_isr

void CCP1_isr (void)
{
INTCONbits.GIEH=0;
;
Delay10TCYx(5);
ConvertADC() ;
while(BusyADC());
if (PORTDbits.RD0)
PORTD = (ADRESH & 0xFE) ;
else
PORTD = (ADRESH | 0x01) ;

CCPR1H = ADRESH; // 將PWM設定為ADC結果
PIR1bits.CCP1IF = 0; // 清除中斷旗標
INTCONbits.GIEH=1; // 啟動所有的中斷
}


void main () {

PORTD = 0x00;
TRISD = 0;

TRISCbits.TRISC2 = 0; // 設定CCP1為輸出
CCP1CON = 0x0B; //=>00001011 // 設定CCP模組
CCPR1H = 0; //這句的用意不了解 // 設定PWM週期為一個微小值以避免全部為0
CCPR1L = 0x80; //b'10000000=128
T3CONbits.T3CCP2=0; // 設定TIMER1為CCP時序來源
T3CONbits.T3CCP1=0;
IPR1bits.CCP1IP=0; // 設定CCP為低優先中斷
PIR1bits.CCP1IF=0; // 清除中斷旗標
PIE1bits.CCP1IE=1; // 啟動CCP中斷


ADCON0=0x01; // 選擇AN0通道轉換,開啟ADC模組
ADCON1=0x0E; // 使用VDD,VSS為參考電壓,設定AN0為類比輸入
ADCON2=0x3A; // 結果向左靠齊並設定轉換時間為Fosc/32,採樣時間為20TAD

/*OpenTimer1( TIMER_INT_OFF & // 初始化TIMER1
T1_16BIT_RW &
T1_SOURCE_INT &
T1_PS_1_8 &
T1_OSC1EN_OFF &
T1_SYNC_EXT_ON );*/
T1CON=0xB5;

RCONbits.IPEN=1; //啟動中斷優先順序的功能
INTCONbits.GIEL=1; // 啟動所有的低優先中斷
INTCONbits.GIEH=1; // 啟動所有的高優先中斷

while(1) ; // 永久迴圈
}


這是CCP模組的比較模式,配合TIMER1訊號發生,然後用類比壓,改變輸出訊號的period
這題把timer1設定成ccp1的計時器!但timer1到底是怎麼計時的,使cpp1和timer1符合比較數值的呢?這點一直不通,後面的章節一直走不下去!可以請各位指導一下嗎?後面另外有解說它的工作週期為50%,不是PWM下,這個工作期要怎麼算的?

發表於: 2009/11/19 10:30
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... ]

教育訓練中心

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