久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 會(huì)九齊的進(jìn)來看看 [打印本頁(yè)]

作者: 1481509156    時(shí)間: 2024-8-26 20:09
標(biāo)題: 會(huì)九齊的進(jìn)來看看
有誰(shuí)會(huì)寫九齊的,接私單的聊下,我這邊有幾個(gè)項(xiàng)目,因?yàn)椴皇煜び行〣UG。

作者: 藍(lán)藍(lán)小星星    時(shí)間: 2024-8-27 00:58
發(fā)出來看看
作者: 莫忠良    時(shí)間: 2024-8-27 09:46
九齊多年,你有什么問題
作者: 大麥豆    時(shí)間: 2024-8-27 11:40
有什么問題可以先發(fā)出來討論一下

作者: 1481509156    時(shí)間: 2024-8-29 11:34
九齊使用內(nèi)部1/4通道讀取電壓,參考電壓是2V,怎么得到2V時(shí)的ADC值
作者: 1481509156    時(shí)間: 2024-8-29 11:36
九齊IC為何&&都用不了?我用定時(shí)器給433解碼,接收到的32位數(shù)據(jù)都不準(zhǔn),因?yàn)榕袛鄷r(shí)只能用大于或小于,不能局限在一個(gè)區(qū)間內(nèi)
作者: 1481509156    時(shí)間: 2024-8-29 11:41
莫忠良 發(fā)表于 2024-8-27 09:46
九齊多年,你有什么問題

九齊用定時(shí)器給433解碼,發(fā)現(xiàn)截取到的32數(shù)值對(duì)不上。懷疑是判斷問題,問下九齊怎么操作可以&&運(yùn)算,我之前用定時(shí)器同時(shí)兩個(gè)計(jì)數(shù),發(fā)現(xiàn)對(duì)時(shí)間有影響,變不準(zhǔn)了
作者: Y_G_G    時(shí)間: 2024-8-29 13:01
1481509156 發(fā)表于 2024-8-29 11:41
九齊用定時(shí)器給433解碼,發(fā)現(xiàn)截取到的32數(shù)值對(duì)不上。懷疑是判斷問題,問下九齊怎么操作可以&&運(yùn)算,我之 ...

&&這個(gè)我一直在用,并沒有發(fā)現(xiàn)什么問題呀
你首先要了解九齊的硬件資源,它可不是STC或者STM32,片上資源非常有限的,有的RAM才48個(gè)字節(jié)......,4層硬件堆棧,隨便點(diǎn)代碼就溢出了
作者: 1481509156    時(shí)間: 2024-8-29 15:00
Y_G_G 發(fā)表于 2024-8-29 13:01
&&這個(gè)我一直在用,并沒有發(fā)現(xiàn)什么問題呀
你首先要了解九齊的硬件資源,它可不是STC或者STM32,片上資源非 ...

我用定時(shí)器計(jì)時(shí),用 if(TIMER >10 && TIMER <15)為啥不行?我在同一個(gè)定時(shí)器里計(jì)時(shí)兩個(gè)數(shù),它的定時(shí)時(shí)間就減少了好多,沒有什么規(guī)律。而且有臨界點(diǎn)。比如取8時(shí)計(jì)時(shí)可能400us,取9時(shí)有時(shí)會(huì)到1.2ms
作者: Y_G_G    時(shí)間: 2024-8-29 22:28
1481509156 發(fā)表于 2024-8-29 15:00
我用定時(shí)器計(jì)時(shí),用 if(TIMER >10 && TIMER

九齊不是STC,片上資源是非常有限的,而且,九齊的匯編指令是精簡(jiǎn)指令,一個(gè)簡(jiǎn)單的C語(yǔ)言運(yùn)算,它可能要花上幾百個(gè)時(shí)鐘來完成的
比如 %取模就很耗時(shí)間,所以,能不在中斷中處理就盡量不要在中斷中處理,特別是uS級(jí)別的中斷
你貼上完整的代碼看一下
作者: 1481509156    時(shí)間: 2024-8-30 11:43
Y_G_G 發(fā)表于 2024-8-29 22:28
九齊不是STC,片上資源是非常有限的,而且,九齊的匯編指令是精簡(jiǎn)指令,一個(gè)簡(jiǎn)單的C語(yǔ)言運(yùn)算,它可能要花上幾 ...

void isr(void) __interrupt(0)
{
       
        if(INTFbits.T1IF)                                // 定時(shí)器0中斷 132 = 1MS
        {
                if(RFDecodeOK == 0)
                {
                        if(!RX_DATA)
                        {
                                IR_Time_L++;
                                IR_Time_H=0;
                                if(JumpFlag && IR_Time_L > 4)
                                {
                                        JumpFlag=0;
                                }
                        }
                        else
                        {
                                IR_Time_H++;
                                if(!JumpFlag && IR_Time_H > 4)
                                {
                                        JumpFlag=1;
                                        soft_decode();
                                        IR_Time_L=0;
                                        IR_Time_H=0;
                                }
                        }
                }       
            INTF= (unsigned char)~(C_INT_TMR1);                     // 清除T0IF標(biāo)志位
        }

}
/******************************定時(shí)器配置*************************************************/
void Timer1_INIT(void)
{
        TMRH = 0;
        TMR1 = 48;                        //50us
        T1CR1 = 0x03;
        T1CR2 = C_TMR1_ClkSrc_Inst | C_PS1_Div4;
        INTE = 0x08;
}
/******************************中斷*************************************************/
#define K1_NUM1  0x5A          //短按
#define K1_NUM2  0xA5        //長(zhǎng)按
#define K2_NUM1  0X55        //短按
#define K2_NUM2  0XAA          //長(zhǎng)按

void soft_decode()                        //解碼
{
                static unsigned char RxBitCnt = 0;        //接收數(shù)據(jù)位
                static unsigned long RxData = 0;        //數(shù)據(jù)緩沖
                if(IR_State==0)               
                {
                        if((IR_Time_L >= 19) && (IR_Time < 25))
                        {
                                IR_State=1;
                                RxData=0;
                                RxBitCnt=0;
                               
                        }
                        else
                        {
                                IR_State=0;
                        }
                }
                else if(IR_State==1 && RxBitCnt < 32)                       
                {
                       
                        if((IR_Time_L > 6) && (IR_Time_L < 9))  //50us*6=300
                        {
                                RxData = RxData<<1;
                                RxBitCnt++;                       
                        }
                        else if((IR_Time_L > 11) && (IR_Time_L < 14))
                        {
                                RxData = RxData<<1;
                                RxData |=1;
                                RxBitCnt++;               
                        }
                        else
                        {
                                RxBitCnt=0;
                                IR_State=0;
                        }
                        if(IR_cnt>=32)
                        {
                                RxBitCnt=0;
                                IR_State=0;
                                RxUserCode = RxData >> 24;
                                if(RxUserCode == K1_NUM1)
                                {
                                        RFDecodeOK = 1;
                                        RX_flag = 1;
                                }
                                else if(RxUserCode == K1_NUM2)
                                {
                                        RFDecodeOK = 1;
                                        RX_flag = 2;
                                }
                                else if(RxUserCode == K2_NUM1)
                                {
                                        RFDecodeOK = 1;
                                        RX_flag = 3;
                                }
                                else if(RxUserCode == K2_NUM2)
                                {
                                        RFDecodeOK = 1;
                                        RX_flag = 4;
                                }
                        }       
                }
}
void soft_decodetask(void)
{
        static unsigned int RxTimerCnt = 0;
        if(RFDecodeOK)
        {
                RFDecodeOK = 0;
                if(RX_flag==1){LED123=0;}
                if(RX_flag==2){LED123=1;}
                if(RX_flag==3){LED123=0;}
                if(RX_flag==4){LED123=1;}       
        }
        if(RFDecodeOK)
        {
                RxTimerCnt++;
                if(RxTimerCnt >= 2000)
                {
                        RxTimerCnt=0;
                        RFDecodeOK=0;
                }
        }
       
}
作者: 1481509156    時(shí)間: 2024-8-30 11:44
Y_G_G 發(fā)表于 2024-8-29 22:28
九齊不是STC,片上資源是非常有限的,而且,九齊的匯編指令是精簡(jiǎn)指令,一個(gè)簡(jiǎn)單的C語(yǔ)言運(yùn)算,它可能要花上幾 ...

大哥,匯編太古老了,我不會(huì)啊
作者: Y_G_G    時(shí)間: 2024-8-30 14:21
1481509156 發(fā)表于 2024-8-30 11:44
大哥,匯編太古老了,我不會(huì)啊

不是叫你看匯編,是告訴你工作原理
1: 進(jìn)入定時(shí)器中斷之后,要馬上清除中斷標(biāo)志位像這樣
if(INTFbits.T1IF)                                // 定時(shí)器0中斷 132 = 1MS
        {
           INTFbits.T1IF = 0;
           TMR1 = 48;    //如果是定時(shí)模式,還要寫入重載值
         ...........
    }

2:soft_decode();這個(gè)函數(shù),想辦法放在主函數(shù),不要放在中斷中執(zhí)行




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91午夜精品亚洲一区二区三区 | 免费在线观看黄色片 | 亚洲综合激情网 | 亚洲成人免费网站 | 日韩一区二区三区在线 | 四虎永久网址 | 久久96 | 欧美成人精品一区二区三区在线看 | 欧美一级淫片免费视频黄 | 欧美激情一区二区 | 亚洲视频一区 | 精品国产乱码久久久久久影片 | 久久久久久亚洲精品 | 国产欧美一区二区精品性色超碰 | 精品自拍视频 | 天堂网中文| 俺去俺来也在线www色官网 | 懂色av懂色av粉嫩av | 精品无人国产偷自产在线 | 国产一二 | 国产精品国产三级国产aⅴ浪潮 | 中文在线字幕免费观看 | www国产亚洲精品久久网站 | 成人免费看 | 亚洲欧美日韩国产精品 | 国模一区二区三区 | www超碰 | 国产传媒一区二区 | www.超碰| 午夜视频在线播放 | 免费国产网站 | 午夜黄视频 | 亚洲一级片在线观看 | 欧美一区二区在线播放 | 久久视频这里只有精品 | 黄色三级视频网站 | 91精品久久久久久久久久 | 人人干人人爽 | 国产一级黄 | 亚洲第一区在线观看 | 亚洲天堂一区二区三区 |