当前位置: 代码迷 >> 单片机 >> ARM7 Proteus仿真,P1.24:31驱动LED IO1CLR调用有关问题
  详细解决方案

ARM7 Proteus仿真,P1.24:31驱动LED IO1CLR调用有关问题

热度:257   发布时间:2016-04-28 14:46:44.0
ARM7 Proteus仿真,P1.24:31驱动LED IO1CLR调用问题

ARM初学者的问题:
一个ARM7的GPIO初始化程序,在proteus上进行仿真
CPU: LPC2124;一个LED组LED0至LED7,依此连接P1.24~P1.31

初始化如下
#define BIT2 0x04
#define BIT3 0x08
#define LED_0 BIT24 // P1.24
void Init_GPIOPort(void)
{
//Set to GPIO setting
PINSEL2 = PINSEL2 &(~(BIT2|BIT3));

//LED
IO1DIR |= 0xFF000000; // set LED port to OUTPUT type
        IO1CLR|=0xFF000000;//  all LED port set to Low

//----Test--
LED_PORT_SET |= 0xFF000000;

}

仿真时发现,只要对GPIO使用了IO1CLR 至零后,LED就一直闪个不停,查了各项设定,关闭了中断,都没有发现问题
请教各位问题可能出在哪里?
------解决思路----------------------
1. 建议使用FreeRTOS。
2. 设置IO输出数据后,需要延时。提供视觉停留。
     例如delayXMs()函数。
3. 使用int main(void)函数
    调用函数来执行具体任务。
4. 闪灯一般算法如下:
     do
     {
            portX ~= portX;
            delayXMs(300);
      }while(ucCnt--);

------解决思路----------------------
怀疑你的程序在proteus下是不是一直在重启,所以出现一直闪烁的现象。
------解决思路----------------------
可是设置一个计数器  看看这个函数的进入次数   感觉向一直被reset