📄 evaluate_visby.c
字号:
#include "Visby\VisbyAPI.h"
#include "Visby\VisbyDevice.h"
#include "LCD\lcd.h"
VB_HTASK hTask4;
VB_HTASK hTask3;
VB_HTASK hTask2;
VB_HTASK hTask1;
VB_HTASK hLCDrefresh;
VB_HTASK hLCDwaiter;
void hhhh()
{
VB_ENCRIT;
Uart_Printf("\t\t\tISR:%ld\n",Visby_Tick);
VB_DECRIT;
}
/*
void Task4()
{
int i, count = 0;
while(true)
{
VB_ENCRIT;
Uart_Printf("\t\t\t\tT4:%ld\n",Visby_Tick);
Uart_Printf("\t\t\t\t :%d\n",count);
VB_DECRIT;
count++;
if(count < 75)
for(i = 0; i < 1000000; i++);
else
VB_SleepTask(hTask4, 125000 / VB_TICKINTV);
}
}
void Task2(void);
void Task3()
{
int count=0;
VB_HMSG hMsg;
hTask2 = VB_CreateTask(Task2, PRIO_NORMAL, 0x400);
while(true)
{
VB_ENCRIT;
Uart_Printf("\t\t\tT3:%ld\n",Visby_Tick);
Uart_Printf("\t\t\t :%d\n",count);
VB_DECRIT;
count++;
VB_SleepTask(hTask3, 250000 / VB_TICKINTV);
hMsg = VB_DequeueMsg();
if(hMsg != NULL)
{
switch(VB_MSG_TYPE(hMsg))
{
case 0x12345678:
VB_DeleteTask(hTask2);
break;
default:
break;
}
VB_DestroyMsg(hMsg);
}
}
}
void Task2()
{
int count=0;
while(true)
{
VB_ENCRIT;
Uart_Printf("\t\tT2:%ld\n",Visby_Tick);
Uart_Printf("\t\t :%d\n",count);
VB_DECRIT;
count++;
VB_SleepTask(hTask2, 500000 / VB_TICKINTV);
}
}
void Task1()
{
int count=0;
while(true)
{
VB_ENCRIT;
Uart_Printf("\tT1:%ld\n", Visby_Tick);
Uart_Printf("\t :%d\n",count);
VB_DECRIT;
if(count == 5)
{
VB_SendMsg(hTask3, 0x12345678, NULL);
}
else if(count == 10)
{
VB_SuspendTask(hTask3);
}
else if(count == 15)
{
hTask4 = VB_CreateTask(Task4, PRIO_LOW, 0x400);
}
else if(count == 20)
{
VB_ChangePrio(hTask4, PRIO_HIGH);
}
else if(count == 25)
{
VB_CreateTask(Task2, PRIO_NORMAL, 0x400);
}
else if(count == 30)
{
VB_ResumeTask(hTask3);
}
count++;
VB_SleepTask(hTask1, 1000000 / VB_TICKINTV);
}
}
*/
void LCD_Refresh()
{
int count=0;
BOOL res;
VB_HISR old;
res = VB_RequestDevie(hLCDrefresh, DEV_LCD, TRUE);
if( res )LCD_Cls(0xFFFFFFFF);
VB_FreeDevice(DEV_LCD);
/////////////////////////////////////////////////////////////
VB_SetTimer0123(VB_TIMER1, 2400, (VB_HISR)hhhh, &old);
VB_SetISREnable(VB_ISR_TIMER1, TRUE);
/////////////////////////////////////////////////////////////
while(TRUE)
{
count ++;
// if( count < 300 )
// {
// LCD_Printf(0,0,0,1,"LCD Task 1 : %d",count);
VB_ENCRIT;
Uart_Printf("\tTask1:%ld\n",Visby_Tick);
VB_DECRIT;
// }
// else if( count == 300 )
// {
// VB_FreeDevice(DEV_LCD);
// }
VB_SleepTask(hLCDrefresh, 1000000 / VB_TICKINTV);
}
}
void LCD_Waiter()
{
int count=0;
BOOL res;
VB_SleepTask(hLCDwaiter, 800000 / VB_TICKINTV);
res = VB_RequestDevie(hLCDwaiter, DEV_LCD, TRUE);
if( res )LCD_Cls(0);
while(TRUE)
{
count ++;
// LCD_Printf(0,0,1,0,"LCD Task 2 : %d",count);
VB_ENCRIT;
Uart_Printf("\t\tTask2:%ld\n",Visby_Tick);
VB_DECRIT;
VB_SleepTask(hLCDwaiter,800000 / VB_TICKINTV);
}
}
void Main(void)
{
rSYSCFG=CACHECFG;// Using 8KB Cache//
Port_Init();
Uart_Init(0,115200);
Led_Display(0xf);
Uart_Select(0); //Select UART0//
Uart_Printf("\n\nVisby test begin...\n\n");
Beep(0x1);
Beep(0x0);
// hTask1 = VB_CreateTask(Task1, PRIO_NORMAL, 0x400);
// hTask3 = VB_CreateTask(Task3, PRIO_NORMAL, 0x400);
// hTask2 = VB_CreateTask(Task2, PRIO_NORMAL, 0x400);
hLCDrefresh = VB_CreateTask(LCD_Refresh, PRIO_NORMAL, 0x400);
hLCDwaiter = VB_CreateTask(LCD_Waiter, PRIO_NORMAL, 0x400);
VB_Start();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -