• 大小: 2.92MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-10
  • 语言: 其他
  • 标签: c代码  

资源简介

板上的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个文件信息

评论

共有 条评论