野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15054|回复: 3

UCOSII信号量按不按按键灯都一直亮,闪亮才是正常现象

[复制链接]
发表于 2016-3-18 16:07:19 | 显示全部楼层 |阅读模式
现在灯一直常亮,怎么按都没反应
0.png
1.png
2.png
3.png
4.png
6.png
回复

使用道具 举报

发表于 2016-3-18 18:33:26 | 显示全部楼层
你的按键任务没有初始化
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-19 15:48:33 | 显示全部楼层
flyleaf 发表于 2016-3-18 18:33
你的按键任务没有初始化

火哥,现在变成不按按键它也闪了

#ifndef  __APP_CFG_H__
#define  __APP_CFG_H__

#define STARTUP_TASK_PRIO       5
#define STARTUP_LED1_PRIO       4
#define STARTUP_KEY_PRIO     3

#define STARTUP_TASK_STK_SIZE   80   
#define STARTUP_LED1_STK_SIZE  80
#define STARTUP_KEY_STK_SIZE   128

#endif

APP.c
#include "includes.h"
OS_EVENT *Sem;
INT8U err;
static OS_STK STARTUP_LED1_STK[STARTUP_LED1_STK_SIZE];
static OS_STK STARTUP_KEY_STK[STARTUP_KEY_STK_SIZE];

void Task_LED1(void *pdata)
{
   
  pdata=pdata;                               
            SysTick_init();
    while (1)
    {
                        OSSemPend(Sem,0,&err);
               
                       
                                for(;;)
                                {
        LED1( ON );
        OSTimeDly(1000);
        LED1( OFF);
                        OSTimeDly(1000);
                       
        LED2( ON );
        OSTimeDly(1000);
        LED2( OFF);
                        OSTimeDly(1000);
                        }
                       
   
}
}
void Task_KEY(void *pdata)
{

        INT8U KeyAState;
        pdata=pdata;
       
        while(1)
        {
                OSTimeDly(20);
                KeyAState=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13);
               
                if(KeyAState==0)
                {
                                OSTimeDly(20);
                   KeyAState=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13);
     if(KeyAState==0)
                {
      Sem=OSSemCreate(0);
                        OSSemPost(Sem);
   }
               
   }
               

        }



}


void Task_LED(void *pdata)
{
      pdata=pdata;                       
            SysTick_init();

    while (1)
    {
                                OSTaskCreate(Task_LED1,(void *) 0,(OS_STK *)&STARTUP_LED1_STK[STARTUP_LED1_STK_SIZE-1], STARTUP_LED1_PRIO );
              OSTaskCreate(Task_KEY,(void *) 0,(OS_STK *)&STARTUP_KEY_STK[STARTUP_KEY_STK_SIZE-1], STARTUP_KEY_PRIO );
                       
    }
}

main.c
#include "includes.h"


static OS_STK STARTUP_start_STK[STARTUP_TASK_STK_SIZE];
                 
int main(void)
{
  BSP_Init();
       
        OSInit();

        OSTaskCreate(Task_LED,(void *) 0,(OS_STK *)&STARTUP_start_STK[STARTUP_TASK_STK_SIZE-1], STARTUP_TASK_PRIO );
       
        OSStart();
        return 0;
       

}

回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-21 09:12:41 | 显示全部楼层
帮贫民看看吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 03:48 , Processed in 0.043023 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表