simple-os-
所属分类:单片机开发
开发工具:Asm
文件大小:1282KB
下载次数:13
上传日期:2014-12-19 10:34:12
上 传 者:
sony19900107
说明: 简单的任务管理程序 , 在STM32上用 , 没有使用时间片,但是常用功能都集成进去了
(Simple task management program, with the STM32, did not use the time slice, but commonly used functions are integrated into the)
文件列表:
V2.00 (0, 2014-12-17)
V2.00\App (0, 2014-11-19)
V2.00\App\Prmt (0, 2014-11-21)
V2.00\App\Prmt\Prmt.c (2467, 2014-11-21)
V2.00\App\Prmt\Prmt.h (1973, 2014-11-09)
V2.00\App\Task (0, 2014-11-21)
V2.00\App\Task\Task.c (5101, 2014-11-21)
V2.00\App\Task\Task.h (2118, 2014-10-28)
V2.00\App\tmp (0, 2014-11-19)
V2.00\App\tmp\tmp.c (1524, 2014-10-26)
V2.00\App\tmp\tmp.h (1612, 2014-10-26)
V2.00\Backup of STM32.ewd (37835, 2013-02-22)
V2.00\Backup of STM32.ewp (49278, 2014-11-24)
V2.00\Doc (0, 2014-11-21)
V2.00\Drv (0, 2014-11-20)
V2.00\Drv\KEY (0, 2014-12-16)
V2.00\Drv\KEY\Key.c (2400, 2014-11-20)
V2.00\Drv\KEY\Key.h (3258, 2014-11-20)
V2.00\Drv\LED (0, 2014-11-20)
V2.00\Drv\LED\LED.c (4566, 2014-11-20)
V2.00\Drv\LED\LED.h (3473, 2014-11-20)
V2.00\Drv\SysTick (0, 2014-11-19)
V2.00\Drv\SysTick\SysTick.c (2209, 2014-10-28)
V2.00\Drv\SysTick\SysTick.h (2027, 2013-04-28)
V2.00\Drv\TIM (0, 2014-11-19)
V2.00\Drv\TIM\TIM.c (13779, 2014-10-28)
V2.00\Drv\TIM\TIM.h (3177, 2014-04-22)
V2.00\Drv\UART (0, 2014-11-19)
V2.00\Drv\UART\UART.c (11868, 2014-10-28)
V2.00\Drv\UART\UART.h (4997, 2014-04-18)
V2.00\Lib (0, 2014-11-19)
V2.00\Lib\CMSIS (0, 2014-11-19)
V2.00\Lib\CMSIS\CM3 (0, 2014-11-19)
V2.00\Lib\CMSIS\CM3\CoreSupport (0, 2014-11-19)
V2.00\Lib\CMSIS\CM3\CoreSupport\core_cm3.c (17273, 2010-06-07)
V2.00\Lib\CMSIS\CM3\CoreSupport\core_cm3.h (85714, 2011-02-09)
V2.00\Lib\CMSIS\CM3\DeviceSupport (0, 2014-11-19)
V2.00\Lib\CMSIS\CM3\DeviceSupport\ST (0, 2014-11-19)
V2.00\Lib\CMSIS\CM3\DeviceSupport\ST\Release_Notes_for_STM32F10x_CMSIS.html (25107, 2010-10-18)
... ...
/**************************************************************************************
* 版本说明
**************************************************************************************/
tPOS
R2.00, 2014-10-26
1. 新建工程,实现本设备的基本功能。
/**************************************************************************************
* End Of File
**************************************************************************************/
/**************************************************************************************
*
* Address
*
* (c) Copyright 20xx, Company Name, City, State
* All Rights Reserved
*
*
* FileName : KeyScan.c
* Version : V1.0
* Programmer(s) : zhaojun_xf
* Parameters :
* DebugTools :
* Description :
*
*
**************************************************************************************/
/**************************************************************************************
* HeaderFiles
**************************************************************************************/
#include "../usr/config.h" // 头文件
/**************************************************************************************
* Variable Definition
**************************************************************************************/
/**************************************************************************************
* FunctionName : OSKeyInit()
* Description : 初始化
* EntryParameter : None
* ReturnValue : None
**************************************************************************************/
#if (OS_KEY_MAX > 0)
void OSKeyInit(void)
{
OSKey.Fun = 0;
OSKey.Vlu = 0;
OSKey.Sta = 0;
for (U8 i=0; i 0)
OS_BOOL OSKeyCreate(U8 num, U8 tim, U8 dty, U16 cyc, void (*opn)(void), void (*cls)(void))
{
if (num >= OS_PWM_MAX)
{
return OS_FALS;
}
return OS_TRUE;
}
#endif
/**************************************************************************************
* FunctionName : OS_KeyGetDat()
* Description : 获取某一按键的某一值
* EntryParameter : None
* ReturnValue : 返回值
**************************************************************************************/
#if (OS_KEY_MAX > 0)
U8 OS_KeyGetDat(U8 num, U32 dat)
{
return ((dat >> num*2) & 0x03);
}
#endif
/**************************************************************************************
* FunctionName : OS_KeySetDat()
* Description : 设置某一按键的某一值
* EntryParameter : None
* ReturnValue : 返回值
**************************************************************************************/
#if (OS_KEY_MAX > 0)
void OS_KeySetDat(U8 num, U32 *pDat, U8 val)
{
*pDat &= ~(0x03 << num*2); // 先清零对应2位
if (val > 0) (*pDat |= (val & 0x03) << num*2); // 写入2位数据
}
#endif
/**************************************************************************************
* FunctionName : OSKeyPro()
* Description : 按键处理
* EntryParameter : None
* ReturnValue : None
**************************************************************************************/
#if (OS_KEY_MAX > 0)
void OSKeyPro(void)
{
for (U8 i=0; i 0) // 有键按下
{
if (OS_KeyGetDat(i, OSKey.Mrk) == 0) // 读取按键标记
{
if (OSKey.Cnt[i]++ >= OSKey.Tim[i]) // 长按或连续按
{
OS_KeySetDat(i, &OSKey.Mrk, 0x01); // 置按键标记
if (OS_KeyGetDat(i, OSKey.Fun) == OS_KEY_CTN)
{
OS_KeySetDat(i, &OSKey.Vlu, OS_KEY_CTN); // 连续按
}
else
{
OS_KeySetDat(i, &OSKey.Vlu, OS_KEY_LNG); // 长按
}
}
else
{
OS_KeySetDat(i, &OSKey.Vlu, OS_KEY_SNG); // 单次
}
}
}
else // 无键或释放按键
{
OSKey.Cnt[i] = 0;
OS_KeySetDat(i, &OSKey.Mrk, 0x00); // 清除标记
OS_KeySetDat(i, &OSKey.Vlu, OS_KEY_NLL); // 无键
}
}
}
#endif
/**************************************************************************************
* End Of File
**************************************************************************************/
近期下载者:
相关文件:
收藏者: