资源简介
板上的8 个按键分别分别代表数字1-8,每按下一个按键将结果通过串口发
送到PC 机上显示;
使用两个定时器模块,分别定时为1ms 和100ms 产生中断,使用它们分别
产生1s 的定时时间,将时间分别显示到数码管上;
外接PS/2 小键盘,将按键的值通过串口显示到PC 机上。
基于UC/OS-II 的温度实时监测系统
代码片段和文件信息
#include “includes.h“
#define TEMP_CRITICAL 2000
#define ALARM_KEY_CLOSE 0x31
#define ALARM_KEY_OPEN 0x32
OS_STK task_led2_stk[TASK_LED2_STK_SIZE]; //定义栈
OS_STK task_led3_stk[TASK_LED3_STK_SIZE]; //定义栈
OS_STK task_temp_stk[TASK_TEMP_STK_SIZE]; //定义栈
OS_STK task_hex_stk[TASK_HEX_STK_SIZE]; //定义栈
OS_STK task_beep_stk[TASK_BEEP_STK_SIZE]; //定义栈
OS_STK task_usart1_stk[TASK_USART1_STK_SIZE]; //定义栈
OS_FLAG_GRP *Global;
u8 err;
u16 adcnum; // ADC样值
float tem; // 温度
u16 tem1;
u16 temp_100 temp_10 temp_1 temp; // 各位的温度
void Task_Start(void *p_arg)
{
(void)p_arg; // ‘p_arg‘ 并没有用到,防止编译器提示警告
Global = OSFlagCreate(0 &err);
// OSTaskCreate(Task_LED2(void *)0 //创建任务2
// &task_led2_stk[TASK_LED2_STK_SIZE-1] TASK_LED2_PRIO);
OSTaskCreate(Task_LED3(void *)0 //创建任务3
&task_led3_stk[TASK_LED3_STK_SIZE-1] TASK_LED3_PRIO);
OSTaskCreate(Task_TEMP(void *)0 //创建任务4
&task_temp_stk[TASK_TEMP_STK_SIZE-1] TASK_TEMP_PRIO);
OSTaskCreate(Task_HEX(void *)0 //创建任务5
&task_hex_stk[TASK_HEX_STK_SIZE-1] TASK_HEX_PRIO);
OSTaskCreate(Task_BEEP(void *)0 //创建任务6
&task_beep_stk[TASK_BEEP_STK_SIZE-1] TASK_BEEP_PRIO);
// OSTaskCreate(Task_USART1(void *)0 //创建任务7
// &task_usart1_stk[TASK_USART1_STK_SIZE-1] TASK_USART1_PRIO);
// LED1(1);
OSFlagPost(Global (OS_FLAGS)4 OS_FLAG_SET &err); //第三位为按键
OSTaskSuspend(STARTUP_TASK_PRIO); //挂起始任务
}
//任务2
void Task_LED2(void *p_arg)
{
(void)p_arg;
while (1)
{
LED1 =~ LED1;
OSTimeDlyHMSM(0 020);
}
}
//任务3
void Task_LED3(void *p_arg)
{
(void)p_arg;
while (1)
{
LED1 =~ LED1;
OSTimeDlyHMSM(0 00200);
}
}
//任务4
void Task_TEMP(void *p_arg)
{
(void)p_arg;
while(1)
{
if(SW1){
tem=(float)0.125*I2C_LM75read();
}
else{
adcnum=T_Get_Adc_Average(ADC_CH_TEMP10);
tem=(float)adcnum*(3.3/4096);
tem=(1.43-tem)/0.0043+25; // 当前温度
}
tem1=ROUND_TO_UINT16(tem*100);
temp_100=(tem1%10000/1000);
temp_10=(tem1%1000/100);
temp_1=(tem1%100/10);
temp=(tem1%10);
// OSFlagPost(Global (OS_FLAGS)1 OS_FLAG_SET &err);
if(tem1 > TEMP_CRITICAL){ //温度大于阈值,报警
OSFlagPost(Global (OS_FLAGS)2 OS_FLAG_SET &err);
}
else{
OSFlagPost(Global (OS_FLAGS)2 OS_FLAG_CLR &err);
}
OSTimeDlyHMSM(000500);
}
}
//任务5
void Task_HEX(void *p_arg)
{
(void)p_arg;
while(1)
{
// OSFlagPend(Global (OS_FLAGS)1 OS_FLAG_WAIT_SET_ALL 0 &err);
// OS_ENTER_CRITICAL();
Disp_HEX(temp_100temp_10 temp_1 temp);
OSFlagPost(Global (OS_FLAGS)1 OS_FLAG_CLR &err);
// OS_EXIT_CRITICAL();
OSTimeDlyHMSM(0003);
}
}
//任务6
void Task_BEEP(void *p_arg)
{
(void)p_arg;
while(1)
{
OSFlagPend(Global (OS_FLAGS)6 OS_FLAG_WAIT_SET_ALL 0 &err
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5421 2018-09-12 13:03 STM32_uCOSII\APP\app.c
文件 511 2018-09-10 12:55 STM32_uCOSII\APP\app.h
文件 621 2019-01-01 03:35 STM32_uCOSII\APP\app_cfg.h
文件 10715 2018-09-08 17:59 STM32_uCOSII\APP\os_cfg.h
文件 10714 2010-06-03 10:34 STM32_uCOSII\APP\os_cfg_r.h
文件 10443 2011-12-03 07:14 STM32_uCOSII\APP\os_cfg_V2.86.h
文件 896 2018-09-12 13:28 STM32_uCOSII\BSP\Beep.c
文件 220 2019-01-01 03:01 STM32_uCOSII\BSP\Beep.h
文件 809 2019-01-01 02:29 STM32_uCOSII\BSP\BSP.c
文件 105 2018-09-09 15:30 STM32_uCOSII\BSP\bsp.h
文件 5455 2019-01-01 03:36 STM32_uCOSII\BSP\Hex.c
文件 1470 2018-09-09 18:39 STM32_uCOSII\BSP\Hex.h
文件 2611 2018-09-12 13:48 STM32_uCOSII\BSP\Key.c
文件 374 2018-09-12 13:31 STM32_uCOSII\BSP\Key.h
文件 2941 2018-09-12 12:38 STM32_uCOSII\BSP\led.c
文件 827 2018-09-12 12:53 STM32_uCOSII\BSP\led.h
文件 3005 2019-01-01 01:35 STM32_uCOSII\BSP\myiic.c
文件 1052 2019-01-01 02:34 STM32_uCOSII\BSP\myiic.h
文件 163 2016-03-25 19:53 STM32_uCOSII\BSP\sys.c
文件 2190 2018-09-10 12:05 STM32_uCOSII\BSP\sys.h
文件 2147 2018-09-08 19:52 STM32_uCOSII\BSP\temperate.c
文件 770 2018-09-08 17:49 STM32_uCOSII\BSP\temperate.h
文件 5682 2019-01-01 02:16 STM32_uCOSII\BSP\usart1.c
文件 283 2019-01-01 03:50 STM32_uCOSII\BSP\usart1.h
文件 16249 2009-04-06 10:30 STM32_uCOSII\CMSIS\core_cm3.c
文件 42077 2009-04-06 10:30 STM32_uCOSII\CMSIS\core_cm3.h
文件 15872 2018-09-08 13:51 STM32_uCOSII\CMSIS\startup\startup_stm32f10x_hd.s
文件 12236 2009-04-06 10:30 STM32_uCOSII\CMSIS\startup\startup_stm32f10x_ld.s
文件 12564 2009-04-06 10:30 STM32_uCOSII\CMSIS\startup\startup_stm32f10x_md.s
文件 633945 2018-09-08 13:57 STM32_uCOSII\CMSIS\stm32f10x.h
............此处省略227个文件信息
- 上一篇:思普PLM企业项目实际操作说明书
- 下一篇:stm32串口代码
相关资源
- 主成分分析c代码与原理
- EP100伺服系统原理图+PCB+源代码.rar
- 雷神的基于libvlc代码
- 基于STM32,hal库,使用CubeMX进行开发的
- 数字图像处理 冈萨雷斯 VC代码
- 普中科技51单片机基础实践例程合集
- 雕刻机,CNC代码源
- STM32_FOC代码.rar
- g721 g711 g729 g723 g722 音频编码解码及分
- NC代码G代码转换器DXF CAD文件
- R语言——kaggle比赛Titanic代码汇总
- 小波变换C代码(wavelet transform code)
- 编译原理-非递归预测实验-C代码实现
- 编译原理lex和yacc
- 基于51单片机水量检测c代码+proteus仿真
- 基于51单片机矩阵按键电子琴设计-完
- 5G标准下LDPC编码C代码
- DS2782 美信电量计芯片 IIC STM32/STM8/5
- jpeg-ls无损压缩C代码
- PCI运动控制卡VC代码
- 内存乒乓缓存机制和消息分发机制的
- FFT 多项式乘法 C代码
- 找出一条从某个定点A到顶点B变数最少
- 51单片机学习型红外遥控器C代码
- 数据结构严慰民配套纯C代码数据结构
- 哲学家吃饭问题(vc代码)
- soem主站源码纯C代码编写,方便移植
- mfrc522 树莓派C代码
- 2d simple cfd c代码
- DS1337 MSP430单片机C代码
评论
共有 条评论