中级会员
 
- 积分
- 331
- 金钱
- 331
- 注册时间
- 2013-12-18
- 在线时间
- 64 小时
|
5金钱
我想把ADS1115程序和bottom按键程序加在一起,但是总是卡死;
代码:
#include <string.h>
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "TFT_touch.h"
#include "pit.h"
#include "GUI.h"
#include "WM.h"
#include "BUTTON.h"
#include"dac.h"
#include"key.h"
#include "adc.h"
#include "timer.h"
#include "led.h"
#include "ads1115.h"
#include "TWI.h"
//#include"GUIVal.h"
#include<math.h>
#include "includes.h"
#define START_TASK_PRIO 4 //开始任务的优先级设置为最低
//设置任务堆栈大小
#define START_STK_SIZE 256
//创建任务堆栈空间
OS_STK START_TASK_STK[START_STK_SIZE];
//任务函数接口
void start_task(void *pdata);
//key任务
//设置任务优先级
#define LED1_TASK_PRIO 2
//设置任务堆栈大小
#define LED1_STK_SIZE 64
//创建任务堆栈空间
OS_STK LED1_TASK_STK[LED1_STK_SIZE];
//任务函数接口
void key_task(void *pdata);
//ads任务
//设置任务优先级
#define LED2_TASK_PRIO 3
//设置任务堆栈大小
#define LED2_STK_SIZE 64
//创建任务堆栈空间
OS_STK LED2_TASK_STK[LED2_STK_SIZE];
//任务函数接口
void ads_task(void *pdata);
BUTTON_Handle hobj5;
BUTTON_Handle hobj6;
int left=0;
int rightt=0;
extern const GUI_BITMAP bmHINATA;
extern const GUI_BITMAP bmNARUTO;
extern u16 value;
int main(void)
{
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72);
uart_init(72,9600);
TWI_Initialize();
LED_Init();
GUI_Init();
TP_Init();
GUI_Clear(); //按指定颜色清屏
TIM3_Int_Init(99,7199);
OSInit();
OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//创建起始任务
OSStart();
return 0;
}
void start_task(void *pdata)
{
OS_CPU_SR cpu_sr=0;
pdata = pdata;
// OSStatInit(); //初始化统计任务.这里会延时1秒钟左右
OS_ENTER_CRITICAL(); //进入临界区(无法被中断打断)
OSTaskCreate(key_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO);
OSTaskCreate(ads_task,(void *)0,(OS_STK*)&LED2_TASK_STK[LED2_STK_SIZE-1],LED2_TASK_PRIO);
OSTaskSuspend(START_TASK_PRIO); //挂起起始任务.
OS_EXIT_CRITICAL(); //退出临界区(可以被中断打断)
}
void key_task(void *pdata)
{
GUI_SetColor(GUI_RED);
GUI_SetFont(&GUI_FontComic24B_ASCII);
hobj5=BUTTON_Create(50,140,60,40,5,WM_CF_SHOW);
BUTTON_SetText(hobj5, "NO5");
hobj6=BUTTON_Create(120,140,60,40,6,WM_CF_SHOW);
BUTTON_SetText(hobj6, "NO6");
while(1)
{
if(GUI_WaitKey()==5)
{
LED0=!LED0;
}
OSTimeDlyHMSM(0,0,0,30);
}
}
//LED2任务
void ads_task(void *pdata)
{
float ADS_Value;
u32 temp;
while(1)
{
GUI_SetColor(GUI_RED);
ADS_Value = display_ADS(50);
temp= ADS_Value ;
GUI_DispDecAt(temp,30,70,1);
ADS_Value -= temp;
ADS_Value *= 1000;
GUI_DispDecAt((ADS_Value),70,70,3);
OSTimeDlyHMSM(0,0,0,35);
}
}
|
最佳答案
查看完整内容[请看2#楼]
回复【21楼】正点原子:
---------------------------------
弄好啦,原子哥,示波器的问题
|