音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請大家?guī)臀铱纯催b控接受處理程序哪里出問題了?謝謝!

作者:sky134579 欄目:單片機(jī)
請大家?guī)臀铱纯催b控接受處理程序哪里出問題了?謝謝!
/* State of the remote key DECODER */
/*
#define IDLE            0
#define LEADER_ON    1
#define LEADER_OFF    2
#define CUSTOM          3
#define DATA1           4
#define DATA2           5
*/

/********************************************************************
* Function NAME: IR_Falling_Edge_ISR  
* Input Parameters:   None
* Return VALUE:    None
* DESCRIPTION:    interrupt 0    External Interrupt 0    (Remote CONTROL)
* This interrupt service routine is triggered at the falling edge of IR signal
********************************************************************/
void IR_Falling_Edge_ISR(void) interrupt 0
{



        /* Disable externel interrupt 0. This action is important, otherwise the SYSTEM stack will overflow.*/
     EX0 = 0;     
        /* calculate the clock */
        TR1=0;
        t0=(TH1<<8)|TL1;    /* Get the time between the two interrupts */
        TH1=0;
        TL1=0;
        TR1=1;


       // Jack 7/15 rewrite
        SWITCH(IR_State)
        {
           
           case IDLE:    
       
          OK_Scan_LED = 1;    
                    IR_State = LEADER_ON;    //LEAD PULSE received.
                    break;

            case LEADER_ON:                                                    
                    if ( (t0 > NORMAL_HEADER_L) && (t0 < NORMAL_HEADER_R) )
                    {                                              
                        IR_State = CUSTOM1;
                IR_Addr1 = 0;
                        valid_repeat = 0;
                        IR_Repeat = 0;
                        bitcount = 0;
                        break;
                    }
                    else if ( (t0 > REPEAT_HEADER_L) && (t0 < REPEAT_HEADER_R) )
                    {                                                                                                                                                                               
                        if (valid_repeat)                  
                                IR_Repeat = 1;
                IR_State = IDLE;
                break;
                    }
            else
            {
                IR_State = IDLE;    
                        break;
            }
            
            case CUSTOM1:
          
                if ( (t0 > BIT_0_L) && (t0 < BIT_0_R) )     
                        IR_Addr1 <<= 1;
&
2樓: >>參與討論
zljzlj
HEADER
看看HEADER的檢測是否進(jìn)入了
那個t0是否正常。

3樓: >>參與討論
sky134579
heade的檢測進(jìn)入了.
我在HEADER檢測的地方放入了LED顯示程序,結(jié)果燈亮,證明進(jìn)入了.
就是到CUSTOM1處進(jìn)行不下去了,不知道為什么它不能辨別0和1,程序我找不出問題,真是郁悶.
問題可能是不能辨別0和1,但是就是不知道是怎么造成的.


4樓: >>參與討論
zljzlj
CUSTOM1和CUSTOM2在哪定義,頭上只有CUSTOM啊。
 
5樓: >>參與討論
sky134579
抱歉,改過了,未注名
頭部分改為:#define CUSTOM1  3
       #define CUSTOM2  4
以下部分依次加1

我不知道是不是KEIL不能處理t0=(TL1<<8)|TL1;

6樓: >>參與討論
sky134579
問題搞定了,謝謝zljzlj!
多謝zljzlj的熱心幫助
我的錯誤是在頭文件中,BIT_0及BIT_0的時間長度搞錯了點(diǎn),馬虎啊!
現(xiàn)在搞定了,有輸入也有輸出了.
以上程序沒問題.
可能就是把t0的計算方式變下:t0=TH1*256+TL1;

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
KEIL中的以下警告對程序運(yùn)行有什么影響?
在keilC里面為什么老說文件找不到呢?
液晶相關(guān)(初學(xué)者問)
我用cy7c68013,總是出現(xiàn)一下窗口,應(yīng)該是對了,可是EZ-USB Co..
關(guān)于6N137用法的問題?
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號