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

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

發(fā)現(xiàn)I2C軟件包中的bug

作者:john1225cn 欄目:ARM技術(shù)
發(fā)現(xiàn)I2C軟件包中的bug
我在一種狀態(tài)下讀取按鈕的時候,常常讀錯按鍵。
當(dāng)我在讀按鈕關(guān)閉調(diào)度就沒有問題了。
或者直接關(guān)閉timer0的時間中斷也是沒有問題的。

所以我認(rèn)為timer0的中斷對I2C軟件包有影響。I2C軟件包中的bug,但具體是怎么回事我沒有搞明白。以前我也沒有發(fā)現(xiàn)有這樣的問題。

請教/

2樓: >>參與討論
john1225cn
怎么沒有人來給點看法?
怎么沒有人來給點看法????

3樓: >>參與討論
zlgarm
您是在我們的板上運行嗎?如果是,請發(fā)代碼及工程給我們
 

* - 本貼最后修改時間:2005-4-14 14:31:50 修改者:zlgarm

4樓: >>參與討論
john1225cn
代碼
#include  "config.h"
#define XPLACE    -0XA0000
#define YPLACE    -0X80000

#define MOVEERR 0XF000

#define MINDIS  0X8000

OS_STK ScanInputStk[64];
OS_STK MovetoStk[64];
OS_STK MnpltStk[64];
OS_STK RstpwmStk[64];

OS_STK WorkStk[64];

OS_EVENT *MotorSem;       
OS_EVENT *MnpltSem;        
OS_EVENT *MoveMbox;        
OS_EVENT *MnpltMbox;



int run[2],speed,place[10][2]={-0x20000,-0x20000,
                                0x30000,0x20000};
uint8 limit;
uint32 current,former;
uint8 tt;
uint8 key;

unsigned int Mnpltmode;

uint32 t;
int LocationX,LocationY;

////////////////////////////////////////////////////////////////////
void ScanInput(void *pdata);
void Moveto(void *pdata);
void Manipulate(void *pdata);
void DelayMS(uint32 dly);
void Work(void *pdata);
void DISPLAY(uint32 x,uint32 y);


void SetPlace(void)
    {    
    uint8 k;
    ZLG7290ShowChar(7,5);
    ZLG7290ShowChar(6,0XE);
    ZLG7290ShowChar(5,0X1E);
    ZLG7290ShowChar(4,0X1F);
                
    ZLG7290ShowChar(3,0X1F);
    ZLG7290ShowChar(2,0X1F);
    ZLG7290ShowChar(1,0X1F);
    ZLG7290ShowChar(0,0);
    
    while(key!=16)
        {
        key=ZLG7290GetKey();
        if( (key!=0) && (key<11) )
            {
            ZLG7290ShowChar(0,key);
            ZLG7290Wink(0);
            k=key;
            }
        if(key==16)
            {
                    
            ZLG7290ShowChar(0,24);
            ZLG7290ShowChar(1,20);
            place[k-1][0]=LocationX,
            place[k-1][1]=LocationY;
            DelayMS(300);
            DISPLAY(LocationX,LocationY);
            }
        }
    }
void speeddown(void)
    {
    if(speed!=0)
        {
        for(;speed>=1;speed--)
             {
             DelayMS(5);
             PWMMR0=t/speed-1;
             PWMMR1=10;
            PWMMR2=40;
            PWMMR3=10;
            PWMMR4=40;
            PWMLER=0X1F;
            }
        }
    }    
        
void speedup(void)
    {
    t=Fpclk*ACTIMERS/Fplus;
    for(speed=1;speed<=ACTIMERS;speed+=1)
         {
         DelayMS(5);
         PWMMR0=t/speed-1;
         PWMMR1=10;
        PWMMR2=40;
        PWMMR3=10;
        PWMMR4=40;
        PWMLER=0X1F;
        }
    }
         
void DelayMS(uint32 dly)
    {  
    uint8  i;
       for(; dly>0; dly--)
       for(i=0; i<100; i++);
    }
    
void ResetPwm(void *pdata)
    {
    extern int run[2];
    pdata=pdata;
        while(1)
        {
        OSTaskSuspend(OS_PRIO_SELF);
        T1TCR=0X0;
        if(run[0]==0)
            {
            if(run[1]>=0)
            LocationX=LocationX+T1TC;
            else
            LocationX=LocationX-T1TC;
            }
        else
            {
            if(run[1]>=0)
            LocationY=LocationY+T1TC;
            else
            LocationY=LocationY-T1TC;
            }
            
        speeddown();
        
        OS_ENTER_CRITICAL();        
        PWMTCR=0X0A;
        T1TCR=0X00;    
   
5樓: >>參與討論
john1225cn
說明,在板子上作的系統(tǒng)。
1.test.c
2.irq
3.target.c

在test.c中,按key1不動后是正常的,而按key2不動后,getkey有時候會返回0。我試了十次確實有這個問題。

6樓: >>參與討論
john1225cn
給各郵箱吧,發(fā)SUPPORT返回錯誤呀
我把整個工程發(fā)給你

7樓: >>參與討論
zlgarm
發(fā)給arm技術(shù)支持郵箱即可
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
先謝謝上次的指教,再請教幾個問題
誰能提供KEIL,小弟不勝感激。ztrx@163.com
暈~ 第一次用ARM。用的是LPC2292的,想操作一組I/O動作都不行。
書上那個中斷嵌套時的堆棧圖好像不對呀
關(guān)于easyjtag驅(qū)動問題
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入


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