使用Timer 有點類似寫開關,先在外面插一支旗子,由那支旗子來決定開關是要開還是關。
然後Timer 會一直增加數值,等數值滿了之後,就把旗子設定為 1 
之後一定要把 Timer 裡面的值清除,之後再重新增加數值...不斷的循環下去...

#include <p33fxxxx.h>
#include <timer.h>
 
int main()
{
    // 將IO Port設定成數位輸出,並指定I/O Port狀態。
    TRISBbits.TRISB5 = 0;
    LATBbits.LATB5 = 0;
 
    // Timer1初始化 : 使用MPLAB C30 Timer Function對Timer1進行設定。
    OpenTimer1( T1_ON & T1_IDLE_CON & T1_GATE_OFF 
    & T1_PS_1_256 & T1_SYNC_EXT_OFF & T1_SOURCE_INT 
    , 7000 ); // 累加到 7000,IFS0bits.T1IF 會被設定為 1
 
    while( 1 )
    {
        // To Do : Polling Timer1中斷旗標。
        if( IFS0bits.T1IF == 1 )
        {
        // To Do : 清除Timer1中斷旗標。把 7000 重新設定為 0, 他又會重新開始累加...
        IFS0bits.T1IF = 0;
 
        // 改變IO Port狀態(Toggle)。
        LATBbits.LATB5 = !LATBbits.LATB5;
    }
}
}

    全站熱搜

    黃彥霖 發表在 痞客邦 留言(0) 人氣()