📄 44bmon.c.bak
字号:
if(MsgCnt<=15)
{ for(i=0;i<MsgCnt;i++)
{
LCD_PrinSet(0,i*14);
LCD_Printf("消息%d:%s\n",(U16)(i+1),MsgBuf[i]);
}
}
else
{ LCD_WritePixel(0,0,320-1,240-16,acFROG); //在LCD上面显画面 刷新
Cnt=MsgCnt-15;
for(i=0;i<15;i++)
{
LCD_PrinSet(0,i*14);
LCD_Printf("消息%d:%s\n",(U16)(i+Cnt+1),MsgBuf[i+Cnt]);
}
}
// OSMboxPost(tisem,(void*)&msg);
// OSMboxPend(ok,0,&err);
// msg++;
// if(msg>'Z')
// msg='A';
}
}
//////////////////////////////////////////////////////
void Task3(void *i)
{
INT8U Reply, n=5;
// char *msg;
LCD_WritePixel(0,0,320-1,240-16,acFROG); //在LCD上面显画面 刷新
for(;;){
LED1(1);
LED2(1);
LED0(0);
// msg=(char*)OSMboxPend(tisem,0,&err);
Uart_Printf("555,别要忘记我哦,朋友,我是你忠实的朋友!!\n");
OS_ENTER_CRITICAL();
FontOver(1); //字体叠加
LCD_PenColor = 0x1f; //红色
LCD_PrinSet(10,5);
LCD_Printf("该部分用于设置系统时间日期等参数\n");
OS_EXIT_CRITICAL();
RtcGetTime(SysTime);
OS_ENTER_CRITICAL();
FontOver(0);//使用背景颜色
LCD_PenColor =0; //黑色
LCD_BGColor =255; //白色
LCD_PrinSet(0,210);
LCD_Printf("%04d年%2d月%2d日%02d时%02d分%02d秒",SysTime->year,SysTime->month,SysTime->day,SysTime->hour,SysTime->min,SysTime->sec);
// OS_EXIT_CRITICAL();
OSTimeDly(100);
// OSMboxPost(ok,(void*)1);
}
}
//////////////////////////////////////////////////////////////////////////////
void Task4(void *datatt)
{
U8 err,Cnt=0,i;
while(1)
{
OSSemPend(KeyScrlFlh, 0, &err);//等待有可以显示的信息
if(MsgCnt>=15)
{
LCD_WritePixel(0,0,320-1,240-16,acFROG); //在LCD上面显画面 刷新
for(i=0;i<15;i++)
{
LCD_PrinSet(0,i*14);
LCD_Printf("消息%d:%s\n",(U16)(i+1),MsgBuf[i]);
}
}
}
}
/////////////////////////////////////////////////////////////////////////////////
extern void InitInterrupts(void);
extern void InstallSystemTimer(void);
void TaskStart(void *m)
{ U8 i;
U8 RunTask1=0,RunTask2=0,RunTask3=0;
LCD_BGColor =0xfc; //蓝色
LCD_PenColor = 0x00; //黑色
Lcd256_Clear(LCD_BGColor);
LCD_WritePixel(0,0,320-1,240-16,acFROG); //在LCD上面显画面
LCD_PrinSet(0,0);
FontOver(0);
LCD_Printf("%d是什么?\n",13);
InstallSystemTimer(); //安装并开启UCOS的时钟节拍
OSStatInit();//初始化系统统计任务
CH375Reset();
mDelaymS(100 ); /* 延时50ms */
i = CH375LibInit( ); /* 初始化CH375程序库和CH375芯片,操作成功返回0 */
mStopIfError( i );
CH375_PORT_INIT( );////////////////////////////////////////USB硬件接好以后加入该句///////////
//创建任务
//OSTaskCreate(Task1, (void *)0, (void *)&Stack1[STACKSIZE - 1], 2);
//OSTaskCreate(Task2, (void *)0, (void *)&Stack2[STACKSIZE - 1], 3);
//OSTaskCreate(Task3, (void *)0, (void *)&Stack3[STACKSIZE - 1], 4);
OSTaskCreate(Task4, (void *)0, (void *)&Stack4[STACKSIZE - 1], 5);
LCDFlsh=OSSemCreate(0);//创建信号量为零的信号
KeyScrlFlh=OSSemCreate(0);
LCD_BGColor =0x1f;
LCD_TextOut("消息",8,226);
LCD_TextOut("设置",40,226);
LCD_TextOut("资料",72,226);
LCD_BGColor =0xfc; //蓝色
rINTMSK&=(~(BIT_URXD0));
pISR_URXD0=(unsigned)Uart0Int;
while(1)
{
RtcGetTime(SysTime);
LCD_PrinSet(202,226);LCD_BGColor =120;//绿色
LCD_Printf("CPU使用%2d%%",(U16)OSCPUUsage);
LCD_PrinSet(277,226);LCD_BGColor =0xfc; //蓝色
LCD_Printf("%02d:%02d",SysTime->hour,SysTime->min);
OSTimeDly(200);
FontOver(0);
if(Key1)
{
while(Key1)
{ LCD_BGColor =63;//黄
LCD_TextOut("消息",8,226);
OSTimeDly(40);
}
RunTask2=~RunTask2;
if(RunTask2)
{ LCD_BGColor =120;//绿色
OSTaskCreate(Task2, (void *)0, (void *)&Stack2[STACKSIZE - 1], 3);
OSSemPost(LCDFlsh);//发送一个信号,显示任务接受信号后立刻显示
}
else
{ LCD_BGColor =0x1f;//红
OSTaskDel(3);
}
LCD_TextOut("消息",8,226);
}
if(Key2)
{
while(Key2)
{ LCD_BGColor =63;
LCD_TextOut("设置",40,226);
OSTimeDly(40);
}
RunTask3=~RunTask3;
if(RunTask3)
{
LCD_BGColor =120;//绿色
OSTaskCreate(Task3, (void *)0, (void *)&Stack3[STACKSIZE - 1], 4);
}
else
{ LCD_BGColor =0x1f;//红
OSTaskDel(4);
}
LCD_TextOut("设置",40,226);
}
if(Key3)
{
while(Key3)
{ LCD_BGColor =63;
LCD_TextOut("资料",72,226);
OSTimeDly(40);
}
RunTask1=~RunTask1;
if(RunTask1)
{ LCD_BGColor =120;//绿色
OSTaskCreate(Task1, (void *)0, (void *)&Stack1[STACKSIZE - 1], 2);
}
else
{ LCD_BGColor =0x1f;//红
OSTaskDel(2);
}
LCD_TextOut("资料",72,226);
}
if(Key4)
{
while(Key4) OSTimeDly(40);
OSSemPost(KeyScrlFlh);
}
}
}
/*
* Main function.
*/
//////////////////////////////////////////////////////////////////////////////////////////
void Main(void)
{
rSYSCFG = CACHECFG;
//8K字节cache,写缓冲使能,data abort使能
rNCACHBE0 = ((Non_Cache_End>>12)<<16)|(Non_Cache_Start>>12);
InitInterrupts();
//在上面的数据区域不使用高速缓存
//LcdColor256_Bmp(acFROG);
//LCD_WritePixel(0,0,320-1,240-1,acFROG); //在LCD上面显画面
Port_Init();//初始化各端口
//ChangePllValue( 56, 2, 1 ); //晶振8MHz,修改系统主频为8倍频(64MHz)
//ChangePllValue( 56, 3, 1 ); //晶振10MHz,修改系统主频为6.4倍频(64MHz)
ChangePllValue( 24, 3, 1 ); //晶振10MHz,修改系统主频为3.2倍频(32MHz)
Uart_Init(0,9600); //初始化窜口
Delay(500);
Uart_Select(0); //Select UART0
Lcd_DispON(); //开启LCD显示,包含初时化LCD
RtcInit(SysTime); //初始化系统时间
OSInit();
OSTaskCreate(TaskStart, (void *)0, (void *)&Stack0[STACKSIZE - 1], 0);
/* start the game */
OSStart();
}
//*****************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -