資源簡介
板上的8 個(gè)按鍵分別分別代表數(shù)字1-8,每按下一個(gè)按鍵將結(jié)果通過串口發(fā)
送到PC 機(jī)上顯示;
使用兩個(gè)定時(shí)器模塊,分別定時(shí)為1ms 和100ms 產(chǎn)生中斷,使用它們分別
產(chǎn)生1s 的定時(shí)時(shí)間,將時(shí)間分別顯示到數(shù)碼管上;
外接PS/2 小鍵盤,將按鍵的值通過串口顯示到PC 機(jī)上。
基于UC/OS-II 的溫度實(shí)時(shí)監(jiān)測系統(tǒng)

代碼片段和文件信息
#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 ?? //創(chuàng)建任務(wù)2
// ??? &task_led2_stk[TASK_LED2_STK_SIZE-1]?TASK_LED2_PRIO);
OSTaskCreate(Task_LED3(void?*)0 ??? //創(chuàng)建任務(wù)3
??? &task_led3_stk[TASK_LED3_STK_SIZE-1]?TASK_LED3_PRIO);
??? OSTaskCreate(Task_TEMP(void?*)0 ??? //創(chuàng)建任務(wù)4
?? ?&task_temp_stk[TASK_TEMP_STK_SIZE-1]?TASK_TEMP_PRIO);
??? OSTaskCreate(Task_HEX(void?*)0 ??? //創(chuàng)建任務(wù)5
??? &task_hex_stk[TASK_HEX_STK_SIZE-1]?TASK_HEX_PRIO);
????OSTaskCreate(Task_BEEP(void?*)0 ??? //創(chuàng)建任務(wù)6
??? &task_beep_stk[TASK_BEEP_STK_SIZE-1]?TASK_BEEP_PRIO);
// OSTaskCreate(Task_USART1(void?*)0 ??? //創(chuàng)建任務(wù)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); //掛起始任務(wù)
}
//任務(wù)2
void?Task_LED2(void?*p_arg)
{
????(void)p_arg;????????????????
????while?(1)
????{
????????LED1?=~?LED1;
OSTimeDlyHMSM(0?020);
????}
}
//任務(wù)3
void?Task_LED3(void?*p_arg)
{
????(void)p_arg;??????
????while?(1)
????{
LED1?=~?LED1;
OSTimeDlyHMSM(0?00200);????????
????}
}
//任務(wù)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;?//?當(dāng)前溫度
}
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){ //溫度大于閾值,報(bào)警
OSFlagPost(Global?(OS_FLAGS)2?OS_FLAG_SET?&err);
}
else{
OSFlagPost(Global?(OS_FLAGS)2?OS_FLAG_CLR?&err);
}
OSTimeDlyHMSM(000500);?
}
}
//任務(wù)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);?
}
}
//任務(wù)6
void?Task_BEEP(void?*p_arg)
{
(void)p_arg;
while(1)
{
OSFlagPend(Global?(OS_FLAGS)6?OS_FLAG_WAIT_SET_ALL?0?&err
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????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個(gè)文件信息
評(píng)論
共有 條評(píng)論