leiwei7788 发表于 2013-4-3 14:51:09

我用small rtos遇到了一个奇怪的问题

我用的芯片是STC12LE5A60S2,整个工作进度快完时,发现P2口工作不正常,先确认我的板是没有问题的,去掉我所有的程序部分,一点一点儿的找问题
最后发现引起P2口引脚脉冲的原因,是在调用信号量时出现的。
因为我在OS_CFG.H文件中,将信号量改为xdata时,如果改为idata则就不会引起P2.4 (不仅P24,P23也有,我怀疑整个P2都有脉冲)
#define OS_SEM_MEM_SEL       xdata 
因考虑到P2口是访问外部RAM的地线线,所以将AUX=0,禁止访问外部RAM,但仍会有,专门申请一个xdata 的变量,test++时,程序中并未出脉冲,所以确定是因为信号量引起的

xdata char test;
void TaskD(void)
{
    while (1)
    {
        #if 1
        OSSemPend(0,0);
       OSWait(K_TMO,5);
   OSSemPost(0);
       #else
       test++;
       if(test==0)OSWait(K_TMO,10);
       #endif
   OSWait(K_TMO,30);
    }
}
附近P24脚的故障波形图,如果不调用信号量,则就很好。也附上工程源文件,可直接编译,整了一天了,只得放下这个问题,赶进度了,请能人志士解答,并谢之!
页: [1]
查看完整版本: 我用small rtos遇到了一个奇怪的问题