發新話題

[問題] 利用旗標方式去控制紅綠藍燈亮 拜託~急~~~~~

利用旗標方式去控制紅綠藍燈亮 拜託~急~~~~~

#include "initial.h"
uint8_t ONOFF = 0;
uint8_t Y_Flicker = 0;
struct Flag_Bit Flag;                                                                                                                                                // Normal Status Flag
                                                                                                                                                                                                // Start Interrept                                                                               
int main(void)
{
        cli();
        Init_WDT();                                                                                                                                                                // Initial WDT
        Init_IO();                                                                                                                                                                // Initial All I/O
        Init_Timer1();                                                                                                                                                        // Initial Timer0 - 8bit
        //Init_Timer2();                                                                                                                                                        // Initial Timer2 - 8bit
        Set_PWM();                                                                                                                                                                // Initial PWM(Timer1 - 16bit)
        Init_Status();                        // Initial All Status                                                                                                                               
        sei();               
        while(1)
        {
               
                        asm("WDR");                        // Watch Dog                                                                                                                               
        }
}
ISR(TIMER1_COMPA_vect)                                                                                                                                                // 10mS interrupt
{
       
        if ((PINC & 0x01) == 0x01)
        {                                                                                                                       
                        OCR2B = 255;
                       
        }
        else
        {               
                        OCR2B = 0;
        }
       
        if ((PINC & 0x02) == 0x02)
        {
                        OCR0A = 255;                                                                                                                                               
        }
        else
        {
                        OCR0A = 0;
        }
        if ((PINC & 0x08) == 0x08)
        {                                                                                                                               
                        OCR0B = 255;                                                                                                                                                       
        }
        else
        {                                                                                                                               
                        OCR0B = 0;                                                                                                                                                       
        }
       
}
       
ISR(TIMER2_COMPA_vect)                                                                                                                                       
{
       
}


當按第1次時燈會持續亮著,再按第2次時要滅

[ 本帖最後由 b15508400 於 2014-5-26 09:58 編輯 ]

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。