182 lines
5.5 KiB
C
182 lines
5.5 KiB
C
//****************************************************************************
|
|
// @Module Timer 21
|
|
// @Filename T21.C
|
|
// @Project CL2.0.dav
|
|
//----------------------------------------------------------------------------
|
|
// @Controller Infineon XC886CLM-8FF
|
|
//
|
|
// @Compiler Keil
|
|
//
|
|
// @Codegenerator 1.3
|
|
//
|
|
// @Description: This file contains functions that use the T21 module.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
// @Date 2025/11/17 18:48:53
|
|
//
|
|
//****************************************************************************
|
|
|
|
// USER CODE BEGIN (T21_General,1)
|
|
|
|
// USER CODE END
|
|
|
|
|
|
|
|
//****************************************************************************
|
|
// @Project Includes
|
|
//****************************************************************************
|
|
|
|
#include "MAIN.H"
|
|
|
|
// USER CODE BEGIN (T21_General,2)
|
|
|
|
// USER CODE END
|
|
|
|
|
|
//****************************************************************************
|
|
// @Macros
|
|
//****************************************************************************
|
|
|
|
// USER CODE BEGIN (T21_General,3)
|
|
|
|
// USER CODE END
|
|
|
|
|
|
//****************************************************************************
|
|
// @Defines
|
|
//****************************************************************************
|
|
|
|
// USER CODE BEGIN (T21_General,4)
|
|
|
|
// USER CODE END
|
|
|
|
|
|
//****************************************************************************
|
|
// @Typedefs
|
|
//****************************************************************************
|
|
|
|
// USER CODE BEGIN (T21_General,5)
|
|
|
|
// USER CODE END
|
|
|
|
|
|
//****************************************************************************
|
|
// @Imported Global Variables
|
|
//****************************************************************************
|
|
|
|
// USER CODE BEGIN (T21_General,6)
|
|
|
|
// USER CODE END
|
|
|
|
|
|
//****************************************************************************
|
|
// @Global Variables
|
|
//****************************************************************************
|
|
|
|
// USER CODE BEGIN (T21_General,7)
|
|
|
|
// USER CODE END
|
|
|
|
|
|
//****************************************************************************
|
|
// @External Prototypes
|
|
//****************************************************************************
|
|
|
|
// USER CODE BEGIN (T21_General,8)
|
|
|
|
// USER CODE END
|
|
|
|
|
|
//****************************************************************************
|
|
// @Prototypes Of Local Functions
|
|
//****************************************************************************
|
|
|
|
// USER CODE BEGIN (T21_General,9)
|
|
|
|
// USER CODE END
|
|
|
|
|
|
//****************************************************************************
|
|
// @Function void T21_vInit(void)
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
// @Description This is the initialization function of the Timer 21
|
|
// function library. It is assumed that the SFRs used by this
|
|
// library are in their reset state.
|
|
//
|
|
// The following SFRs and SFR fields will be initialized:
|
|
// T21_RC2H/RC2L - reload/capture timer 21 register
|
|
// T21_T2H/T2L - timer 21 register
|
|
// EX2 - timer 21 interrupt enable
|
|
// T21_T2MOD - timer 21 mode register
|
|
// CP/RL2 - Capture/Reload select
|
|
// EXEN2 - External enable control
|
|
// TR2 - Timer21 run control
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
// @Returnvalue None
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
// @Parameters None
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
// @Date 2025/11/17
|
|
//
|
|
//****************************************************************************
|
|
|
|
// USER CODE BEGIN (T21_Init,1)
|
|
|
|
// USER CODE END
|
|
|
|
void T21_vInit(void)
|
|
{
|
|
// USER CODE BEGIN (T21_Init,2)
|
|
|
|
// USER CODE END
|
|
|
|
// -----------------------------------------------------------------------
|
|
// Operating Mode
|
|
// -----------------------------------------------------------------------
|
|
|
|
/// 16-bit timer function with automatic reload when timer 21 overflows
|
|
/// Prescaler enabled - input clock = fPCLK
|
|
/// the timer 21 resolution is .042 ?s
|
|
/// the timer 21 overflow is 1.000 ?s
|
|
/// timer 21 interrupt: enabled
|
|
/// timer 21 will be started
|
|
|
|
// -----------------------------------------------------------------------
|
|
// Register Initialization
|
|
// -----------------------------------------------------------------------
|
|
|
|
|
|
|
|
SET_RMAP();
|
|
|
|
T21_T2L = 0xE8; // load timer 21 register, low byte
|
|
|
|
T21_T2H = 0xFF; // load timer 21 register, high byte
|
|
|
|
T21_RC2L = 0xE8; // load timer 21 reload/capture register,
|
|
// low byte
|
|
T21_RC2H = 0xFF; // load timer 21 reload/capture register,
|
|
// high byte
|
|
T21_T2MOD = 0x10; // load timer 21 mode register
|
|
/// Timer 21 Interrupt enable bit is set in SHINT_vInit() function
|
|
|
|
// USER CODE BEGIN (T21_Init,3)
|
|
|
|
// USER CODE END
|
|
|
|
TR2 = 1; // start timer
|
|
|
|
RESET_RMAP();
|
|
|
|
} // End of function T21_vInit
|
|
|
|
|
|
// USER CODE BEGIN (T21_General,10)
|
|
|
|
// USER CODE END
|
|
|