📄 app.c
字号:
/*
****************************************************************************************
* A document contains the part
****************************************************************************************
*/
#include <includes.h>
#include "GUI.h"
#include "arm_comm.h"
#include "tp.h"
/*
****************************************************************************************
* definete task stack
****************************************************************************************
*/
static OS_STK App_TaskStartStk[APP_CFG_TASK_START_STK_SIZE];
#define BEEP_ON() (FIO3CLR = (1 << 24))
#define BEEP_OFF()(FIO3SET = (1 << 24))
/*
*****************************************************************************************
* The user do not have to change this section of code
*****************************************************************************************
*/
/*
extern CPU_INT32U SDRAM_BASE_ADDR;
BSP_LCD_PARAM LCDInit =
{
0,
5,
1,
3,
1,
0,
0,
38,
20,
30,
320,
10000,
15,
5,
3,
240,
6400,
0,
(__REG32)&SDRAM_BASE_ADDR,
(__REG32)&SDRAM_BASE_ADDR,
0,
};
*/
//BSP_LCD_PARAM *list = &LCDInit;
#if (APP_CFG_PROBE_OS_PLUGIN_EN == DEF_ENABLED)
static CPU_INT32U App_ProbeCnts;
static CPU_BOOLEAN App_ProbePB1;
static CPU_BOOLEAN App_ProbePB2;
static CPU_INT16U App_ProbeADC;
#if (APP_CFG_PROBE_COM_EN == DEF_ENABLED)
#if (PROBE_COM_CFG_STAT_EN == DEF_ENABLED)
static CPU_FP32 App_ProbeComRxPktSpd;
static CPU_FP32 App_ProbeComTxPktSpd;
static CPU_FP32 App_ProbeComTxSymSpd;
static CPU_FP32 App_ProbeComTxSymByteSpd;
static CPU_INT32U App_ProbeComRxPktLast;
static CPU_INT32U App_ProbeComTxPktLast;
static CPU_INT32U App_ProbeComTxSymLast;
static CPU_INT32U App_ProbeComTxSymByteLast;
static CPU_INT32U App_ProbeComCtrLast;
#if (PROBE_COM_CFG_RS232_EN == DEF_ENABLED)
static CPU_INT32U App_ProbeRS232TxCtrLast;
static CPU_INT32U App_ProbeRS232RxCtrLast;
static CPU_FP32 App_ProbeRS232RxSpd;
static CPU_FP32 App_ProbeRS232TxSpd;
#endif
#endif
#endif
#endif
#if (APP_CFG_PROBE_COM_EN == DEF_ENABLED) ||\
(APP_CFG_OS_PLUGIN_EN == DEF_ENABLED)
static void App_ProbeInit (void);
#endif
#if (APP_CFG_PROBE_OS_PLUGIN_EN == DEF_ENABLED)
static void App_ProbeCallback (void);
#endif
CPU_INT32U i,j;
/*
*********************************************************************************************************
* declare functions
*********************************************************************************************************
*/
static void App_TaskStart (void *p_arg);
int GUI_Init(void);
void BSP_LCD_Init (BSP_LCD_PARAM *LCDInit);
void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex);
void LCD_L0_DrawHLine (int x0, int y, int x1);
void GUI_DrawHLine(int y0, int x0, int x1);
CPU_BOOLEAN BSP_SDRAM_Init (void);
void GLCD_Init (const Int32U *pPain, const Int32U * pPallete);
void GLCD_Ctrl (Boolean bEna);
void DrawArcScale(void);
/*
*********************************************************************************************************
* main()
*
* Description : This is the standard entry point for C code. It is assumed that your code will call
* main() once you have performed all necessary 68HC12 and C initialization.
*
* Argument(s) : none.
*
* Return(s) : none.
*
* Caller(s) : This is the standard entry point.
*
* Note(s) : none.
*********************************************************************************************************
*/
int main (void)
{
CPU_INT08U err;
BSP_IntDisAll(); /* Disable all interrupts until we are ready to accept them */
OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel" */
OSTaskCreateExt((void (*)(void *)) App_TaskStart, /* Create the start task */
(void *) 0,
(OS_STK *)&App_TaskStartStk[APP_CFG_TASK_START_STK_SIZE - 1],
(INT8U ) APP_CFG_TASK_START_PRIO,
(INT16U ) APP_CFG_TASK_START_PRIO,
(OS_STK *)&App_TaskStartStk[0],
(INT32U ) APP_CFG_TASK_START_STK_SIZE,
(void *) 0,
(INT8U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
#if (OS_TASK_NAME_SIZE > 13)
OSTaskNameSet(APP_CFG_TASK_START_PRIO, (CPU_INT08U *)"Start Task", &err);
#endif
OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */
}
/*
*********************************************************************************************************
* App_TaskStart()
*
* Description : The startup task. The uC/OS-II ticker should only be initialize once multitasking starts.
*
* Argument(s) : p_arg Argument passed to 'App_TaskStart()' by 'OSTaskCreate()'.
*
* Return(s) : none.
*
* Caller(s) : This is a task.
*
* Note(s) : (1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
* used. The compiler should not generate any code for this statement.
*
* (2) Interrupts are enabled once the task starts because the I-bit of the CCR register was
* set to 0 by 'OSTaskCreate()'.
*********************************************************************************************************
*/
static void App_TaskStart (void *p_arg)
{
//static CPU_INT32U r;
(void)p_arg;
BSP_Init(); /* Initialize BSP functions */
BSP_SDRAM_Init(); /* Initialize the SDRAM */
#if (OS_TASK_STAT_EN > 0)
OSStatInit(); /* Determine CPU capacity */
#endif
#if (APP_CFG_PROBE_COM_EN == DEF_ENABLED)
App_ProbeInit(); /* Perform the uC/Probe initialization process */
#endif
BSP_LED_On(0);
GLCD_Init((CPU_INT32U *)0, (CPU_INT32U *)0); /* Initialize the GLCD library */
GLCD_Ctrl(DEF_ENABLED); /* Initialize the LCD Controller */
GUI_Init();
GUI_SetBkColor(GUI_RED); GUI_Clear();
GUI_Delay(1000);
GUI_SetBkColor(GUI_BLUE); GUI_Clear();
GUI_Delay(1000);
GUI_SetBkColor(GUI_GREEN); GUI_Clear();
GUI_Delay(1000);
GUI_SetBkColor(GUI_WHITE); GUI_Clear();
GUI_Delay(1000);
GUI_SetBkColor(GUI_WHITE); GUI_Clear();
GUI_Delay(1000);
GUI_SetBkColor(GUI_WHITE); GUI_Clear();
GUI_Delay(1000);
GUI_SetBkColor(GUI_RED); GUI_Clear();
GUI_Delay(1000);
GUI_SetBkColor(GUI_RED); GUI_Clear();
GUI_Delay(1000);
PINSEL4 |= (1 << 10);
PINSEL7 = 0x00000;
PINSEL1 = 0x00004000;
FIO3DIR = 0x1FF0000;
FIO3CLR = 0xFF0000;
FIO2DIR = 0x00000000;
//GUI_Clear();
//GUI_SetColor(GUI_BLUE);
/*
for(i = 0;i <= 200;i++ )
for(j = 0;j <= 200;j++ )
LCD_L0_SetPixelIndex(i,j,0x07e0); */
//LCD_L0_DrawHLine(10, 20, 100);
//GUI_DrawHLine(20, 10, 200);
GUI_DispString("hello world");
GUI_SetBkColor(GUI_RED); GUI_Clear();
GUI_SetTextAlign(GUI_TA_HCENTER|GUI_TA_VCENTER);
GUI_DispDecAt(1234,100,100,4);
GUI_GotoXY(10,10);
GUI_DispString("hello world");
GUI_Delay(1000);
GUI_DispStringAt("HI",0,0);
GUI_DispCEOL();
GUI_GotoXY(10,30);
GUI_DispChars('*',30);
GUI_DispStringAt("Position 50,20",50,60);
GUI_GotoXY(10,70);
GUI_DispString(GUI_GetVersionString());
GUI_Clear();
GUI_SetDrawMode(GUI_DRAWMODE_NORMAL);
GUI_FillCircle(120,64,40);
GUI_SetDrawMode(GUI_DRAWMODE_XOR);
GUI_FillCircle(140,84,40);
GUI_DrawBitmap(&bmMicriumLogo,45,20);
DrawArcScale();
/*
while (DEF_TRUE) {
BSP_LED_On(1);
BEEP_ON();
OSTimeDlyHMSM(0, 0, 0, 100);
BSP_LED_Off(1);
BEEP_OFF();
OSTimeDlyHMSM(0, 0, 0, 100);
}
*/
}
/*
********************************************************************************************************
*
*
*
*
*
*
*
********************************************************************************************************
*/
void DrawArcScale(void)
{
CPU_INT32U x0 = 160;
CPU_INT32U y0 = 180;
CPU_INT32U i;
CPU_INT08U ac[4];
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
GUI_SetPenSize(5);
GUI_SetTextMode(GUI_TM_TRANS);
GUI_SetFont(&GUI_FontComic18B_ASCII);
GUI_SetColor(GUI_BLACK);
GUI_DrawArc(x0,y0,150,150,-30,210);
GUI_Delay(1000);
for(i=0;i<=23;i++)
{
CPU_FP32 a = (-30+i*10)*3.1415926/180;
CPU_INT32U x = -141*cos(a)+x0;
CPU_INT32U y = -141*sin(a)+y0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -