會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





PIC24FJ64GA705 比較器
新會員
註冊日期:
2011/08/23 19:34
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 492
離線



不好意思,想請問個簡單的問題。
以下是我在PIC24FJ64GA705比較器的設定片段,

void CMP1_Initialize(void)
{
IEC1bits.CMIE = 0;

CMSTAT = 0x0000;

CM1CONbits.CEN = 1;
CM1CONbits.COE = 0;
CM1CONbits.CPOL = 1;
CM1CONbits.CEVT = 0;
CM1CONbits.COUT = 0;
CM1CONbits.EVPOL = 0x01;
CM1CONbits.CREF = 1;
CM1CONbits.CCH = 0x01;
IFS1bits.CMIF = 0;
IEC1bits.CMIE = 1;
delay(10);
}


再來是中斷(目前可以進中斷),


void __attribute__((interrupt, no_auto_psv)) _CompInterrupt(void)
{
ClrWdt();


IFS1bits.CMIF = 0;
CMP1_EventStatusReset();
CMP2_EventStatusReset();
CMP3_EventStatusReset();
}


另外是在main()裡面加了以下的判斷讓RA8、RA9可以high、low
,用示波器觀看RA8、RA9的狀況,但是發現COUT可以正常動作,
但是判斷CEVT的部分卻一直維持low的狀態,也就是CEVT沒有反應。


#define C1OUT_12V_OVP CMSTATbits.C1OUT
#define C1EVT_12V_OVP CMSTATbits.C1EVT

if (C1OUT_12V_OVP == 1)
{
//IO_RA8_SetHigh();
IO_RA9_SetHigh();
CMP1_EventStatusReset();
CMP2_EventStatusReset();
CMP3_EventStatusReset();
}
else
{
//IO_RA8_SetLow();
IO_RA9_SetLow();
CMP1_EventStatusReset();
CMP2_EventStatusReset();
CMP3_EventStatusReset();
}
if (C1EVT_12V_OVP == 1)
{
IO_RA8_SetHigh();
//IO_RA9_SetHigh();
CMP1_EventStatusReset();
CMP2_EventStatusReset();
CMP3_EventStatusReset();
}
else
{
IO_RA8_SetLow();
//IO_RA9_SetLow();
CMP1_EventStatusReset();
CMP2_EventStatusReset();
CMP3_EventStatusReset();
}

一直找不倒問題在哪裡,是否可以請各位幫個忙,感謝!


2月23日 11:20:43
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project