📄 main.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 + -