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

📄 main.c

📁 An interrest demo of uCGUI base S3C44B0X
💻 C
字号:

#include <math.h>
#include "option.h"

#include "includes.h"               /* uC/OS interface */
#include "def.h"
#include "44b.h"
#include "44blib.h"

#include "GUI.H"

#include "adc.h"
#include "39vf160.h"
#include "flashrom.h"
/**********************************************************************
 *	main loop
 */
#define DELAY_TIME 50000
int i=0,j=0,k=0;
int nhour,nmin,nsec,Sec_Old=5,sec,nyear,nmonth,nday,nweekday,Old_WeekDay;
int Hour_Old,nhour,Min_Old,nmin,Year_Old,Month_Old,Day_Old;
//task stack size

/* allocate memory for tasks' stacks */
#ifdef  SEMIHOSTED
#define STACKSIZE       (SEMIHOSTED_STACK_NEEDS+64)
#else
#define	 STACKSIZE	       1024
#endif
unsigned int Stack1[STACKSIZE];
unsigned int Stack2[STACKSIZE];
unsigned int Stack3[STACKSIZE];

int      l=0x30;
unsigned char m;
OS_EVENT *Mail;
OS_EVENT *QSem;
void     *QMsgTbl[100];//max 100

void * function[][2]=
{
	(void *)Test_Adc,		"ADC test ",
	(void *)Test_Adc,       "Flash Rom test",
	0,0
};
 
void Test_Ad(void)
{
int  i;
	char aa;
	U16  temp;
	
aa= Uart_Getch();
	if((aa=='Y')||(aa=='y'))
	while(1)
	{
			i=0;
			Uart_Printf("\n");
			while(1)
			{   //display menu
				Uart_Printf("%2d:%s",i+1,function[i][1]);
				i++;
				if((int)(function[i][0])==0)
				{
					Uart_Printf("\n");
					break;
				}
				if((i%4)==0)
					Uart_Printf("\n");
			}
			Uart_Printf("\nSelect the function to test?");
			i=Uart_GetIntNum();
			i--;
			Uart_Printf("\n");
			if(i>=0 && (i<(sizeof(function)/8)) ) 
				( (void (*)(void)) (function[i][0]) )();
	}

}

void Test_Flash(void)
{   int  i;
	char aa;
	U16  temp;
	U16 *Read_Flash=0;
	Uart_Printf("\n*                      -flash ROM 读写测试程序-                         *");
	Uart_Printf("\n*-----------------------Test flash? (Y/N)-------------------------------*");

    SectorErase(0x00000000);  // 0x7ffff 为2M?
		Uart_Printf("\nSector erase finish!");

		for (i=0;i<15096;i++)
			{
	        FlashRead((0x00000000),Read_Flash, 15096);
			if(*Read_Flash!=0 ) Uart_Printf("\nerase failed...");
	        
	        else
	        	 Uart_Printf("\nerase secceed...");
	        	
	        	
			}
			
	
	 Uart_Printf("\nerase end...");
		  
	while(1);

}

void  Task1(void *i)
{
    INT8U Reply, n;
    char txmsg=0x30;
    for (;;)
    {
   	    OSTimeDly(100);
	    /*txmsg++;
        OSMboxPost(Mail, (void *)&txmsg);
        OSQPost(QSem, (void *)&txmsg);
		uHALr_printf("\n send Q");*/
		OS_ENTER_CRITICAL();
		/*GUI_Clear();
		GUI_SetFont(&GUI_Font32B_ASCII);
		GUI_DispStringAt("hehehe",0,0);
		GUI_DispDecAt(txmsg,100,100,10);*/
		Set_Time();
		OS_EXIT_CRITICAL();
		
		//uHALr_printf("\n    ");
	    }
}

void Task2(void *i)
{
    INT8U Reply, n;
   	char *rxmsg;
	unsigned char err;
    for (;;)
    {
   OSTimeDly(100);
    /*rxmsg=OSMboxPend(Mail,0,&err); 
	
	uHALr_printf("\n Got Q1  ");
	m=*rxmsg;
    Uart_SendByte(m);*/
	
	OS_ENTER_CRITICAL();
    Read_Rtc();
      
  	OS_EXIT_CRITICAL();	 
    }
}

void  Task3(void *i)
{
    INT8U Reply, n;
   	char *rxmsg=0;
	unsigned char err;
	
    for (;;)
    {
    OSTimeDly(100);
    /*rxmsg= OSQPend(QSem,0, &err); 
	
	uHALr_printf("\n task3--- Got Q2  ");
	m=*rxmsg;
    Uart_SendByte(m);*/
    
    OS_ENTER_CRITICAL();
    Sec();
	OS_EXIT_CRITICAL();	 
    }
}
 
void Main(void)
{
    int  i;
	char aa;
	U16  temp;
    char Id1 = '1';
    char Id2 = '2';
    char Id3 = '3';
	Port_Init();
	rSYSCFG=CACHECFG;   // Using 8KB Cache//
    ChangePllValue( 56, 3, 1 ) ;
    rPCONG=0x0150;//init. I/O
    rPUPG |=0x02;
    GUI_Init();
    GUI_Clear();
    
    Uart_Init(0,57600);
	Delay(500);
    Uart_Select(0); //Select UART0
	Uart_Printf("Uc-OS ii will run at once!");
	//Test_Flash();
    i=Select_MainFunction();
    if (i==0)  Disp_AdcPicture();	
  
    ARMTargetInit();
    OSInit();
    OSTimeSet(0);
    OSTaskCreate(Task1, (void *)&Id1, (void *)&Stack1[STACKSIZE - 1], 6);
    OSTaskCreate(Task2, (void *)&Id2, (void *)&Stack2[STACKSIZE - 1], 5);
    OSTaskCreate(Task3, (void *)&Id3, (void *)&Stack3[STACKSIZE - 1], 1);
   /* Mail = OSMboxCreate(&Mail);
    QSem=OSQCreate(&QMsgTbl[0], 100);*/
    ARMTargetStart();     
    OSStart();    
}   


/*

#ifdef SEMIHOSTED
	#define	TASK_STACK_SIZE	(64+SEMIHOSTED_STACK_NEEDS)
#else
	#define		TASK_STACK_SIZE	10*1024
#endif

//Task definition
//Main Task
OS_STK Main_Stack[TASK_STACK_SIZE]= {0, };
void Main_Task(void *Id);
#define Main_PRIO       10

//TaskKey
OS_STK TaskKEY_Stack[TASK_STACK_SIZE]= {0, };
void TaskKEY_Task(void *Id);
#define TaskKEY_PRIO     11

//Task1
OS_STK Task1_Stack[TASK_STACK_SIZE]= {0, };
void Task1_Task(void *Id);
#define Task1_PRIO       12

//Task2
OS_STK Task2_Stack[TASK_STACK_SIZE]= {0, };
void Task2_Task(void *Id);
#define Task2_PRIO       14

//Task3
OS_STK Task3_Stack[TASK_STACK_SIZE]= {0, };
void Task3_Task(void *Id);
#define Task3_PRIO       16

extern int ReadAdc(int ch);
OS_EVENT *QSem;
void     *QMsgTbl[100];//max 100

int i=0,j=0,k=0;
int nhour,nmin,nsec,Sec_Old=5,sec,nyear,nmonth,nday,nweekday,Old_WeekDay;
int Hour_Old,nhour,Min_Old,nmin,Year_Old,Month_Old,Day_Old;



void TaskKEY_Task(void *Id)
{
	char txmsg;
	while(1)
	{
	Read_Rtc();
    if(Sec_Old!=nsec)       
           {
            Sec_Old=nsec;
  		    txmsg=nsec;
	        OSQPost(QSem, (void *)&txmsg);
	        OSTimeDly(200);
	        }
	  OSTimeDly(200);
	  }
}

void Main_Task(void *Id)
{
	char *rxmsg=0;
	unsigned char err;
	
	ARMTargetStart();
	
	QSem = OSQCreate(&QMsgTbl[0], 100);
	
	OSTaskCreate(TaskKEY_Task, (void *)0, (OS_STK *)&TaskKEY_Stack[TASK_STACK_SIZE-1],  TaskKEY_PRIO);
	
	while (1)
	{
		rxmsg=(char *)OSQPend(QSem, 0, &err); 
   	               OS_ENTER_CRITICAL();
   	               GUI_Clear();
   	               GUI_DispDecAt((int)rxmsg,0,10,4);
    	           OS_EXIT_CRITICAL();    	
	OSTimeDly(40);
	}
}	

int Main( )
{
	rSYSCFG=CACHECFG;   // Using 8KB Cache//
    Port_Init();
    ChangePllValue( 56, 3, 1 ) ;
    Uart_Init(0,57600);
	Delay(0);
  	Uart_Select(0); //Select UART0//
	Uart_Printf("\n*             system start                  *");
	GUI_Init();
	GUI_Clear();
	GUI_DispStringAt("system start",0,0);
	ARMTargetInit();//initialize Target
	
	OSInit();
	
	OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&Main_Stack[TASK_STACK_SIZE-1],  Main_PRIO);

	OSStart();
	return 0;
}                           



void Main(void)
{
   
    rSYSCFG=CACHECFG;   // Using 8KB Cache//
    Port_Init();
    ChangePllValue( 56, 3, 1 ) ;
    Uart_Init(0,57600);
    Delay(0);
    Uart_Select(0); //Select UART0
    Uart_Printf("\n uc-gui demo");
    GUI_Init(); 
   rPCONG=0x0150;//init. I/O
   rPUPG |=0x02;
   
   while(1)
   {
       Set_Time();
       Read_Rtc();
       Sec();
       if(Sec_Old!=nsec)
         {
          Sec_Old=nsec;
          Sec();
         }

   }
} 
*/


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -