optical/EMBOS/Users/App/apptasks.c

148 lines
2.2 KiB
C
Raw Permalink Normal View History

2025-09-04 01:45:08 +00:00
#include "apptasks.h"
#if (CUR_CORE_BOARD == CORE_BOARD_APP)
#include "inout.h"
#include "trigger.h"
#include "shell.h"
#include "fram.h"
#include "buttons.h"
#include "embfpga.h"
#include "extendboards.h"
#include "operator.h"
#include "paras.h"
#include "corefmc.h"
#include "workctrl.h"
#include "error.h"
#include "encrypt.h"
void TaskPreMainLoop(void);
void AppMainTask(void)
{
SetDefaultOut();
InitTrigger(); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
InitShell(); // <20><>ʼ<EFBFBD><CABC>Shell<6C><6C><EFBFBD><EFBFBD>
InitFram();
InitButtonCtrl(); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
InitEmbFpga();
InitDatFiles(); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
InitMotos(); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
InitExtendBoards(); // <20><>ʼ<EFBFBD><CABC>CAN<41><4E>չ<EFBFBD><D5B9><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>CAN<41><4E><EFBFBD><EFBFBD><EFBFBD>ϵİ忨
InitOperator(); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
InitParas(); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("\r\n================== Application ==================\r\n");
InitCoreFmc();
InitWorkCtrl(); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TaskPreMainLoop(); // һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
do
{
TriggerTask(); //
ShellTask(); //
ExtendBoardTask();
ButtonsTask();
WorkCtrlTask();
OperatorTask();
#if (0) // <20><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>ٶ<EFBFBD>
static u32 timer = 0;
static u32 temp;
static int runcount = 0;
runcount++;
temp = GetMsSoftTimer();
if (temp - timer >= 1000)
{
timer = temp;
printf("run circle = %d/s\r\n", runcount);
runcount = 0;
}
#endif
}while(1);
}
void TaskPreMainLoop(void)
{
int err;
u16 ver;
AddTriggerToList(500, SetLedToggle, NULL); // 500ms <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SetNewParasFlag(PARA_VALID);
RefreshParas(PARA_VALID);
RegDelayFun(DelayRef);
CheckEncrypt(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.....
do
{
TriggerTask();
ShellTask();
ExtendBoardTask();
OperatorTask();
WorkCtrlTask();
}while(0);
ver = GetFpgaHardVersion(); // <20><>ȡӲ<C8A1><D3B2><EFBFBD><EFBFBD><E6B1BE>Ϣ
if (((ver&0xff00)>>8) != FPGA_EMB_VER)
{
err = ERR_FPGA_HARD_ERR;
ReportError(err);
printf("fpga hard ver error\r\n");
}
ver = GetFpgaSoftVersion(); // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>Ϣ
if (ver == 0)
{
err = ERR_FPGA_ERR;
ReportError(err);
printf("fpga soft ver error\r\n");
}
if (WaitAllButtonUp() != 0) // <20>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>̧<EFBFBD><CCA7>
{
err = ERR_BUTTON_NOUP; // <20>ȴ<EFBFBD><C8B4><EFBFBD>ţ̌<C5A5><CCA7><EFBFBD><EFBFBD>ʱ
ReportError(err);
}
CleanButtonTask(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CheckSensorAndPos(); // <20><><EFBFBD><EFBFBD><E2B4AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
printf("PreMainLoop over\r\n");
}
#endif