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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1127|回復: 12
打印 上一主題 下一主題
收起左側(cè)

會九齊的進來看看

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1125252 發(fā)表于 2024-8-26 20:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
有誰會寫九齊的,接私單的聊下,我這邊有幾個項目,因為不熟悉有些BUG。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:466250 發(fā)表于 2024-8-27 00:58 | 只看該作者
發(fā)出來看看
回復

使用道具 舉報

板凳
ID:822634 發(fā)表于 2024-8-27 09:46 | 只看該作者
九齊多年,你有什么問題
回復

使用道具 舉報

地板
ID:947230 發(fā)表于 2024-8-27 11:40 | 只看該作者
有什么問題可以先發(fā)出來討論一下
回復

使用道具 舉報

5#
ID:1125252 發(fā)表于 2024-8-29 11:34 | 只看該作者
九齊使用內(nèi)部1/4通道讀取電壓,參考電壓是2V,怎么得到2V時的ADC值
回復

使用道具 舉報

6#
ID:1125252 發(fā)表于 2024-8-29 11:36 | 只看該作者
九齊IC為何&&都用不了?我用定時器給433解碼,接收到的32位數(shù)據(jù)都不準,因為判斷時只能用大于或小于,不能局限在一個區(qū)間內(nèi)
回復

使用道具 舉報

7#
ID:1125252 發(fā)表于 2024-8-29 11:41 | 只看該作者
莫忠良 發(fā)表于 2024-8-27 09:46
九齊多年,你有什么問題

九齊用定時器給433解碼,發(fā)現(xiàn)截取到的32數(shù)值對不上。懷疑是判斷問題,問下九齊怎么操作可以&&運算,我之前用定時器同時兩個計數(shù),發(fā)現(xiàn)對時間有影響,變不準了
回復

使用道具 舉報

8#
ID:401564 發(fā)表于 2024-8-29 13:01 | 只看該作者
1481509156 發(fā)表于 2024-8-29 11:41
九齊用定時器給433解碼,發(fā)現(xiàn)截取到的32數(shù)值對不上。懷疑是判斷問題,問下九齊怎么操作可以&&運算,我之 ...

&&這個我一直在用,并沒有發(fā)現(xiàn)什么問題呀
你首先要了解九齊的硬件資源,它可不是STC或者STM32,片上資源非常有限的,有的RAM才48個字節(jié)......,4層硬件堆棧,隨便點代碼就溢出了
回復

使用道具 舉報

9#
ID:1125252 發(fā)表于 2024-8-29 15:00 | 只看該作者
Y_G_G 發(fā)表于 2024-8-29 13:01
&&這個我一直在用,并沒有發(fā)現(xiàn)什么問題呀
你首先要了解九齊的硬件資源,它可不是STC或者STM32,片上資源非 ...

我用定時器計時,用 if(TIMER >10 && TIMER <15)為啥不行?我在同一個定時器里計時兩個數(shù),它的定時時間就減少了好多,沒有什么規(guī)律。而且有臨界點。比如取8時計時可能400us,取9時有時會到1.2ms
回復

使用道具 舉報

10#
ID:401564 發(fā)表于 2024-8-29 22:28 | 只看該作者
1481509156 發(fā)表于 2024-8-29 15:00
我用定時器計時,用 if(TIMER >10 && TIMER

九齊不是STC,片上資源是非常有限的,而且,九齊的匯編指令是精簡指令,一個簡單的C語言運算,它可能要花上幾百個時鐘來完成的
比如 %取模就很耗時間,所以,能不在中斷中處理就盡量不要在中斷中處理,特別是uS級別的中斷
你貼上完整的代碼看一下
回復

使用道具 舉報

11#
ID:1125252 發(fā)表于 2024-8-30 11:43 | 只看該作者
Y_G_G 發(fā)表于 2024-8-29 22:28
九齊不是STC,片上資源是非常有限的,而且,九齊的匯編指令是精簡指令,一個簡單的C語言運算,它可能要花上幾 ...

void isr(void) __interrupt(0)
{
       
        if(INTFbits.T1IF)                                // 定時器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標志位
        }

}
/******************************定時器配置*************************************************/
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        //長按
#define K2_NUM1  0X55        //短按
#define K2_NUM2  0XAA          //長按

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;
                }
        }
       
}
回復

使用道具 舉報

12#
ID:1125252 發(fā)表于 2024-8-30 11:44 | 只看該作者
Y_G_G 發(fā)表于 2024-8-29 22:28
九齊不是STC,片上資源是非常有限的,而且,九齊的匯編指令是精簡指令,一個簡單的C語言運算,它可能要花上幾 ...

大哥,匯編太古老了,我不會啊
回復

使用道具 舉報

13#
ID:401564 發(fā)表于 2024-8-30 14:21 | 只看該作者
1481509156 發(fā)表于 2024-8-30 11:44
大哥,匯編太古老了,我不會啊

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

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一级视频在线观看 | 国产视频1区 | 九一国产精品 | 久久国产精品久久久久 | 精品在线 | 亚洲日本一区二区三区四区 | 91天堂网 | www.日韩| 久久男人 | 自拍 亚洲 欧美 老师 丝袜 | 欧美日韩一区不卡 | 久久久噜噜噜久久中文字幕色伊伊 | 高清18麻豆 | 久久精品欧美一区二区三区不卡 | 毛片入口 | 视频一区二区中文字幕 | 日韩精品一区二区三区在线播放 | h视频在线播放 | 久久久久久亚洲精品 | 中文字幕男人的天堂 | 91久久北条麻妃一区二区三区 | 毛片毛片毛片毛片 | 中文字幕第十页 | 毛片视频观看 | 亚洲精品一区二区三区蜜桃久 | 亚洲国产日韩一区 | 久久精品国产亚洲一区二区 | 亚洲一区在线播放 | 欧美乱码精品一区二区三区 | 97精品超碰一区二区三区 | 天天干天天玩天天操 | 日韩欧美黄色 | 欧洲在线视频 | av在线一区二区三区 | 韩国电影久久 | 国产一区二区三区四区三区四 | 国产一级在线 | 亚洲精品电影在线观看 | 国产伦精品一区二区三区四区视频 | 人人干人人爽 | 欧美日韩理论 |