⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 app.c

📁 lpc2478+ucosII+ucgui源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
****************************************************************************************
*                            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 + -