278 lines
7.6 KiB
C
278 lines
7.6 KiB
C
//****************************************************************************
|
||
// @Module Project Settings
|
||
// @Filename MAIN.C
|
||
// @Project CL2.0.dav
|
||
//----------------------------------------------------------------------------
|
||
// @Controller Infineon XC886CLM-8FF
|
||
//
|
||
// @Compiler Keil
|
||
//
|
||
// @Codegenerator 1.3
|
||
//
|
||
// @Description This file contains the Project initialization function.
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2025/1/18 20:45:29
|
||
//
|
||
//****************************************************************************
|
||
|
||
// USER CODE BEGIN (MAIN_General,1)
|
||
|
||
// USER CODE END
|
||
|
||
|
||
|
||
//****************************************************************************
|
||
// @Project Includes
|
||
//****************************************************************************
|
||
|
||
#include "MAIN.H"
|
||
|
||
// USER CODE BEGIN (MAIN_General,2)
|
||
|
||
// USER CODE END
|
||
|
||
|
||
//****************************************************************************
|
||
// @Macros
|
||
//****************************************************************************
|
||
|
||
// USER CODE BEGIN (MAIN_General,3)
|
||
|
||
// USER CODE END
|
||
|
||
|
||
//****************************************************************************
|
||
// @Defines
|
||
//****************************************************************************
|
||
|
||
// USER CODE BEGIN (MAIN_General,4)
|
||
|
||
// USER CODE END
|
||
|
||
|
||
//****************************************************************************
|
||
// @Typedefs
|
||
//****************************************************************************
|
||
|
||
// USER CODE BEGIN (MAIN_General,5)
|
||
|
||
// USER CODE END
|
||
|
||
|
||
//****************************************************************************
|
||
// @Imported Global Variables
|
||
//****************************************************************************
|
||
|
||
// USER CODE BEGIN (MAIN_General,6)
|
||
|
||
// USER CODE END
|
||
|
||
|
||
//****************************************************************************
|
||
// @Global Variables
|
||
//****************************************************************************
|
||
|
||
// USER CODE BEGIN (MAIN_General,7)
|
||
|
||
// USER CODE END
|
||
|
||
|
||
//****************************************************************************
|
||
// @External Prototypes
|
||
//****************************************************************************
|
||
|
||
|
||
// USER CODE BEGIN (MAIN_General,8)
|
||
|
||
// USER CODE END
|
||
|
||
|
||
//****************************************************************************
|
||
// @Prototypes Of Local Functions
|
||
//****************************************************************************
|
||
|
||
// USER CODE BEGIN (MAIN_General,9)
|
||
|
||
// USER CODE END
|
||
|
||
|
||
//****************************************************************************
|
||
// @Function void MAIN_vInit(void)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description This function initializes the microcontroller. It is
|
||
// assumed that the SFRs are in their reset state.
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2025/1/18
|
||
//
|
||
//****************************************************************************
|
||
|
||
// USER CODE BEGIN (MAIN_Init,1)
|
||
|
||
// USER CODE END
|
||
|
||
void MAIN_vInit(void)
|
||
{
|
||
// USER CODE BEGIN (MAIN_Init,2)
|
||
|
||
// USER CODE END
|
||
|
||
/// -----------------------------------------------------------------------
|
||
/// Configuration of the System Clock:
|
||
/// -----------------------------------------------------------------------
|
||
/// - External Osc is selected (configuration is done in the startup file
|
||
/// 'START_XC.A51')
|
||
/// - PLL Mode, NDIV = 24
|
||
/// - input frequency is 8 MHz
|
||
|
||
|
||
// FCLK runs at 2 times the frequency of PCLK.
|
||
SFR_PAGE(_su1, noSST); // switch to page1
|
||
|
||
CMCON = 0x10; // load Clock Control Register
|
||
|
||
SFR_PAGE(_su0, noSST); // switch to page0
|
||
|
||
|
||
/// *********************************************************************************
|
||
/// Note : All peripheral related IO configurations are done in the
|
||
/// respective peripheral modules (alternate functions selection)
|
||
/// *********************************************************************************
|
||
|
||
/// Initialization of module 'GPIO'
|
||
IO_vInit();
|
||
|
||
/// Initialization of module 'Timer 2'
|
||
T2_vInit();
|
||
|
||
/// Initialization of module 'Watch Dog Timer'
|
||
WDT_vInit();
|
||
|
||
/// Initialization of module 'Power Saving Modes'
|
||
PS_vInit();
|
||
|
||
/// Initialization of module 'MultiCAN Controller '
|
||
CAN_vInit();
|
||
|
||
/// Initialization of 'Shared interrupts'
|
||
SHINT_vInit();
|
||
|
||
// Interrupt Priority
|
||
|
||
IP = 0x00; // load Interrupt Priority Register
|
||
IPH = 0x00; // load Interrupt Priority High Register
|
||
IP1 = 0x00; // load Interrupt Priority 1 Register
|
||
IPH1 = 0x00; // load Interrupt Priority 1 High Register
|
||
|
||
|
||
// USER CODE BEGIN (MAIN_Init,3)
|
||
|
||
// USER CODE END
|
||
|
||
//// Interrupt structure 2 mode 0 is selected.
|
||
|
||
//// Interrupt service routine choice 2 is selected.
|
||
|
||
// globally enable interrupts
|
||
EA = 1;
|
||
|
||
} // End of function MAIN_vInit
|
||
|
||
|
||
//****************************************************************************
|
||
// @Function void main(void)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description This is the main function.
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2025/1/18
|
||
//
|
||
//****************************************************************************
|
||
|
||
// USER CODE BEGIN (MAIN_Main,1)
|
||
|
||
// USER CODE END
|
||
|
||
void main(void)
|
||
{
|
||
// USER CODE BEGIN (MAIN_Main,2)
|
||
// ulong i,j;
|
||
// static ubyte tmp[8] = {0};
|
||
// for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
// USER CODE END
|
||
|
||
MAIN_vInit();
|
||
|
||
// USER CODE BEGIN (MAIN_Main,3)
|
||
SCU_PAGE = 0;
|
||
SP = 0xC0; // Initialize Stack Pointer to 0xC0;
|
||
// CanTransmit();
|
||
|
||
// BM8563_InitTime();
|
||
// BM8563_Set4HourAlarm();//
|
||
KGF_PIN = 1;//KGF<47><46><EFBFBD><EFBFBD>
|
||
BATTERY_PIN = 1;
|
||
|
||
|
||
SetConfig(CFG_MPS_Single,CFG_Repeatbility_High);
|
||
// FlgCan_1 = 1;//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ʱһ<CAB1><D2BB>ʱ<EFBFBD><CAB1><EFBFBD>ٵ<EFBFBD><D9B5><EFBFBD>CAN<41><4E><EFBFBD><EFBFBD>
|
||
// USER CODE END
|
||
|
||
// SetConfig(1,CFG_MPS_Single,CFG_Repeatbility_High);
|
||
|
||
RomNum = Search_ROM(romid); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>оƬ<D0BE><C6AC><EFBFBD><EFBFBD>ROM ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>romid<69><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<D0BE><C6AC><EFBFBD><EFBFBD>
|
||
|
||
// if(1 == power_state)//<2F><><EFBFBD>绽<EFBFBD>ѲŸ<D1B2><C5B8><EFBFBD>ʱ<EFBFBD><CAB1>
|
||
// {
|
||
bm8563SetTime(&inittime);//20250802 <20><>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʱ<CEAA>䲻<EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
// }
|
||
|
||
|
||
while(1)
|
||
{
|
||
|
||
// USER CODE BEGIN (MAIN_Main,4)
|
||
// for(j=0;j<200;j++){for(i=0;i<133;i++)WDT_vRefresh();}
|
||
// tmp[3] = (ubyte)CntCan_1;
|
||
// tmp[2] = (ubyte)(CntCan_1>>8);
|
||
|
||
// SwSample();
|
||
CanRXTX();
|
||
CanErrorProcess();
|
||
WDT_vRefresh();
|
||
// LedDr();
|
||
BootMain();
|
||
|
||
|
||
// tmp[1] = (ubyte)CntCan_1;
|
||
// tmp[0] = (ubyte)(CntCan_1>>8);
|
||
// CAN_vLoadData(0x2, (ulong *)(tmp)); // Add this Line
|
||
// CAN_vTransmit(2);
|
||
// for(j=0;j<200;j++){for(i=0;i<133;i++)WDT_vRefresh();}
|
||
// USER CODE END
|
||
|
||
}
|
||
|
||
} // End of function main
|
||
|
||
|
||
// USER CODE BEGIN (MAIN_General,10)
|
||
|
||
// USER CODE END
|
||
|