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 **************************************************************************************/

近期下载者

相关文件


收藏者