fix:修改RS485通讯引脚
RS485通讯引脚改为串口2,引脚:RX:PB05 TX:PB04 RS485_DR:PB03
This commit is contained in:
774
Source/include/apt32f102.h
Normal file
774
Source/include/apt32f102.h
Normal file
@@ -0,0 +1,774 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file apt32f102_initial.c
|
||||
* @author APT AE Team
|
||||
* @version V1.08
|
||||
* @date 2018/11/01
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef _apt32f102_H
|
||||
#define _apt32f102_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "apt32f102_types_local.h"
|
||||
#include "apt32f102_ck801.h"
|
||||
|
||||
/**
|
||||
@brief CK801 bits Structure
|
||||
*/
|
||||
typedef struct {
|
||||
volatile unsigned int ReservedA[4]; //0xE000E000
|
||||
volatile unsigned int CORET_CSR; //0xE000E010
|
||||
volatile unsigned int CORET_RVR; //0xE000E014
|
||||
volatile unsigned int CORET_CVR; //0xE000E018
|
||||
volatile unsigned int CORET_CALIB; //0xE000E01C
|
||||
volatile unsigned int ReservedB[56]; //0xE000E020
|
||||
volatile unsigned int ISER; //0xE000E100
|
||||
volatile unsigned int ReservedC[15]; //
|
||||
volatile unsigned int IWER; //0xE000E140
|
||||
volatile unsigned int ReservedD[15]; //
|
||||
volatile unsigned int ICER; //0xE000E180
|
||||
volatile unsigned int ReservedE[15]; //
|
||||
volatile unsigned int IWDR; //0xE000E1C0
|
||||
volatile unsigned int ReservedF[15]; //
|
||||
volatile unsigned int ISPR; //0xE000E200
|
||||
volatile unsigned int ReservedG[31]; //
|
||||
volatile unsigned int ICPR; //0xE000E280
|
||||
volatile unsigned int ReservedH[31]; //
|
||||
volatile unsigned int IABR; //0xE000E300
|
||||
volatile unsigned int ReservedI[63]; //
|
||||
volatile unsigned int IPR[8]; //0xE000E400 ~ 0xE000E41C
|
||||
volatile unsigned int ReservedJ[504]; //
|
||||
volatile unsigned int ISR; //0xE000EC00
|
||||
volatile unsigned int IPTR; //0xE000EC04
|
||||
} CSP_CK801_T;
|
||||
/**
|
||||
@brief IFC bits Structure
|
||||
*/
|
||||
typedef volatile struct {
|
||||
volatile unsigned int IDR ;
|
||||
volatile unsigned int CEDR ;
|
||||
volatile unsigned int SRR ;
|
||||
volatile unsigned int CMR ;
|
||||
volatile unsigned int CR ;
|
||||
volatile unsigned int MR ;
|
||||
volatile unsigned int FM_ADDR ;
|
||||
volatile unsigned int Reserved ;
|
||||
volatile unsigned int KR ;
|
||||
volatile unsigned int IMCR ;
|
||||
volatile unsigned int RISR ;
|
||||
volatile unsigned int MISR ;
|
||||
volatile unsigned int ICR ;
|
||||
} CSP_IFC_T ;
|
||||
/**
|
||||
@brief SYSCON bits Structure
|
||||
*/
|
||||
typedef volatile struct { /*!< SYSCON Structure */
|
||||
volatile unsigned int IDCCR; /*!< 0x000: Identification & System Controller Clock Control Register */
|
||||
volatile unsigned int GCER; /*!< 0x004: System Controller General Control Enable Register */
|
||||
volatile unsigned int GCDR; /*!< 0x008: System Controller General Control Disable Register */
|
||||
volatile unsigned int GCSR; /*!< 0x00C: System Controller General Control Status Register */
|
||||
volatile unsigned int CKST; /*!< 0x010*/
|
||||
volatile unsigned int RAMCHK; /*!< 0x014*/
|
||||
volatile unsigned int EFLCHK; /*!< 0x018*/
|
||||
volatile unsigned int SCLKCR; /*!< 0x01C: System Controller System Clock Selection & Division Register */
|
||||
volatile unsigned int PCLKCR; /*!< 0x020: System Controller Peripheral Clock Selection & Division Register */
|
||||
volatile unsigned int _RSVD0; /*!< 0x024*/
|
||||
volatile unsigned int PCER0; /*!< 0x028: System Controller Peripheral Clock Enable Register */
|
||||
volatile unsigned int PCDR0; /*!< 0x02C: System Controller Peripheral Clock Disable Register */
|
||||
volatile unsigned int PCSR0; /*!< 0x030: System Controller Peripheral Clock Status Register */
|
||||
volatile unsigned int PCER1; /*!< 0x034: System Controller Peripheral Clock Enable Register */
|
||||
volatile unsigned int PCDR1; /*!< 0x038: System Controller Peripheral Clock Disable Register */
|
||||
volatile unsigned int PCSR1; /*!< 0x03C: System Controller Peripheral Clock Status Register */
|
||||
volatile unsigned int OSTR; /*!< 0x040: System Controller External OSC Stable Time Control Register */
|
||||
volatile unsigned int _RSVD1; /*!< 0x044: System Controller PLL Stable Time Control Register */
|
||||
volatile unsigned int _RSVD2; /*!< 0x048: System Controller PLL PMS Value Control Register */
|
||||
volatile unsigned int LVDCR; /*!< 0x04C: System Controller LVD Control Register */
|
||||
volatile unsigned int CLCR; /*!< 0x050: System Controller IMOSC Fine Adjustment Register*/
|
||||
volatile unsigned int PWRCR; /*!< 0x054: System Controller Power Control Register */
|
||||
volatile unsigned int PWRKEY; /*!< 0x058: System Controller Power Control Register */
|
||||
volatile unsigned int _RSVD3; /*!< 0x05C: */
|
||||
volatile unsigned int _RSVD4; /*!< 0x060: */
|
||||
volatile unsigned int OPT1; /*!< 0x064: System Controller OSC Trim Control Register */
|
||||
volatile unsigned int OPT0; /*!< 0x068: System Controller Protection Control Register */
|
||||
volatile unsigned int WKCR; /*!< 0x06C: System Controller Clock Quality Check Control Register */
|
||||
volatile unsigned int _RSVD5; /*!< 0x070: System Controller Clock Quality Check Control Register */
|
||||
volatile unsigned int IMER; /*!< 0x074: System Controller Interrupt Enable Register */
|
||||
volatile unsigned int IMDR; /*!< 0x078: System Controller Interrupt Disable Register */
|
||||
volatile unsigned int IMCR; /*!< 0x07C: System Controller Interrupt Mask Register */
|
||||
volatile unsigned int IAR; /*!< 0x080: System Controller Interrupt Active Register */
|
||||
volatile unsigned int ICR; /*!< 0x084: System Controller Clear Status Register */
|
||||
volatile unsigned int RISR; /*!< 0x088: System Controller Raw Interrupt Status Register */
|
||||
volatile unsigned int MISR; /*!< 0x08C: System Controller Raw Interrupt Status Register */
|
||||
volatile unsigned int RSR; /*!< 0x090: System Controller Raw Interrupt Status Register */
|
||||
volatile unsigned int EXIRT; /*!< 0x094: System Controller Reset Status Register */
|
||||
volatile unsigned int EXIFT; /*!< 0x098: System Controller External Interrupt Mode 1 (Positive Edge) Register */
|
||||
volatile unsigned int EXIER; /*!< 0x09C: System Controller External Interrupt Mode 2 (Negative Edge) Register */
|
||||
volatile unsigned int EXIDR; /*!< 0x0A0: System Controller External Interrupt Enable Register */
|
||||
volatile unsigned int EXIMR; /*!< 0x0A4: System Controller External Interrupt Disable Register */
|
||||
volatile unsigned int EXIAR; /*!< 0x0A8: System Controller External Interrupt Mask Register */
|
||||
volatile unsigned int EXICR; /*!< 0x0AC: System Controller External Interrupt Active Register */
|
||||
volatile unsigned int EXIRS; /*!< 0x0B0: System Controller External Interrupt Clear Status Register */
|
||||
volatile unsigned int IWDCR; /*!< 0x0B4: System Controller Independent Watchdog Control Register */
|
||||
volatile unsigned int IWDCNT; /*!< 0x0B8: SystCem Controller Independent Watchdog Counter Value Register */
|
||||
volatile unsigned int IWDEDR; /*!< 0x0BC: System Controller Independent Watchdog Enable/disable Register*/
|
||||
volatile unsigned int IOMAP0; /*!< 0x0C0: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int IOMAP1; /*!< 0x0C4: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int CINF0; /*!< 0x0C8: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int CINF1; /*!< 0x0CC: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int FINF0; /*!< 0x0D0: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int FINF1; /*!< 0x0D4: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int FINF2; /*!< 0x0D8: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int _RSVD6; /*!< 0x0DC: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int ERRINF; /*!< 0x0E0:*/
|
||||
volatile unsigned int UID0 ; /*!< 0x0E4: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int UID1 ; /*!< 0x0E8: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int UID2 ; /*!< 0x0EC: Customer Information Content mirror of 1st byte*/
|
||||
volatile unsigned int PWROPT; /*!< 0x0F0: Power recovery timmming control */
|
||||
volatile unsigned int EVTRG; /*!< 0x0F4: Trigger gen */
|
||||
volatile unsigned int EVPS; /*!< 0x0F8: Trigger prs */
|
||||
volatile unsigned int EVSWF; /*!< 0x0FC: Trigger software force */
|
||||
volatile unsigned int UREG0; /*!< 0x100: User defined reg0 */
|
||||
volatile unsigned int UREG1; /*!< 0x104: User defined reg1 */
|
||||
volatile unsigned int UREG2; /*!< 0x108: User defined reg0 */
|
||||
volatile unsigned int UREG3; /*!< 0x10C: User defined reg1 */
|
||||
} CSP_SYSCON_T;
|
||||
/**
|
||||
@brief ETCB bits Structure
|
||||
*/
|
||||
typedef volatile struct
|
||||
{
|
||||
volatile unsigned int EN; /* ETCB Enable */
|
||||
volatile unsigned int SWTRG; /* ETCB Software Trigger Generator */
|
||||
volatile unsigned int CH0CON0; /* ETCB Channel 0 Control Register 0 */
|
||||
volatile unsigned int CH0CON1; /* ETCB Channel 0 Control Register 1 */
|
||||
volatile unsigned int CH1CON0; /* ETCB Channel 1 Control Register 0 */
|
||||
volatile unsigned int CH1CON1; /* ETCB Channel 1 Control Register 1 */
|
||||
volatile unsigned int CH2CON0; /* ETCB Channel 2 Control Register 0 */
|
||||
volatile unsigned int CH2CON1; /* ETCB Channel 2 Control Register 1 */
|
||||
volatile unsigned int _RSVD0;
|
||||
volatile unsigned int _RSVD1;
|
||||
volatile unsigned int _RSVD2;
|
||||
volatile unsigned int _RSVD3;
|
||||
volatile unsigned int CH3CON; /* ETCB Channel 3 Control Register */
|
||||
volatile unsigned int CH4CON; /* ETCB Channel 3 Control Register */
|
||||
volatile unsigned int CH5CON; /* ETCB Channel 3 Control Register */
|
||||
volatile unsigned int CH6CON; /* ETCB Channel 3 Control Register */
|
||||
volatile unsigned int CH7CON; /* ETCB Channel 3 Control Register */
|
||||
} CSP_ETCB_T, *CSP_ETCB_PTR;
|
||||
/**
|
||||
@brief TKEY bits Structure
|
||||
*/
|
||||
typedef volatile struct
|
||||
{
|
||||
volatile unsigned int TCH_CCR; /* Control Register */
|
||||
volatile unsigned int TCH_CON0; /* Control Register */
|
||||
volatile unsigned int TCH_CON1; /* Control Register */
|
||||
volatile unsigned int TCH_SCCR; /* Hardmacro control */
|
||||
volatile unsigned int TCH_SENPRD; /* Sensing target value */
|
||||
volatile unsigned int TCH_VALBUF; /* Reference value capture value*/
|
||||
volatile unsigned int TCH_SENCNT; /* Sensing counter value*/
|
||||
volatile unsigned int TCH_TCHCNT; /* Reference counter value*/
|
||||
volatile unsigned int TCH_THR; /* Match Status */
|
||||
volatile unsigned int Reserved0;
|
||||
volatile unsigned int TCH_RISR; /* Interrupt Enable */
|
||||
volatile unsigned int TCH_IER; /* Interrupt Clear */
|
||||
volatile unsigned int TCH_ICR; /* Sensing target value */
|
||||
volatile unsigned int TCH_RWSR; /* Reference value capture value*/
|
||||
volatile unsigned int TCH_OVW_THR; /* Sensing counter value*/
|
||||
volatile unsigned int TCH_OVF; /* Reference counter value*/
|
||||
volatile unsigned int TCH_OVT; /* Match Status */
|
||||
volatile unsigned int TCH_SYNCR; /* Interrupt Enable */
|
||||
volatile unsigned int TCH_EVTRG; /* Interrupt Clear */
|
||||
volatile unsigned int TCH_EVPS; /* Sensing target value */
|
||||
volatile unsigned int TCH_EVSWF; /* Reference value capture value*/
|
||||
} CSP_TKEY_T, *CSP_TKEY_PTR;
|
||||
/**
|
||||
@brief TKEY advance bits Structure
|
||||
*/
|
||||
typedef volatile struct
|
||||
{
|
||||
volatile unsigned int TCH_CHVAL[18]; /* Reference value capture value */
|
||||
volatile unsigned int TCH_SEQCON[18]; /* SEQ Hardmacro control */
|
||||
} CSP_TKEYBUF_T, *CSP_TKEYBUF_PTR;
|
||||
/**
|
||||
@brief ADC0 bits Structure
|
||||
*/
|
||||
typedef volatile struct
|
||||
{
|
||||
volatile unsigned int ECR; /**< Clock Enable Register */
|
||||
volatile unsigned int DCR; /**< Clock Disable Register */
|
||||
volatile unsigned int PMSR; /**< Power Management Status Register */
|
||||
volatile unsigned int Reserved0;
|
||||
volatile unsigned int CR; /**< Control Register */
|
||||
volatile unsigned int MR; /**< Mode Register */
|
||||
volatile unsigned int SHR;
|
||||
volatile unsigned int CSR; /**< Clear Status Register */
|
||||
volatile unsigned int SR; /**< Status Register */
|
||||
volatile unsigned int IER; /**< Interrupt Enable Register */
|
||||
volatile unsigned int IDR; /**< Interrupt Disable Register */
|
||||
volatile unsigned int IMR; /**< Interrupt Mask Register */
|
||||
volatile unsigned int SEQ[16]; /**< Conversion Mode Register 0~11 */
|
||||
volatile unsigned int PRI; /**< Conversion Priority Register */
|
||||
volatile unsigned int TDL0; /**< Trigger Delay control Register */
|
||||
volatile unsigned int TDL1; /**< Trigger Delay control Register */
|
||||
volatile unsigned int SYNCR; /**< Sync Control Register */
|
||||
volatile unsigned int Reserved1; /**< Trigger Filter Control Register */
|
||||
volatile unsigned int Reserved2; /**< Trigger Filter Window Register */
|
||||
volatile unsigned int EVTRG; /**< Event Trigger Control Register */
|
||||
volatile unsigned int EVPS; /**< Event Prescale Register */
|
||||
volatile unsigned int EVSWF; /**< Event Softtrig Register */
|
||||
volatile unsigned int ReservedD[27];
|
||||
volatile unsigned int DR[16]; /**< Convert Data Register */
|
||||
volatile unsigned int CMP0; /**< Comparison Data Register */
|
||||
volatile unsigned int CMP1; /**< Comparison Data Register */
|
||||
volatile unsigned int DRMASK;
|
||||
} CSP_ADC12_T, *CSP_ADC12_PTR;
|
||||
/**
|
||||
@brief GPIOX bits Structure
|
||||
*/
|
||||
typedef volatile struct
|
||||
{
|
||||
volatile unsigned int CONLR; /**< Control Low Register */
|
||||
volatile unsigned int CONHR; /**< Control High Register */
|
||||
volatile unsigned int WODR; /**< Write Output Data Register */
|
||||
volatile unsigned int SODR; /**< Set Output Data (bit-wise) Register */
|
||||
volatile unsigned int CODR; /**< Clear Output Data (bit-wise) Register*/
|
||||
volatile unsigned int ODSR; /**< Output Data Status Register */
|
||||
volatile unsigned int PSDR; /**< Pin Data Status Register */
|
||||
volatile unsigned int FLTEN;
|
||||
volatile unsigned int PUDR; /**< IO Pullup_Pulldown Register */
|
||||
volatile unsigned int DSCR; /**< Output Driving Strength Register */
|
||||
volatile unsigned int OMCR; /**< Slew-rate, Open-Drain Control */
|
||||
volatile unsigned int IECR; /**< EXI enable control */
|
||||
volatile unsigned int IEER;
|
||||
volatile unsigned int IEDR;
|
||||
} CSP_GPIO_T, *CSP_GPIO_PTR;
|
||||
|
||||
typedef volatile struct
|
||||
{
|
||||
volatile unsigned int IGRPL; /**< EXI group control */
|
||||
volatile unsigned int IGRPH; /**< EXI group control */
|
||||
volatile unsigned int IGREX;
|
||||
volatile unsigned int IO_CLKEN;
|
||||
} CSP_IGRP_T, *CSP_IGRP_PTR;
|
||||
/**
|
||||
@brief UART0~UART1 bits Structure
|
||||
*/
|
||||
typedef volatile struct
|
||||
{
|
||||
volatile unsigned int DATA; /**< Write and Read Data Register */
|
||||
volatile unsigned int SR; /**< Status Register */
|
||||
volatile unsigned int CTRL; /**< Control Register */
|
||||
volatile unsigned int ISR; /**< Interrupt Status Register */
|
||||
volatile unsigned int BRDIV; /**< Baud Rate Generator Register */
|
||||
volatile unsigned int ReservedA[20];
|
||||
} CSP_UART_T, *CSP_UART_PTR;
|
||||
/**
|
||||
@brief SPI0 bits Structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile unsigned int CR0; /**< Control Register 0 */
|
||||
volatile unsigned int CR1; /**< Control Register 1 */
|
||||
volatile unsigned int DR; /**< Receive FIFO(read) and transmit FIFO data register(write) */
|
||||
volatile unsigned int SR; /**< Status register */
|
||||
volatile unsigned int CPSR; /**< Clock prescale register */
|
||||
volatile unsigned int IMSCR; /**< Interrupt mask set and clear register */
|
||||
volatile unsigned int RISR; /**< Raw interrupt status register */
|
||||
volatile unsigned int MISR; /**< Masked interrupt status register */
|
||||
volatile unsigned int ICR; /**< Interrupt clear register */
|
||||
} CSP_SSP_T, *CSP_SSP_PTR;
|
||||
/**
|
||||
@brief SIO0 bits Structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile unsigned int CR;
|
||||
volatile unsigned int TXCR0;
|
||||
volatile unsigned int TXCR1;
|
||||
volatile unsigned int TXBUF;
|
||||
volatile unsigned int RXCR0;
|
||||
volatile unsigned int RXCR1;
|
||||
volatile unsigned int RXCR2;
|
||||
volatile unsigned int RXBUF;
|
||||
volatile unsigned int RISR;
|
||||
volatile unsigned int MISR;
|
||||
volatile unsigned int IMCR;
|
||||
volatile unsigned int ICR;
|
||||
} CSP_SIO_T, *CSP_SIO_PTR;
|
||||
/**
|
||||
@brief I2C0 bits Structure
|
||||
*/
|
||||
typedef volatile struct
|
||||
{
|
||||
unsigned int CR; /* I2C Control */
|
||||
unsigned int TADDR; /* I2C Target Address */
|
||||
unsigned int SADDR; /* I2C Slave Address */
|
||||
unsigned int ReservedD;
|
||||
unsigned int DATA_CMD; /* I2C Rx/Tx Data Buffer and Command */
|
||||
unsigned int SS_SCLH; /* I2C Standard Speed SCL High Count */
|
||||
unsigned int SS_SCLL; /* I2C Standard Speed SCL Low Count */
|
||||
unsigned int FS_SCLH; /* I2C Fast mode and Fast Plus SCL High Count*/
|
||||
unsigned int FS_SCLL; /* I2C Fast mode and Fast Plus SCL Low Count*/
|
||||
unsigned int ReservedA; /* I2C High Speed SCL High Count */
|
||||
unsigned int ReservedC; /* I2C High Speed SCL Low Count */
|
||||
unsigned int RX_FLSEL; /* I2C Receive FIFO Threshold */
|
||||
unsigned int TX_FLSEL; /* I2C Transmit FIFO Threshold */
|
||||
unsigned int RX_FL; /* I2C Receive FIFO Level */
|
||||
unsigned int TX_FL; /* I2C Transmit FIFO Level */
|
||||
unsigned int ENABLE; /* I2C Enable */
|
||||
unsigned int STATUS; /* I2C Status */
|
||||
unsigned int ReservedB; /* I2C Enable Status */
|
||||
unsigned int SDA_TSETUP; /* I2C SDA Setup Time */
|
||||
unsigned int SDA_THOLD; /* I2C SDA hold time length */
|
||||
unsigned int SPKLEN; /* I2C SS and FS Spike Suppression Limit */
|
||||
//unsigned int HS_SPKLEN; /* I2C HS Spike Suppression Limit */
|
||||
unsigned int ReservedE;
|
||||
unsigned int MISR; /* I2C Masked Interrupt Status */
|
||||
unsigned int IMSCR; /* I2C Interrupt Enable */
|
||||
unsigned int RISR; /* I2C Raw Interrupt Status */
|
||||
unsigned int ICR; /* I2C Interrupt Clear */
|
||||
unsigned int ReservedF;
|
||||
unsigned int SCL_TOUT; /* I2C SCL Stuck at Low Timeout */
|
||||
unsigned int SDA_TOUT; /* I2C SDA Stuck at Low Timeout */
|
||||
unsigned int TX_ABRT; /* I2C Transmit Abort Status */
|
||||
unsigned int GCALL; /* I2C ACK General Call */
|
||||
unsigned int NACK; /* I2C Generate SLV_DATA_NACK */
|
||||
} CSP_I2C_T, *CSP_I2C_PTR;
|
||||
/**
|
||||
@brief CA0 bits Structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile unsigned int CADATAH; /**< DATA High Register */
|
||||
volatile unsigned int CADATAL; /**< DATA Low Register */
|
||||
volatile unsigned int CACON; /**< Control Register */
|
||||
volatile unsigned int INTMASK; /**< Interrupt Mask CR */
|
||||
} CSP_CA_T, *CSP_CA_PTR;
|
||||
/**
|
||||
@brief GPTX bits Structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile unsigned int CEDR; //0x0000 Clock control & ID
|
||||
volatile unsigned int RSSR; //0x0004 Start & Stop Ctrl
|
||||
volatile unsigned int PSCR; //0x0008 Clock prescaler
|
||||
volatile unsigned int CR; //0x000C Control register
|
||||
volatile unsigned int SYNCR; //0x0010 Synchronization control reg
|
||||
volatile unsigned int GLDCR; //0x0014 Global load control reg
|
||||
volatile unsigned int GLDCFG; //0x0018 Global load config
|
||||
volatile unsigned int GLDCR2; //0x001C Global load control reg2
|
||||
volatile unsigned int Reserved0; //0x0020
|
||||
volatile unsigned int PRDR; //0x0024 Period reg
|
||||
volatile unsigned int Reserved1; //0x0028
|
||||
volatile unsigned int CMPA; //0x002C Compare Value A
|
||||
volatile unsigned int CMPB; //0x0030 Compare Value B
|
||||
volatile unsigned int Reserved2; //0x0034
|
||||
volatile unsigned int Reserved3; //0x0038
|
||||
volatile unsigned int CMPLDR; //0x003C Cmp reg load control
|
||||
volatile unsigned int CNT; //0x0040 Counter reg
|
||||
volatile unsigned int AQLDR; //0x0044 AQ reg load control
|
||||
volatile unsigned int AQCRA; //0x0048 Action qualify of ch-A
|
||||
volatile unsigned int AQCRB; //0x004C Action qualify of ch-B
|
||||
volatile unsigned int Reserved4; //0x0050
|
||||
volatile unsigned int Reserved5; //0x0054
|
||||
volatile unsigned int Reserved6; //0x0058
|
||||
volatile unsigned int AQOSF; //0x005C AQ output one-shot software forcing
|
||||
volatile unsigned int AQCSF; //0x0060 AQ output conti-software forcing
|
||||
volatile unsigned int Reserved7; //0x0064
|
||||
volatile unsigned int Reserved8; //0x0068
|
||||
volatile unsigned int Reserved9; //0x006c
|
||||
volatile unsigned int Reserved10; //0x0070
|
||||
volatile unsigned int Reserved11; //0x0074
|
||||
volatile unsigned int Reserved12; //0x0078
|
||||
volatile unsigned int Reserved13; //0x007c
|
||||
volatile unsigned int Reserved14; //0x0080
|
||||
volatile unsigned int Reserved15; //0x0084
|
||||
volatile unsigned int Reserved16; //0x0088
|
||||
volatile unsigned int Reserved17; //0x008c
|
||||
volatile unsigned int Reserved18; //0x0090
|
||||
volatile unsigned int Reserved19; //0x0094
|
||||
volatile unsigned int Reserved20; //0x0098
|
||||
volatile unsigned int Reserved21; //0x009c
|
||||
volatile unsigned int Reserved22; //0x00a0
|
||||
volatile unsigned int Reserved23; //0x00a4
|
||||
volatile unsigned int Reserved24; //0x00a8
|
||||
volatile unsigned int Reserved25; //0x00ac
|
||||
volatile unsigned int Reserved26; //0x00b0
|
||||
volatile unsigned int Reserved27; //0x00b4
|
||||
volatile unsigned int TRGFTCR; //0x00B8 Trigger Filter control reg
|
||||
volatile unsigned int TRGFTWR; //0x00BC Trigger filter window
|
||||
volatile unsigned int EVTRG; //0x00C0 Event trigger setting
|
||||
volatile unsigned int EVPS; //0x00C4 Event presaler
|
||||
volatile unsigned int EVCNTINIT; //0x00C8
|
||||
volatile unsigned int EVSWF; //0x00CC Event software forcing
|
||||
volatile unsigned int RISR; //0x00D0 Interrupt RISR
|
||||
volatile unsigned int MISR; //0x00D4 Interrupt MISR
|
||||
volatile unsigned int IMCR; //0x00D8 Interrupt IMCR
|
||||
volatile unsigned int ICR; //0x00DC Interrupt clear
|
||||
volatile unsigned int REGLINK; //0x00E0 Register link
|
||||
|
||||
}CSP_GPT_T,*CSP_GPT_PTR;
|
||||
/**
|
||||
@brief EPT0 bits Structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile unsigned int CEDR; //0x0000 Clock control & ID
|
||||
volatile unsigned int RSSR; //0x0004 Start & Stop Ctrl
|
||||
volatile unsigned int PSCR; //0x0008 Clock prescaler
|
||||
volatile unsigned int CR; //0x000C Control register
|
||||
volatile unsigned int SYNCR; //0x0010 Synchronization control reg
|
||||
volatile unsigned int GLDCR; //0x0014 Global load control reg
|
||||
volatile unsigned int GLDCFG; //0x0018 Global load config
|
||||
volatile unsigned int GLDCR2; //0x001C Global load control reg2
|
||||
volatile unsigned int HRCFG; //0x0020
|
||||
volatile unsigned int PRDR; //0x0024 Period reg
|
||||
volatile unsigned int PHSR; //0x0028 Phase control reg
|
||||
volatile unsigned int CMPA; //0x002C Compare Value A
|
||||
volatile unsigned int CMPB; //0x0030 Compare Value B
|
||||
volatile unsigned int CMPC; //0x0034 Compare Value C
|
||||
volatile unsigned int CMPD; //0x0038 Compare Value D
|
||||
volatile unsigned int CMPLDR; //0x003C Cmp reg load control
|
||||
volatile unsigned int CNT; //0x0040 Counter reg
|
||||
volatile unsigned int AQLDR; //0x0044 AQ reg load control
|
||||
volatile unsigned int AQCRA; //0x0048 Action qualify of ch-A
|
||||
volatile unsigned int AQCRB; //0x004C Action qualify of ch-B
|
||||
volatile unsigned int AQCRC; //0x0050 Action qualify of ch-C
|
||||
volatile unsigned int AQCRD; //0x0054 Action qualify of ch-D
|
||||
volatile unsigned int AQTSCR; //0x0058 T event selection
|
||||
volatile unsigned int AQOSF; //0x005C AQ output one-shot software forcing
|
||||
volatile unsigned int AQCSF; //0x0060 AQ output conti-software forcing
|
||||
volatile unsigned int DBLDR; //0x0064 Deadband control reg load control
|
||||
volatile unsigned int DBCR; //0x0068 Deadband control reg
|
||||
volatile unsigned int DPSCR; //0x006C Deadband clock prescaler
|
||||
volatile unsigned int DBDTR; //0x0070 Deadband rising delay control
|
||||
volatile unsigned int DBDTF; //0x0074 Deadband falling delay control
|
||||
volatile unsigned int CPCR; //0x0078 Chop control
|
||||
volatile unsigned int EMSRC; //0x007C EM source setting
|
||||
volatile unsigned int EMSRC2; //0x0080 EM source setting
|
||||
volatile unsigned int EMPOL; //0x0084 EM polarity setting
|
||||
volatile unsigned int EMECR; //0x0088 EM enable control
|
||||
volatile unsigned int EMOSR; //0x008C EM trip out status setting
|
||||
volatile unsigned int Reserved; //0x0090 Reserved
|
||||
volatile unsigned int EMSLSR; //0x0094 Softlock status
|
||||
volatile unsigned int EMSLCLR; //0x0098 Softlock clear
|
||||
volatile unsigned int EMHLSR; //0x009C Hardlock status
|
||||
volatile unsigned int EMHLCLR; //0x00A0 Hardlock clear
|
||||
volatile unsigned int EMFRCR; //0x00A4 Software forcing EM
|
||||
volatile unsigned int EMRISR; //0x00A8 EM RISR
|
||||
volatile unsigned int EMMISR; //0x00AC EM MISR
|
||||
volatile unsigned int EMIMCR; //0x00B0 EM masking enable
|
||||
volatile unsigned int EMICR; //0x00B4 EM pending clear
|
||||
volatile unsigned int TRGFTCR; //0x00B8 Trigger Filter control reg
|
||||
volatile unsigned int TRGFTWR; //0x00BC Trigger filter window
|
||||
volatile unsigned int EVTRG; //0x00C0 Event trigger setting
|
||||
volatile unsigned int EVPS; //0x00C4 Event presaler
|
||||
volatile unsigned int EVCNTINIT; //0x00C8
|
||||
volatile unsigned int EVSWF; //0x00CC Event software forcing
|
||||
volatile unsigned int RISR; //0x00D0 Interrupt RISR
|
||||
volatile unsigned int MISR; //0x00D4 Interrupt MISR
|
||||
volatile unsigned int IMCR; //0x00D8 Interrupt IMCR
|
||||
volatile unsigned int ICR; //0x00DC Interrupt clear
|
||||
volatile unsigned int REGLINK; //0x00E0 Register link
|
||||
volatile unsigned int REGLINK2; //0x00E4 Register link2
|
||||
volatile unsigned int REGPROT; //0x00E8 Register protection
|
||||
} CSP_EPT_T, *CSP_EPT_PTR;
|
||||
/**
|
||||
@brief LPT bits Structure
|
||||
*/
|
||||
typedef volatile struct
|
||||
{
|
||||
volatile unsigned int CEDR; //0x0000 Clock control & ID
|
||||
volatile unsigned int RSSR; //0x0004 Start & Stop Ctrl
|
||||
volatile unsigned int PSCR; //0x0008 Clock prescaler
|
||||
volatile unsigned int CR; //0x000C Control register
|
||||
volatile unsigned int SYNCR; //0x0010 Synchronization control reg
|
||||
volatile unsigned int PRDR; //0x0024 Period reg
|
||||
volatile unsigned int CMP; //0x002C Compare Value A
|
||||
volatile unsigned int CNT; //0x0040 Counter reg
|
||||
volatile unsigned int TRGFTCR; //0x00B8 Trigger Filter control reg
|
||||
volatile unsigned int TRGFTWR; //0x00BC Trigger filter window
|
||||
volatile unsigned int EVTRG; //0x00C0 Event trigger setting
|
||||
volatile unsigned int EVPS; //0x00C4 Event presaler
|
||||
volatile unsigned int EVSWF; //0x00C8 Event software forcing
|
||||
volatile unsigned int RISR; //0x00CC Interrupt RISR
|
||||
volatile unsigned int MISR; //0x00D0 Interrupt MISR
|
||||
volatile unsigned int IMCR; //0x00D4 Interrupt IMCR
|
||||
volatile unsigned int ICR; //0x00D8 Interrupt clear
|
||||
} CSP_LPT_T, *CSP_LPT_PTR;
|
||||
/**
|
||||
@brief BT0 bits Structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile unsigned int RSSR; //0x0000 Reset/Start Control
|
||||
volatile unsigned int CR; //0x0004 General Control
|
||||
volatile unsigned int PSCR; //0x0008 Prescaler
|
||||
volatile unsigned int PRDR; //0x000C Period
|
||||
volatile unsigned int CMP; //0X0010
|
||||
volatile unsigned int CNT; //0x0014 Counter
|
||||
volatile unsigned int EVTRG; //0x0018 Event Trigger
|
||||
volatile unsigned int EVPS; //0x001C Event Prescaler
|
||||
volatile unsigned int EVCNTINTI; //0x0020 Event Counter
|
||||
volatile unsigned int EVSWF; //0x0024 Software force Event Trigger
|
||||
volatile unsigned int RISR; //0x0028
|
||||
volatile unsigned int IMCR; //0x002C
|
||||
volatile unsigned int MISR; //0x0030
|
||||
volatile unsigned int ICR; //0x0034
|
||||
} CSP_BT_T, *CSP_BT_PTR;
|
||||
/**
|
||||
@brief CRC bits Structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile unsigned int IDR; /**< ID Register */
|
||||
volatile unsigned int CEDR; /**< Clock Enable/Disable Register */
|
||||
volatile unsigned int SRR; /**< Software Reset Register */
|
||||
volatile unsigned int CR; /**< Control Register */
|
||||
volatile unsigned int SEED; /**< Seed Value Register */
|
||||
volatile unsigned int DATAIN; /**< Data in Value Register */
|
||||
volatile unsigned int DATAOUT; /**< Data out Value Register */
|
||||
// TBD... //
|
||||
} CSP_CRC_T, *CSP_CRC_PTR;
|
||||
/**
|
||||
@brief RTC bits Structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile unsigned int TIMR; //0x0000 Time Control Register
|
||||
volatile unsigned int DATR; //0x0004 Date Control Register
|
||||
volatile unsigned int CR; //0x0008 Control Register
|
||||
volatile unsigned int CCR; //0x000C Clock Control register
|
||||
volatile unsigned int ALRAR; //0x0010 Alarm A
|
||||
volatile unsigned int ALRBR; //0x0014 Alarm B
|
||||
volatile unsigned int SSR; //0x0018 Sub second
|
||||
volatile unsigned int CAL; //0x001C Calibration
|
||||
volatile unsigned int RISR; //0x0020
|
||||
volatile unsigned int IMCR; //0x0024
|
||||
volatile unsigned int MISR; //0x0028
|
||||
volatile unsigned int ICR; //0x002C
|
||||
volatile unsigned int KEY; //0x0030
|
||||
volatile unsigned int EVTRG; //0x0034
|
||||
volatile unsigned int EVPS; //0x0038
|
||||
volatile unsigned int EVSWF; //0x003C
|
||||
} CSP_RTC_T, *CSP_RTC_PTR;
|
||||
|
||||
/**
|
||||
@brief WWDT bits Structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile unsigned int CR;
|
||||
volatile unsigned int CFGR;
|
||||
volatile unsigned int RISR;
|
||||
volatile unsigned int MISR;
|
||||
volatile unsigned int IMCR;
|
||||
volatile unsigned int ICR;
|
||||
}CSP_WWDT_T,*CSP_WWDT_PTR;
|
||||
/**
|
||||
@brief HWD bits Structure
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
volatile S32_T DIVIDENT;
|
||||
volatile S32_T DIVISOR;
|
||||
volatile S32_T QUOTIENT;
|
||||
volatile S32_T REMAIN;
|
||||
volatile unsigned int CR;
|
||||
}CSP_HWD_T,*CSP_HWD_PTR;
|
||||
|
||||
#define FLASHBase 0x00000000
|
||||
#define FLASHSize 0x00010000
|
||||
#define FLASHLimit (FLASHBase + FLASHSize)
|
||||
#define DFLASHBase 0x10000000
|
||||
#define DFLASHSize 0x10001000
|
||||
#define DFLASHLimit (FLASHBase + FLASHSize)
|
||||
|
||||
#ifdef REMAP
|
||||
#define SRAMBase 0x00000000
|
||||
#define SRAMSize 0x00000800
|
||||
#define SRAMLimit (SRAMBase + SRAMSize)
|
||||
#define MEMVectorBase 0x00000700
|
||||
#define MEMVectorSize (0x50<<2)
|
||||
#else
|
||||
#define SRAMBase 0x20000000
|
||||
#define SRAMSize 0x00001000
|
||||
#define SRAMLimit (SRAMBase + SRAMSize)
|
||||
#define MEMVectorBase 0x20000F00
|
||||
#define MEMVectorSize (0x50<<2)
|
||||
#endif
|
||||
|
||||
//--Peripheral Address Setting
|
||||
#define APBPeriBase 0x40000000
|
||||
|
||||
//--Each Peripheral Address Setting
|
||||
//#define APB_SFMBase (APBPeriBase + 0x10000)
|
||||
#define APB_IFCBase (APBPeriBase + 0x10000)
|
||||
#define APB_SYSCONBase (APBPeriBase + 0x11000)
|
||||
#define APB_ETCBBase (APBPeriBase + 0x12000)
|
||||
|
||||
#define APB_TKEYBase (APBPeriBase + 0x20000)
|
||||
#define APB_TKEYBUFBase (APBPeriBase + 0x21000)
|
||||
#define APB_ADC0Base (APBPeriBase + 0x30000)
|
||||
|
||||
#define AHBGPIOBase 0x60000000
|
||||
#define APB_GPIOA0Base (AHBGPIOBase + 0x0000) //A0
|
||||
#define APB_GPIOB0Base (AHBGPIOBase + 0x2000) //B0
|
||||
#define APB_IGRPBase (AHBGPIOBase + 0xF000)
|
||||
|
||||
#define APB_BT1Base (APBPeriBase + 0x52000)
|
||||
#define APB_BT0Base (APBPeriBase + 0x51000)
|
||||
#define APB_CNTABase (APBPeriBase + 0x50000)
|
||||
|
||||
#define APB_GPT0Base (APBPeriBase + 0x55000)
|
||||
|
||||
#define APB_EPT0Base (APBPeriBase + 0x59000)
|
||||
|
||||
#define APB_RTCBase (APBPeriBase + 0x60000)
|
||||
#define APB_LPTBase (APBPeriBase + 0x61000)
|
||||
#define APB_WWDTBase (APBPeriBase + 0x62000)
|
||||
|
||||
#define APB_UART0Base (APBPeriBase + 0x80000)
|
||||
#define APB_UART1Base (APBPeriBase + 0x81000)
|
||||
#define APB_UART2Base (APBPeriBase + 0x82000)
|
||||
|
||||
#define APB_SPI0Base (APBPeriBase + 0x90000)
|
||||
#define APB_SIO0Base (APBPeriBase + 0xB0000)
|
||||
|
||||
#define APB_I2C0Base (APBPeriBase + 0xA0000)
|
||||
|
||||
|
||||
|
||||
#define AHB_CRCBase 0x50000000
|
||||
#define APB_HWDBase 0x70000000
|
||||
|
||||
//--Interrupt Bit Position
|
||||
#define CORET_INT (0x01ul<<0) //IRQ0
|
||||
#define SYSCON_INT (0x01ul<<1) //IRQ1
|
||||
#define IFC_INT (0x01ul<<2) //IRQ2
|
||||
#define ADC_INT (0x01ul<<3) //IRQ3
|
||||
#define EPT0_INT (0x01ul<<4) //IRQ4
|
||||
//DUMMY //IRQ5
|
||||
#define WWDT_INT (0x01ul<<6) //IRQ6
|
||||
#define EXI0_INT (0x01ul<<7) //IRQ7
|
||||
#define EXI1_INT (0x01ul<<8) //IRQ8
|
||||
#define GPT0_INT (0x01ul<<9) //IRQ9
|
||||
//DUMMY //IRQ10
|
||||
//DUMMY //IRQ11
|
||||
#define RTC_INT (0x01ul<<12) //IRQ12
|
||||
#define UART0_INT (0x01ul<<13) //IRQ13
|
||||
#define UART1_INT (0x01ul<<14) //IRQ14
|
||||
#define UART2_INT (0x01ul<<15) //IRQ15
|
||||
//DUMMY //IRQ16
|
||||
#define I2C_INT (0x01ul<<17) //IRQ17
|
||||
//DUMMY //IRQ18
|
||||
#define SPI_INT (0x01ul<<19) //IRQ19
|
||||
#define SIO_INT (0x01ul<<20) //IRQ20
|
||||
#define EXI2_INT (0x01ul<<21) //IRQ21
|
||||
#define EXI3_INT (0x01ul<<22) //IRQ22
|
||||
#define EXI4_INT (0x01ul<<23) //IRQ23
|
||||
#define CA_INT (0x01ul<<24) //IRQ24
|
||||
#define TKEY_INT (0x01ul<<25) //IRQ25
|
||||
#define LPT_INT (0x01ul<<26) //IRQ26
|
||||
//DUMMY //IRQ27
|
||||
#define BT0_INT (0x01ul<<28) //IRQ28
|
||||
#define BT1_INT (0x01ul<<29) //IRQ29
|
||||
//DUMMY //IRQ30
|
||||
//DUMMY //IRQ31
|
||||
|
||||
|
||||
extern CSP_CK801_T *CK801 ;
|
||||
|
||||
extern CSP_IFC_T *IFC ;
|
||||
extern CSP_SYSCON_T *SYSCON ;
|
||||
extern CSP_ETCB_T *ETCB ;
|
||||
|
||||
extern CSP_TKEY_T *TKEY ;
|
||||
extern CSP_TKEYBUF_T *TKEYBUF ;
|
||||
extern CSP_ADC12_T *ADC0 ;
|
||||
|
||||
extern CSP_GPIO_T *GPIOA0 ;
|
||||
extern CSP_GPIO_T *GPIOB0 ;
|
||||
extern CSP_IGRP_T *GPIOGRP ;
|
||||
|
||||
extern CSP_UART_T *UART0 ;
|
||||
extern CSP_UART_T *UART1 ;
|
||||
extern CSP_UART_T *UART2 ;
|
||||
extern CSP_SSP_T *SPI0 ;
|
||||
extern CSP_SIO_T *SIO0 ;
|
||||
extern CSP_I2C_T *I2C0 ;
|
||||
extern CSP_CA_T *CA0 ;
|
||||
|
||||
extern CSP_GPT_T *GPT0 ;
|
||||
|
||||
extern CSP_EPT_T *EPT0 ;
|
||||
|
||||
extern CSP_LPT_T *LPT ;
|
||||
extern CSP_HWD_T *HWD ;
|
||||
extern CSP_WWDT_T *WWDT ;
|
||||
extern CSP_BT_T *BT0 ;
|
||||
extern CSP_BT_T *BT1 ;
|
||||
|
||||
extern CSP_CRC_T *CRC ;
|
||||
extern CSP_RTC_T *RTC ;
|
||||
|
||||
//ISR Define for generating special interrupt related ASM (CK802), with compile option -mistack
|
||||
void MisalignedHandler(void) __attribute__((isr));
|
||||
void IllegalInstrHandler(void) __attribute__((isr));
|
||||
void AccessErrHandler(void) __attribute__((isr));
|
||||
void BreakPointHandler(void) __attribute__((isr));
|
||||
void UnrecExecpHandler(void) __attribute__((isr));
|
||||
void Trap0Handler(void) __attribute__((isr));
|
||||
void Trap1Handler(void) __attribute__((isr));
|
||||
void Trap2Handler(void) __attribute__((isr));
|
||||
void Trap3Handler(void) __attribute__((isr));
|
||||
void PendTrapHandler(void) __attribute__((isr));
|
||||
|
||||
void CORETHandler(void) __attribute__((isr));
|
||||
void SYSCONIntHandler(void) __attribute__((isr));
|
||||
void IFCIntHandler(void) __attribute__((isr));
|
||||
void ADCIntHandler(void) __attribute__((isr));
|
||||
void EPT0IntHandler(void) __attribute__((isr));
|
||||
void WWDTHandler(void) __attribute__((isr));
|
||||
void EXI0IntHandler(void) __attribute__((isr));
|
||||
void EXI1IntHandler(void) __attribute__((isr));
|
||||
void EXI2to3IntHandler(void) __attribute__((isr));
|
||||
void EXI4to9IntHandler(void) __attribute__((isr));
|
||||
void EXI10to15IntHandler(void) __attribute__((isr));
|
||||
void UART0IntHandler(void) __attribute__((isr));
|
||||
void UART1IntHandler(void) __attribute__((isr));
|
||||
void UART2IntHandler(void) __attribute__((isr));
|
||||
void I2CIntHandler(void) __attribute__((isr));
|
||||
void GPT0IntHandler(void) __attribute__((isr));
|
||||
void LEDIntHandler(void) __attribute__((isr));
|
||||
void TKEYIntHandler(void) __attribute__((isr));
|
||||
void SPI0IntHandler(void) __attribute__((isr));
|
||||
void SIO0IntHandler(void) __attribute__((isr));
|
||||
void CNTAIntHandler(void) __attribute__((isr));
|
||||
void RTCIntHandler(void) __attribute__((isr));
|
||||
void LPTIntHandler(void) __attribute__((isr));
|
||||
void BT0IntHandler(void) __attribute__((isr));
|
||||
void BT1IntHandler(void) __attribute__((isr));
|
||||
|
||||
extern int __divsi3 (int a, int b);
|
||||
extern unsigned int __udivsi3 (unsigned int a, unsigned int b);
|
||||
extern int __modsi3 (int a, int b);
|
||||
extern unsigned int __umodsi3 (unsigned int a, unsigned int b);
|
||||
extern void delay_nms(unsigned int t);
|
||||
extern void delay_nus(unsigned int t);
|
||||
|
||||
#endif
|
||||
|
||||
/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/
|
||||
193
Source/include/apt32f102_bt.h
Normal file
193
Source/include/apt32f102_bt.h
Normal file
@@ -0,0 +1,193 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file apt32f102_bt.h
|
||||
* @author APT AE Team
|
||||
* @version V1.08
|
||||
* @date 2021/06/21
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef _apt32f102_bt_H
|
||||
#define _apt32f102_bt_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "apt32f102.h"
|
||||
|
||||
#define BT_RESET_VALUE (0x00000000)
|
||||
|
||||
|
||||
/**
|
||||
* @brief bt pin numbner
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT0_PA00 = 0, /*!< Pin 0 selected */
|
||||
BT0_PA02 = 1, /*!< Pin 1 selected */
|
||||
BT0_PA05 = 2, /*!< Pin 2 selected */
|
||||
BT0_PB02 = 3, /*!< Pin 3 selected */
|
||||
BT0_PB05 = 4, /*!< Pin 4 selected */
|
||||
BT0_PA11 = 5, /*!< Pin 5 selected */
|
||||
BT0_PA13 = 6, /*!< Pin 6 selected */
|
||||
BT0_PA15 = 7, /*!< Pin 7 selected */
|
||||
BT1_PA01 = 8, /*!< Pin 8 selected */
|
||||
BT1_PA06 = 9, /*!< Pin 9 selected */
|
||||
BT1_PA08 = 10, /*!< Pin 10 selected */
|
||||
BT1_PA12 = 11, /*!< Pin 11 selected */
|
||||
BT1_PA14 = 12, /*!< Pin 12 selected */
|
||||
BT1_PB00 = 13, /*!< Pin 13 selected */
|
||||
BT1_PB04 = 14, /*!< Pin 13 selected */
|
||||
}BT_Pin_TypeDef;
|
||||
/**
|
||||
* @brief BT CLK EN register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BTCLK_DIS = 0,
|
||||
BTCLK_EN = 1,
|
||||
}BT_CLK_TypeDef;
|
||||
/**
|
||||
* @brief BT START SHADOW register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_SHADOW = (0<<3),
|
||||
BT_IMMEDIATE= (1<<3),
|
||||
}BT_SHDWSTP_TypeDef;
|
||||
/**
|
||||
* @brief BT OPM register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_CONTINUOUS= (0<<4),
|
||||
BT_ONCE= (1<<4),
|
||||
}BT_OPM_TypeDef;
|
||||
/**
|
||||
* @brief BT EXTCKM register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_PCLKDIV= (0<<5),
|
||||
BT_EXTCKM= (1<<5),
|
||||
}BT_EXTCKM_TypeDef;
|
||||
/**
|
||||
* @brief BT IDLEST register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_IDLE_LOW= (0<<6),
|
||||
BT_IDLE_HIGH= (1<<6),
|
||||
}BT_IDLEST_TypeDef;
|
||||
/**
|
||||
* @brief BT STARTST register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_START_LOW= (0<<7),
|
||||
BT_START_HIGH= (1<<7),
|
||||
}BT_STARTST_TypeDef;
|
||||
/**
|
||||
* @brief BT STARTST register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_SYNC_DIS= (0<<8),
|
||||
BT_SYNC_EN= (1<<8),
|
||||
}BT_SYNCEN_TypeDef;
|
||||
/**
|
||||
* @brief BT OSTMDX register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_OSTMDX_CONTINUOUS= (0<<10),
|
||||
BT_OSTMDX_ONCE= (1<<10),
|
||||
}BT_OSTMDX_TypeDef;
|
||||
/**
|
||||
* @brief BT AREARM register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_AREARM_DIS= (0<<14),
|
||||
BT_AREARM_EN= (1<<14),
|
||||
}BT_AREARM_TypeDef;
|
||||
/**
|
||||
* @brief BT SYNCMD register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_SYNCMD_DIS= (0<<15),
|
||||
BT_SYNCMD_EN= (1<<15),
|
||||
}BT_SYNCMD_TypeDef;
|
||||
/**
|
||||
* @brief BT CNTRLD register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_CNTRLD_EN= (0<<16),
|
||||
BT_CNTRLD_DIS= (1<<16),
|
||||
}BT_CNTRLD_TypeDef;
|
||||
/**
|
||||
* @brief BT CNTRLD register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_TRGSRC_DIS= (0<<0),
|
||||
BT_TRGSRC_PEND= (1<<0),
|
||||
BT_TRGSRC_CMP= (2<<0),
|
||||
BT_TRGSRC_OVF= (3<<0),
|
||||
}BT_TRGSRC_TypeDef;
|
||||
/**
|
||||
* @brief BT CNTRLD register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_TRGOE_DIS= (0<<20),
|
||||
BT_TRGOE_EN= (1<<20),
|
||||
}BT_TRGOE_TypeDef;
|
||||
/**
|
||||
* @brief BT INT MASK SET/CLR Set
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
BT_PEND = (0x01 << 0),
|
||||
BT_CMP = (0x01 << 1),
|
||||
BT_OVF = (0x01 << 2),
|
||||
BT_EVTRG = (0x01 << 3),
|
||||
}BT_IMSCR_TypeDef;
|
||||
|
||||
|
||||
extern void BT_DeInit(CSP_BT_T *BTx);
|
||||
extern void BT_IO_Init(BT_Pin_TypeDef BT_IONAME);
|
||||
extern void BT_Start(CSP_BT_T *BTx);
|
||||
extern void BT_Stop(CSP_BT_T *BTx);
|
||||
extern void BT_Soft_Reset(CSP_BT_T *BTx);
|
||||
extern void BT_Configure(CSP_BT_T *BTx,BT_CLK_TypeDef BTCLK,U16_T PSCR_DATA,BT_SHDWSTP_TypeDef BTSHDWSTP,BT_OPM_TypeDef BTOPM,BT_EXTCKM_TypeDef BTEXTCKM);
|
||||
extern void BT_ControlSet_Configure(CSP_BT_T *BTx,BT_STARTST_TypeDef BTSTART,BT_IDLEST_TypeDef BTIDLE,BT_SYNCEN_TypeDef BTSYNC,BT_SYNCMD_TypeDef BTSYNCMD,
|
||||
BT_OSTMDX_TypeDef BTOSTMD,BT_AREARM_TypeDef BTAREARM,BT_CNTRLD_TypeDef BTCNTRLD);
|
||||
extern void BT_Period_CMP_Write(CSP_BT_T *BTx,U16_T BTPRDR_DATA,U16_T BTCMP_DATA);
|
||||
extern void BT_CNT_Write(CSP_BT_T *BTx,U16_T BTCNT_DATA);
|
||||
extern U16_T BT_PRDR_Read(CSP_BT_T *BTx);
|
||||
extern U16_T BT_CMP_Read(CSP_BT_T *BTx);
|
||||
extern U16_T BT_CNT_Read(CSP_BT_T *BTx);
|
||||
extern void BT_Trigger_Configure(CSP_BT_T *BTx,BT_TRGSRC_TypeDef BTTRG,BT_TRGOE_TypeDef BTTRGOE);
|
||||
extern void BT_Soft_Tigger(CSP_BT_T *BTx);
|
||||
extern void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X);
|
||||
extern void BT0_INT_ENABLE(void);
|
||||
extern void BT0_INT_DISABLE(void);
|
||||
extern void BT1_INT_ENABLE(void);
|
||||
extern void BT1_INT_DISABLE(void);
|
||||
extern void BT_Stop_High(CSP_BT_T *BTx);
|
||||
extern void BT_Stop_Low(CSP_BT_T *BTx);
|
||||
|
||||
|
||||
#endif /**< apt32f102_bt_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/
|
||||
130
Source/include/apt32f102_ck801.h
Normal file
130
Source/include/apt32f102_ck801.h
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file apt32f102_ck801.h
|
||||
* @author APT AE Team
|
||||
* @version V1.08
|
||||
* @date 2021/06/21
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef _apt32f102_ck801_H
|
||||
#define _apt32f102_ck801_H
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Interrupt Controller
|
||||
//----------------------------------------------------------------------------
|
||||
//#define CK801_BASEADDR ((unsigned int) 0xE000E000)
|
||||
#define CK801_BASEADDR 0xE000E000
|
||||
|
||||
#define INTC_ISER CK801_BASEADDR+0x100 //INTC interrupt enable register
|
||||
#define INTC_IWER CK801_BASEADDR+0x140 //INTC wake-up interrupt enable register
|
||||
#define INTC_ICER CK801_BASEADDR+0x180 //INTC interrupt enable clear register
|
||||
#define INTC_IWDR CK801_BASEADDR+0x1C0 //INTC wake-up interrupt enable clear register
|
||||
#define INTC_ISPR CK801_BASEADDR+0x200 //INTC interrupt pending register
|
||||
#define INTC_ICPR CK801_BASEADDR+0x280 //INTC interrupt pending clear register
|
||||
#define INTC_IABR CK801_BASEADDR+0x300 //INTC interrupt acknowledge status register
|
||||
#define INTC_IPR0 CK801_BASEADDR+0x400 //INTC interrupt priority register
|
||||
#define INTC_IPR1 CK801_BASEADDR+0x404 //INTC interrupt priority register
|
||||
#define INTC_IPR2 CK801_BASEADDR+0x408 //INTC interrupt priority register
|
||||
#define INTC_IPR3 CK801_BASEADDR+0x40C //INTC interrupt priority register
|
||||
#define INTC_IPR4 CK801_BASEADDR+0x410 //INTC interrupt priority register
|
||||
#define INTC_IPR5 CK801_BASEADDR+0x414 //INTC interrupt priority register
|
||||
#define INTC_IPR6 CK801_BASEADDR+0x418 //INTC interrupt priority register
|
||||
#define INTC_IPR7 CK801_BASEADDR+0x41C //INTC interrupt priority register
|
||||
#define INTC_ISR CK801_BASEADDR+0xC00 //INTC interrupt status register
|
||||
#define INTC_IPTR CK801_BASEADDR+0xC04 //INTC interrupt pending threshold register
|
||||
|
||||
|
||||
#define INTC_ISER_WRITE(val) *(volatile UINT32 *) (INTC_ISER ) = val
|
||||
#define INTC_IWER_WRITE(val) *(volatile UINT32 *) (INTC_IWER ) = val
|
||||
#define INTC_ICER_WRITE(val) *(volatile UINT32 *) (INTC_ICER ) = val
|
||||
#define INTC_IWDR_WRITE(val) *(volatile UINT32 *) (INTC_IWDR ) = val
|
||||
#define INTC_ISPR_WRITE(val) *(volatile UINT32 *) (INTC_ISPR ) = val
|
||||
#define INTC_ICPR_WRITE(val) *(volatile UINT32 *) (INTC_ICPR ) = val
|
||||
#define INTC_IABR_WRITE(val) *(volatile UINT32 *) (INTC_IABR ) = val
|
||||
#define INTC_IPR0_WRITE(val) *(volatile UINT32 *) (INTC_IPR0 ) = val
|
||||
#define INTC_IPR1_WRITE(val) *(volatile UINT32 *) (INTC_IPR1 ) = val
|
||||
#define INTC_IPR2_WRITE(val) *(volatile UINT32 *) (INTC_IPR2 ) = val
|
||||
#define INTC_IPR3_WRITE(val) *(volatile UINT32 *) (INTC_IPR3 ) = val
|
||||
#define INTC_IPR4_WRITE(val) *(volatile UINT32 *) (INTC_IPR4 ) = val
|
||||
#define INTC_IPR5_WRITE(val) *(volatile UINT32 *) (INTC_IPR5 ) = val
|
||||
#define INTC_IPR6_WRITE(val) *(volatile UINT32 *) (INTC_IPR6 ) = val
|
||||
#define INTC_IPR7_WRITE(val) *(volatile UINT32 *) (INTC_IPR7 ) = val
|
||||
#define INTC_ISR_WRITE(val) *(volatile UINT32 *) (INTC_ISR ) = val
|
||||
#define INTC_IPTR_WRITE(val) *(volatile UINT32 *) (INTC_IPTR ) = val
|
||||
|
||||
|
||||
#define INTC_ISER_READ(intc) (intc->ISER )
|
||||
#define INTC_IWER_READ(intc) (intc->IWER )
|
||||
#define INTC_ICER_READ(intc) (intc->ICER )
|
||||
#define INTC_IWDR_READ(intc) (intc->IWDR )
|
||||
#define INTC_ISPR_READ(intc) (intc->ISPR )
|
||||
#define INTC_ICPR_READ(intc) (intc->ICPR )
|
||||
#define INTC_IABR_READ(intc) (intc->IABR )
|
||||
#define INTC_IPR0_READ(intc) (intc->IPR0 )
|
||||
#define INTC_IPR1_READ(intc) (intc->IPR1 )
|
||||
#define INTC_IPR2_READ(intc) (intc->IPR2 )
|
||||
#define INTC_IPR3_READ(intc) (intc->IPR3 )
|
||||
#define INTC_IPR4_READ(intc) (intc->IPR4 )
|
||||
#define INTC_IPR5_READ(intc) (intc->IPR5 )
|
||||
#define INTC_IPR6_READ(intc) (intc->IPR6 )
|
||||
#define INTC_IPR7_READ(intc) (intc->IPR7 )
|
||||
#define INTC_ISR_READ(intc) (intc->ISR )
|
||||
#define INTC_IPTR_READ(intc) (intc->IPTR )
|
||||
|
||||
|
||||
typedef enum IRQn
|
||||
{
|
||||
|
||||
ISR_Restart = -32,
|
||||
ISR_Misaligned_Access = -31,
|
||||
ISR_Access_Error = -30,
|
||||
ISR_Divided_By_Zero = -29,
|
||||
ISR_Illegal = -28,
|
||||
ISR_Privlege_Violation = -27,
|
||||
ISR_Trace_Exection = -26,
|
||||
ISR_Breakpoint_Exception = -25,
|
||||
ISR_Unrecoverable_Error = -24,
|
||||
ISR_Idly4_Error = -23,
|
||||
ISR_Auto_INT = -22,
|
||||
ISR_Auto_FINT = -21,
|
||||
ISR_Reserved_HAI = -20,
|
||||
ISR_Reserved_FP = -19,
|
||||
ISR_TLB_Ins_Empty = -18,
|
||||
ISR_TLB_Data_Empty = -17,
|
||||
|
||||
INTC_CORETIM_IRQn = 0,
|
||||
INTC_TIME1_IRQn = 1,
|
||||
INTC_UART0_IRQn = 2,
|
||||
INTC_GPIOA2_IRQn = 8,
|
||||
} IRQn_Type;
|
||||
|
||||
|
||||
void INTC_Init(void);
|
||||
void force_interrupt(IRQn_Type IRQn);
|
||||
|
||||
void CK_CPU_EnAllNormalIrq(void);
|
||||
void CK_CPU_DisAllNormalIrq(void);
|
||||
|
||||
#ifndef __INLINE
|
||||
#define __INLINE inline
|
||||
#endif
|
||||
#ifndef uint32_t
|
||||
#define uint32_t unsigned int
|
||||
#endif
|
||||
|
||||
#ifndef uint8_t
|
||||
#define uint8_t unsigned char
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/
|
||||
37
Source/include/apt32f102_clkcalib.h
Normal file
37
Source/include/apt32f102_clkcalib.h
Normal file
@@ -0,0 +1,37 @@
|
||||
/******************************************************************************
|
||||
* @file apt32f102_clkcalib.h
|
||||
* @author APT AE Team
|
||||
* @version V1.22
|
||||
* @date 2021/11/22
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#include "apt32f102.h"
|
||||
|
||||
|
||||
/**
|
||||
* @brief CALIB OSC SELECTE SET
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
CLK_HFOSC_48M = (0x0ul),
|
||||
CLK_HFOSC_24M = (0x1ul),
|
||||
CLK_HFOSC_12M = (0x2ul),
|
||||
CLK_HFOSC_6M = (0x3ul),
|
||||
CLK_IMOSC_5556K = (0x4ul),
|
||||
CLK_IMOSC_4194K = (0x5ul),
|
||||
CLK_IMOSC_2097K = (0x6ul),
|
||||
CLK_IMOSC_131K = (0x7ul)
|
||||
}CALIB_OSC_SELECTE_TypeDef;
|
||||
|
||||
|
||||
extern U8_T std_clk_calib(CALIB_OSC_SELECTE_TypeDef OSC_CALIB_X);
|
||||
221
Source/include/apt32f102_gpio.h
Normal file
221
Source/include/apt32f102_gpio.h
Normal file
@@ -0,0 +1,221 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file main.c
|
||||
* @author APT AE Team
|
||||
* @version V1.08
|
||||
* @date 2021/06/21
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef _apt32f102_gpio_H
|
||||
#define _apt32f102_gpio_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "apt32f102.h"
|
||||
|
||||
|
||||
#define GPIO_RESET_VALUE (0x00000000)
|
||||
//--------------------------------------------------------------------------------
|
||||
//-----------------------------GPIO value enum define--------------------------
|
||||
//--------------------------------------------------------------------------------
|
||||
/**
|
||||
* @brief GPIO pin numbner
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
PIN_0 = 0, /*!< Pin 0 selected */
|
||||
PIN_1 = 4, /*!< Pin 1 selected */
|
||||
PIN_2 = 8, /*!< Pin 2 selected */
|
||||
PIN_3 = 12, /*!< Pin 3 selected */
|
||||
PIN_4 = 16, /*!< Pin 4 selected */
|
||||
PIN_5 = 20, /*!< Pin 5 selected */
|
||||
PIN_6 = 24, /*!< Pin 6 selected */
|
||||
PIN_7 = 28, /*!< Pin 7 selected */
|
||||
PIN_8 = 0, /*!< Pin 8 selected */
|
||||
PIN_9 = 4, /*!< Pin 9 selected */
|
||||
PIN_10 = 8, /*!< Pin 10 selected */
|
||||
PIN_11 = 12, /*!< Pin 11 selected */
|
||||
PIN_12 = 16, /*!< Pin 12 selected */
|
||||
PIN_13 = 20, /*!< Pin 13 selected */
|
||||
PIN_14 = 24, /*!< Pin 13 selected */
|
||||
PIN_15 = 28, /*!< Pin 13 selected */
|
||||
}GPIO_Pin_TypeDef;
|
||||
/**
|
||||
* @brief GPIO high/low register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LowByte = 0,
|
||||
HighByte = 1,
|
||||
}GPIO_byte_TypeDef;
|
||||
/**
|
||||
* @brief GPIO IO status
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
Intput = 1,
|
||||
Output = 0,
|
||||
}GPIO_Dir_TypeDef;
|
||||
/**
|
||||
* @brief GPIO IO mode
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
PUDR = 0, //pull high or low
|
||||
DSCR =1, //drive strenth
|
||||
OMCR =2, //open drain
|
||||
IECR =3, //int
|
||||
}GPIO_Mode_TypeDef;
|
||||
/**
|
||||
* @brief GPIO IO Group
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
PA0 = 0,
|
||||
PB0 = 2,
|
||||
GPIOA = 0,
|
||||
GPIOB = 2,
|
||||
}GPIO_Group_TypeDef;
|
||||
/**
|
||||
* @brief GPIO exi number
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
EXI0 = 0,
|
||||
EXI1 = 1,
|
||||
EXI2 = 2,
|
||||
EXI3 = 3,
|
||||
EXI4 = 4,
|
||||
EXI5 = 5,
|
||||
EXI6 = 6,
|
||||
EXI7 = 7,
|
||||
EXI8 = 8,
|
||||
EXI9 = 9,
|
||||
EXI10 = 10,
|
||||
EXI11 = 11,
|
||||
EXI12 = 12,
|
||||
EXI13 = 13,
|
||||
EXI14 = 14,
|
||||
EXI15 = 15,
|
||||
}GPIO_EXI_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief EXI PIN
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
Selete_EXI_PIN0 = (CSP_REGISTER_T)(0),
|
||||
Selete_EXI_PIN1 = (CSP_REGISTER_T)(1),
|
||||
Selete_EXI_PIN2 = (CSP_REGISTER_T)(2),
|
||||
Selete_EXI_PIN3 = (CSP_REGISTER_T)(3),
|
||||
Selete_EXI_PIN4 = (CSP_REGISTER_T)(4),
|
||||
Selete_EXI_PIN5 = (CSP_REGISTER_T)(5),
|
||||
Selete_EXI_PIN6 = (CSP_REGISTER_T)(6),
|
||||
Selete_EXI_PIN7 = (CSP_REGISTER_T)(7),
|
||||
Selete_EXI_PIN8 = (CSP_REGISTER_T)(8),
|
||||
Selete_EXI_PIN9 = (CSP_REGISTER_T)(9),
|
||||
Selete_EXI_PIN10 = (CSP_REGISTER_T)(10),
|
||||
Selete_EXI_PIN11 = (CSP_REGISTER_T)(11),
|
||||
Selete_EXI_PIN12 = (CSP_REGISTER_T)(12),
|
||||
Selete_EXI_PIN13 = (CSP_REGISTER_T)(13),
|
||||
Selete_EXI_PIN14 = (CSP_REGISTER_T)(14),
|
||||
Selete_EXI_PIN15 = (CSP_REGISTER_T)(15),
|
||||
Selete_EXI_PIN16 = (CSP_REGISTER_T)(16),
|
||||
Selete_EXI_PIN17 = (CSP_REGISTER_T)(17),
|
||||
Selete_EXI_PIN18 = (CSP_REGISTER_T)(18),
|
||||
Selete_EXI_PIN19 = (CSP_REGISTER_T)(19)
|
||||
}GPIO_EXIPIN_TypeDef;
|
||||
|
||||
|
||||
/**
|
||||
* @brief GPIO INPUT MODE SETECTED
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
INPUT_MODE_SETECTED_CMOS = 0,
|
||||
INPUT_MODE_SETECTED_TTL1 = 1,
|
||||
INPUT_MODE_SETECTED_TTL2 = 2
|
||||
}INPUT_MODE_SETECTED_TypeDef;
|
||||
|
||||
#define nop asm ("nop")
|
||||
|
||||
#define SetPA0(n) (GPIOA0->SODR = (1ul<<n))
|
||||
#define ClrPA0(n) (GPIOA0->CODR = (1ul<<n))
|
||||
|
||||
#define SetPB0(n) (GPIOB0->SODR = (1ul<<n))
|
||||
#define ClrPB0(n) (GPIOB0->CODR = (1ul<<n))
|
||||
|
||||
#define PA0in(n) (((GPIOA0->PSDR)>>n) & 1ul)
|
||||
#define PB0in(n) (((GPIOB0->PSDR)>>n) & 1ul)
|
||||
|
||||
|
||||
#define CSP_GPIO_SET_CONLR(cm,val) ((cm)->CONLR = val)
|
||||
#define CSP_GPIO_GET_CONLR(cm) ((cm)->CONLR)
|
||||
|
||||
#define CSP_GPIO_SET_CONHR(cm,val) ((cm)->CONHR = val)
|
||||
#define CSP_GPIO_GET_CONHR(cm) ((cm)->CONHR)
|
||||
|
||||
#define CSP_GPIO_SET_WODR(cm,val) ((cm)->WODR = val)
|
||||
#define CSP_GPIO_SET_SODR(cm,val) ((cm)->SODR = val)
|
||||
#define CSP_GPIO_SET_CODR(cm,val) ((cm)->CODR = val)
|
||||
#define CSP_GPIO_GET_PSDR(cm) ((cm)->PSDR)
|
||||
|
||||
#define CSP_GPIO_SET_PUDR(cm,val) ((cm)->PUDR = val)
|
||||
#define CSP_GPIO_GET_PUDR(cm) ((cm)->PUDR)
|
||||
|
||||
#define CSP_GPIO_SET_DSCR(cm,val) ((cm)->DSCR = val)
|
||||
#define CSP_GPIO_GET_DSCR(cm) ((cm)->DSCR)
|
||||
|
||||
#define CSP_GPIO_SET_OMCR(cm,val) ((cm)->OMCR = val)
|
||||
#define CSP_GPIO_GET_OMCR(cm) ((cm)->OMCR)
|
||||
|
||||
#define CSP_GPIO_SET_IECR(cm,val) ((cm)->IECR = val)
|
||||
#define CSP_GPIO_GET_IECR(cm) ((cm)->IECR)
|
||||
|
||||
#define CSP_GPIO_SET_IGRP(cm,val) ((cm)->IGRP = val)
|
||||
#define CSP_GPIO_GET_IGRP(cm) ((cm)->IGRP)
|
||||
|
||||
/******************************************************************************
|
||||
************************** Exported functions ************************
|
||||
******************************************************************************/
|
||||
extern void GPIOA0_DeInit(GPIO_Pin_TypeDef GPIO_Pin);
|
||||
extern void GPIO_DeInit(void);
|
||||
extern void GPIO_TTL_COSM_Selecte(CSP_GPIO_T *GPIOx,uint8_t bit,INPUT_MODE_SETECTED_TypeDef INPUT_MODE_SETECTED_X);
|
||||
extern void GPIO_Init2(CSP_GPIO_T *GPIOx,GPIO_byte_TypeDef byte,uint32_t val);
|
||||
extern void GPIO_InPutOutPut_Disable(CSP_GPIO_T *GPIOx,uint8_t PinNum);
|
||||
extern void GPIO_Init(CSP_GPIO_T *GPIOx,uint8_t PinNum,GPIO_Dir_TypeDef Dir);
|
||||
extern void GPIO_Write_Low(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern void GPIO_Write_High(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern void GPIO_MODE_Init(CSP_GPIO_T *GPIOx,GPIO_Mode_TypeDef IO_MODE,uint32_t val);
|
||||
extern uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern uint8_t GPIO_Read_Output(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern void GPIO_Reverse(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern void GPIO_Set_Value(CSP_GPIO_T *GPIOx,uint8_t bitposi,uint8_t bitval);
|
||||
extern void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO);
|
||||
extern void GPIOB0_EXI_Init(GPIO_EXI_TypeDef EXI_IO);
|
||||
extern void GPIO_EXI_EN(CSP_GPIO_T *GPIOx,GPIO_EXI_TypeDef EXI_IO);
|
||||
extern void GPIO_Debug_IO_12_13(void);
|
||||
extern void GPIO_Debug_IO_01_02(void);
|
||||
extern void GPIO_IntGroup_Set(GPIO_Group_TypeDef IO_MODE , uint8_t PinNum , GPIO_EXIPIN_TypeDef EXIPIN_x);
|
||||
extern void GPIOA00_Set_ResetPin();
|
||||
extern void GPIO_PullHigh_Init(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern void GPIO_PullLow_Init(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern void GPIO_PullHighLow_DIS(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern void GPIO_OpenDrain_EN(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern void GPIO_OpenDrain_DIS(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
extern void GPIO_DriveStrength_DIS(CSP_GPIO_T *GPIOx,uint8_t bit);
|
||||
/*************************************************************/
|
||||
|
||||
#endif /**< apt32f102_gpio_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/
|
||||
51
Source/include/apt32f102_hwdiv.h
Normal file
51
Source/include/apt32f102_hwdiv.h
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file apt32f102_hwdiv.h
|
||||
* @author APT AE Team
|
||||
* @version V1.02
|
||||
* @date 2019/04/05
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef _apt32f102_hwdiv_H
|
||||
#define _apt32f102_hwdiv_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "apt32f102.h"
|
||||
|
||||
|
||||
#define HWDIV_RESET_VALUE (0x00000000)
|
||||
//--------------------------------------------------------------------------------
|
||||
//-----------------------------HWDIV value enum define--------------------------
|
||||
//--------------------------------------------------------------------------------
|
||||
#define HWDIV_UNSIGN_BIT (0X01<<0)
|
||||
|
||||
extern U32_T HWDIV_Calc_Remain(void);
|
||||
extern U32_T HWDIV_Calc_Quotient(void);
|
||||
extern void HWDIV_Calc_UNSIGN(U32_T DIVIDENDx,U32_T DIVISOR_x);
|
||||
extern void HWDIV_UNSIGN_CMD(FunctionalStatus NewState);
|
||||
extern void HWDIV_DeInit(void);
|
||||
extern void HWDIV_Calc_SIGN(long DIVIDENDx,long DIVISOR_x);
|
||||
extern void HWDIV_Calc_float(float DIVIDENDx,float DIVISOR_x);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /**< apt32f102_hwdiv_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/
|
||||
421
Source/include/apt32f102_ifc.h
Normal file
421
Source/include/apt32f102_ifc.h
Normal file
@@ -0,0 +1,421 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file apt32f102_ifc.h
|
||||
* @author APT AE Team
|
||||
* @version V1.08
|
||||
* @date 2021/06/21
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef _apt32f102_ifc_H
|
||||
#define _apt32f102_ifc_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "apt32f102.h"
|
||||
|
||||
/******************************************************************************
|
||||
************************ ifc Registers Definition *************************
|
||||
******************************************************************************/
|
||||
|
||||
#define IFC_CLK_EN (0x01ul)
|
||||
#define IFC_CLK_DIS (0xfeul)
|
||||
#define EnIFCClk (IFC->CEDR = (IFC_CLK_EN))
|
||||
#define DisIFCClk (IFC->CEDR = (IFC_CLK_DIS))
|
||||
|
||||
#define USER_KEY (0x5A5A5A5Aul)
|
||||
#define SetUserKey (IFC->KR = (USER_KEY))
|
||||
#define StartOp (0x01ul)
|
||||
|
||||
#define IFC_CLKEN (0x01ul) //IFC CLKEN
|
||||
#define IFC_SWRST (0x01ul) //IFC SWRST
|
||||
|
||||
#define HIDM0 ((0x0ul)<<8) //HID0
|
||||
#define HIDM1 ((0x1ul)<<8) //HID1
|
||||
#define HIDM2 ((0x2ul)<<8) //HID2
|
||||
#define HIDM3 ((0x3ul)<<8) //HID3
|
||||
|
||||
// IFC Command
|
||||
#define PROGRAM (0x01ul)
|
||||
#define PAGE_ERASE (0x02ul)
|
||||
#define CHIP_ERASE (0x04ul)
|
||||
#define OPTION_ERASE (0x05ul)
|
||||
#define PEP_ENABLE (0x06ul) //预编程设定
|
||||
#define PAGE_BUF_CLR (0x07ul) //页缓存清除
|
||||
#define DIS_SWD_SET (0x0Dul) //SWD 禁止重映射
|
||||
#define EN_SWD_SET (0x0Eul) //SWD 使能重映射
|
||||
#define USER_OPTION (0x0Ful) //User OPTION操作
|
||||
|
||||
#define USER_KEY (0x5A5A5A5Aul)
|
||||
#define CSP_IFC_SET_KR(ifc, val) (ifc->KR = (val))
|
||||
|
||||
//
|
||||
#define StartErase (IFC->CR=(StartOp))
|
||||
#define EnChipErase (IFC->CMR=(CHIP_ERASE|HIDM1))
|
||||
#define EnPageErase (IFC->CMR=(PAGE_ERASE|HIDM0))
|
||||
|
||||
/**
|
||||
* @brief IFC page address
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
PROM_PageAdd0 = ((CSP_REGISTER_T)0x00000000), //PROM 每页256BYTE
|
||||
PROM_PageAdd1 = ((CSP_REGISTER_T)0x00000100),
|
||||
PROM_PageAdd2 = ((CSP_REGISTER_T)0x00000200),
|
||||
PROM_PageAdd3 = ((CSP_REGISTER_T)0x00000300),
|
||||
PROM_PageAdd4 = ((CSP_REGISTER_T)0x00000400),
|
||||
PROM_PageAdd5 = ((CSP_REGISTER_T)0x00000500),
|
||||
PROM_PageAdd6 = ((CSP_REGISTER_T)0x00000600),
|
||||
PROM_PageAdd7 = ((CSP_REGISTER_T)0x00000700),
|
||||
PROM_PageAdd8 = ((CSP_REGISTER_T)0x00000800),
|
||||
PROM_PageAdd9 = ((CSP_REGISTER_T)0x00000900),
|
||||
|
||||
PROM_PageAdd10 = ((CSP_REGISTER_T)0x00000A00),
|
||||
PROM_PageAdd11 = ((CSP_REGISTER_T)0x00000B00),
|
||||
PROM_PageAdd12 = ((CSP_REGISTER_T)0x00000C00),
|
||||
PROM_PageAdd13 = ((CSP_REGISTER_T)0x00000D00),
|
||||
PROM_PageAdd14 = ((CSP_REGISTER_T)0x00000E00),
|
||||
PROM_PageAdd15 = ((CSP_REGISTER_T)0x00000F00),
|
||||
PROM_PageAdd16 = ((CSP_REGISTER_T)0x00001000),
|
||||
PROM_PageAdd17 = ((CSP_REGISTER_T)0x00001100),
|
||||
PROM_PageAdd18 = ((CSP_REGISTER_T)0x00001200),
|
||||
PROM_PageAdd19 = ((CSP_REGISTER_T)0x00001300),
|
||||
|
||||
PROM_PageAdd20 = ((CSP_REGISTER_T)0x00001400),
|
||||
PROM_PageAdd21 = ((CSP_REGISTER_T)0x00001500),
|
||||
PROM_PageAdd22 = ((CSP_REGISTER_T)0x00001600),
|
||||
PROM_PageAdd23 = ((CSP_REGISTER_T)0x00001700),
|
||||
PROM_PageAdd24 = ((CSP_REGISTER_T)0x00001800),
|
||||
PROM_PageAdd25 = ((CSP_REGISTER_T)0x00001900),
|
||||
PROM_PageAdd26 = ((CSP_REGISTER_T)0x00001A00),
|
||||
PROM_PageAdd27 = ((CSP_REGISTER_T)0x00001B00),
|
||||
PROM_PageAdd28 = ((CSP_REGISTER_T)0x00001C00),
|
||||
PROM_PageAdd29 = ((CSP_REGISTER_T)0x00001D00),
|
||||
|
||||
PROM_PageAdd30 = ((CSP_REGISTER_T)0x00001E00),
|
||||
PROM_PageAdd31 = ((CSP_REGISTER_T)0x00001F00),
|
||||
PROM_PageAdd32 = ((CSP_REGISTER_T)0x00002000),
|
||||
PROM_PageAdd33 = ((CSP_REGISTER_T)0x00002100),
|
||||
PROM_PageAdd34 = ((CSP_REGISTER_T)0x00002200),
|
||||
PROM_PageAdd35 = ((CSP_REGISTER_T)0x00002300),
|
||||
PROM_PageAdd36 = ((CSP_REGISTER_T)0x00002400),
|
||||
PROM_PageAdd37 = ((CSP_REGISTER_T)0x00002500),
|
||||
PROM_PageAdd38 = ((CSP_REGISTER_T)0x00002600),
|
||||
PROM_PageAdd39 = ((CSP_REGISTER_T)0x00002700),
|
||||
|
||||
PROM_PageAdd40 = ((CSP_REGISTER_T)0x00002800),
|
||||
PROM_PageAdd41 = ((CSP_REGISTER_T)0x00002900),
|
||||
PROM_PageAdd42 = ((CSP_REGISTER_T)0x00002A00),
|
||||
PROM_PageAdd43 = ((CSP_REGISTER_T)0x00002B00),
|
||||
PROM_PageAdd44 = ((CSP_REGISTER_T)0x00002C00),
|
||||
PROM_PageAdd45 = ((CSP_REGISTER_T)0x00002D00),
|
||||
PROM_PageAdd46 = ((CSP_REGISTER_T)0x00002E00),
|
||||
PROM_PageAdd47 = ((CSP_REGISTER_T)0x00002F00),
|
||||
PROM_PageAdd48 = ((CSP_REGISTER_T)0x00003000),
|
||||
PROM_PageAdd49 = ((CSP_REGISTER_T)0x00003100),
|
||||
|
||||
PROM_PageAdd50 = ((CSP_REGISTER_T)0x00003200),
|
||||
PROM_PageAdd51 = ((CSP_REGISTER_T)0x00003300),
|
||||
PROM_PageAdd52 = ((CSP_REGISTER_T)0x00003400),
|
||||
PROM_PageAdd53 = ((CSP_REGISTER_T)0x00003500),
|
||||
PROM_PageAdd54 = ((CSP_REGISTER_T)0x00003600),
|
||||
PROM_PageAdd55 = ((CSP_REGISTER_T)0x00003700),
|
||||
PROM_PageAdd56 = ((CSP_REGISTER_T)0x00003800),
|
||||
PROM_PageAdd57 = ((CSP_REGISTER_T)0x00003900),
|
||||
PROM_PageAdd58 = ((CSP_REGISTER_T)0x00003A00),
|
||||
PROM_PageAdd59 = ((CSP_REGISTER_T)0x00003B00),
|
||||
|
||||
PROM_PageAdd60 = ((CSP_REGISTER_T)0x00003C00),
|
||||
PROM_PageAdd61 = ((CSP_REGISTER_T)0x00003D00),
|
||||
PROM_PageAdd62 = ((CSP_REGISTER_T)0x00003E00),
|
||||
PROM_PageAdd63 = ((CSP_REGISTER_T)0x00003F00),
|
||||
PROM_PageAdd64 = ((CSP_REGISTER_T)0x00004000),
|
||||
PROM_PageAdd65 = ((CSP_REGISTER_T)0x00004100),
|
||||
PROM_PageAdd66 = ((CSP_REGISTER_T)0x00004200),
|
||||
PROM_PageAdd67 = ((CSP_REGISTER_T)0x00004300),
|
||||
PROM_PageAdd68 = ((CSP_REGISTER_T)0x00004400),
|
||||
PROM_PageAdd69 = ((CSP_REGISTER_T)0x00004500),
|
||||
|
||||
PROM_PageAdd70 = ((CSP_REGISTER_T)0x00004600),
|
||||
PROM_PageAdd71 = ((CSP_REGISTER_T)0x00004700),
|
||||
PROM_PageAdd72 = ((CSP_REGISTER_T)0x00004800),
|
||||
PROM_PageAdd73 = ((CSP_REGISTER_T)0x00004900),
|
||||
PROM_PageAdd74 = ((CSP_REGISTER_T)0x00004A00),
|
||||
PROM_PageAdd75 = ((CSP_REGISTER_T)0x00004B00),
|
||||
PROM_PageAdd76 = ((CSP_REGISTER_T)0x00004C00),
|
||||
PROM_PageAdd77 = ((CSP_REGISTER_T)0x00004D00),
|
||||
PROM_PageAdd78 = ((CSP_REGISTER_T)0x00004E00),
|
||||
PROM_PageAdd79 = ((CSP_REGISTER_T)0x00004F00),
|
||||
|
||||
PROM_PageAdd80 = ((CSP_REGISTER_T)0x00005000),
|
||||
PROM_PageAdd81 = ((CSP_REGISTER_T)0x00005100),
|
||||
PROM_PageAdd82 = ((CSP_REGISTER_T)0x00005200),
|
||||
PROM_PageAdd83 = ((CSP_REGISTER_T)0x00005300),
|
||||
PROM_PageAdd84 = ((CSP_REGISTER_T)0x00005400),
|
||||
PROM_PageAdd85 = ((CSP_REGISTER_T)0x00005500),
|
||||
PROM_PageAdd86 = ((CSP_REGISTER_T)0x00005600),
|
||||
PROM_PageAdd87 = ((CSP_REGISTER_T)0x00005700),
|
||||
PROM_PageAdd88 = ((CSP_REGISTER_T)0x00005800),
|
||||
PROM_PageAdd89 = ((CSP_REGISTER_T)0x00005900),
|
||||
|
||||
PROM_PageAdd90 = ((CSP_REGISTER_T)0x00005A00),
|
||||
PROM_PageAdd91 = ((CSP_REGISTER_T)0x00005B00),
|
||||
PROM_PageAdd92 = ((CSP_REGISTER_T)0x00005C00),
|
||||
PROM_PageAdd93 = ((CSP_REGISTER_T)0x00005D00),
|
||||
PROM_PageAdd94 = ((CSP_REGISTER_T)0x00005E00),
|
||||
PROM_PageAdd95 = ((CSP_REGISTER_T)0x00005F00),
|
||||
PROM_PageAdd96 = ((CSP_REGISTER_T)0x00006000),
|
||||
PROM_PageAdd97 = ((CSP_REGISTER_T)0x00006100),
|
||||
PROM_PageAdd98 = ((CSP_REGISTER_T)0x00006200),
|
||||
PROM_PageAdd99 = ((CSP_REGISTER_T)0x00006300),
|
||||
|
||||
PROM_PageAdd100 = ((CSP_REGISTER_T)0x00006400),
|
||||
PROM_PageAdd101 = ((CSP_REGISTER_T)0x00006500),
|
||||
PROM_PageAdd102 = ((CSP_REGISTER_T)0x00006600),
|
||||
PROM_PageAdd103 = ((CSP_REGISTER_T)0x00006700),
|
||||
PROM_PageAdd104 = ((CSP_REGISTER_T)0x00006800),
|
||||
PROM_PageAdd105 = ((CSP_REGISTER_T)0x00006900),
|
||||
PROM_PageAdd106 = ((CSP_REGISTER_T)0x00006A00),
|
||||
PROM_PageAdd107 = ((CSP_REGISTER_T)0x00006B00),
|
||||
PROM_PageAdd108 = ((CSP_REGISTER_T)0x00006C00),
|
||||
PROM_PageAdd109 = ((CSP_REGISTER_T)0x00006D00),
|
||||
|
||||
PROM_PageAdd110 = ((CSP_REGISTER_T)0x00006E00),
|
||||
PROM_PageAdd111 = ((CSP_REGISTER_T)0x00006F00),
|
||||
PROM_PageAdd112 = ((CSP_REGISTER_T)0x00007000),
|
||||
PROM_PageAdd113 = ((CSP_REGISTER_T)0x00007100),
|
||||
PROM_PageAdd114 = ((CSP_REGISTER_T)0x00007200),
|
||||
PROM_PageAdd115 = ((CSP_REGISTER_T)0x00007300),
|
||||
PROM_PageAdd116 = ((CSP_REGISTER_T)0x00007400),
|
||||
PROM_PageAdd117 = ((CSP_REGISTER_T)0x00007500),
|
||||
PROM_PageAdd118 = ((CSP_REGISTER_T)0x00007600),
|
||||
PROM_PageAdd119 = ((CSP_REGISTER_T)0x00007700),
|
||||
|
||||
PROM_PageAdd120 = ((CSP_REGISTER_T)0x00007800),
|
||||
PROM_PageAdd121 = ((CSP_REGISTER_T)0x00007900),
|
||||
PROM_PageAdd122 = ((CSP_REGISTER_T)0x00007A00),
|
||||
PROM_PageAdd123 = ((CSP_REGISTER_T)0x00007B00),
|
||||
PROM_PageAdd124 = ((CSP_REGISTER_T)0x00007C00),
|
||||
PROM_PageAdd125 = ((CSP_REGISTER_T)0x00007D00),
|
||||
PROM_PageAdd126 = ((CSP_REGISTER_T)0x00007E00),
|
||||
PROM_PageAdd127 = ((CSP_REGISTER_T)0x00007F00),
|
||||
PROM_PageAdd128 = ((CSP_REGISTER_T)0x00008000),
|
||||
PROM_PageAdd129 = ((CSP_REGISTER_T)0x00008100),
|
||||
|
||||
PROM_PageAdd130 = ((CSP_REGISTER_T)0x00008200),
|
||||
PROM_PageAdd131 = ((CSP_REGISTER_T)0x00008300),
|
||||
PROM_PageAdd132 = ((CSP_REGISTER_T)0x00008400),
|
||||
PROM_PageAdd133 = ((CSP_REGISTER_T)0x00008500),
|
||||
PROM_PageAdd134 = ((CSP_REGISTER_T)0x00008600),
|
||||
PROM_PageAdd135 = ((CSP_REGISTER_T)0x00008700),
|
||||
PROM_PageAdd136 = ((CSP_REGISTER_T)0x00008800),
|
||||
PROM_PageAdd137 = ((CSP_REGISTER_T)0x00008900),
|
||||
PROM_PageAdd138 = ((CSP_REGISTER_T)0x00008A00),
|
||||
PROM_PageAdd139 = ((CSP_REGISTER_T)0x00008B00),
|
||||
|
||||
PROM_PageAdd140 = ((CSP_REGISTER_T)0x00008C00),
|
||||
PROM_PageAdd141 = ((CSP_REGISTER_T)0x00008D00),
|
||||
PROM_PageAdd142 = ((CSP_REGISTER_T)0x00008E00),
|
||||
PROM_PageAdd143 = ((CSP_REGISTER_T)0x00008F00),
|
||||
PROM_PageAdd144 = ((CSP_REGISTER_T)0x00009000),
|
||||
PROM_PageAdd145 = ((CSP_REGISTER_T)0x00009100),
|
||||
PROM_PageAdd146 = ((CSP_REGISTER_T)0x00009200),
|
||||
PROM_PageAdd147 = ((CSP_REGISTER_T)0x00009300),
|
||||
PROM_PageAdd148 = ((CSP_REGISTER_T)0x00009400),
|
||||
PROM_PageAdd149 = ((CSP_REGISTER_T)0x00009500),
|
||||
|
||||
PROM_PageAdd150 = ((CSP_REGISTER_T)0x00009600),
|
||||
PROM_PageAdd151 = ((CSP_REGISTER_T)0x00009700),
|
||||
PROM_PageAdd152 = ((CSP_REGISTER_T)0x00009800),
|
||||
PROM_PageAdd153 = ((CSP_REGISTER_T)0x00009900),
|
||||
PROM_PageAdd154 = ((CSP_REGISTER_T)0x00009A00),
|
||||
PROM_PageAdd155 = ((CSP_REGISTER_T)0x00009B00),
|
||||
PROM_PageAdd156 = ((CSP_REGISTER_T)0x00009C00),
|
||||
PROM_PageAdd157 = ((CSP_REGISTER_T)0x00009D00),
|
||||
PROM_PageAdd158 = ((CSP_REGISTER_T)0x00009E00),
|
||||
PROM_PageAdd159 = ((CSP_REGISTER_T)0x00009F00),
|
||||
|
||||
PROM_PageAdd160 = ((CSP_REGISTER_T)0x0000A000),
|
||||
PROM_PageAdd161 = ((CSP_REGISTER_T)0x0000A100),
|
||||
PROM_PageAdd162 = ((CSP_REGISTER_T)0x0000A200),
|
||||
PROM_PageAdd163 = ((CSP_REGISTER_T)0x0000A300),
|
||||
PROM_PageAdd164 = ((CSP_REGISTER_T)0x0000A400),
|
||||
PROM_PageAdd165 = ((CSP_REGISTER_T)0x0000A500),
|
||||
PROM_PageAdd166 = ((CSP_REGISTER_T)0x0000A600),
|
||||
PROM_PageAdd167 = ((CSP_REGISTER_T)0x0000A700),
|
||||
PROM_PageAdd168 = ((CSP_REGISTER_T)0x0000A800),
|
||||
PROM_PageAdd169 = ((CSP_REGISTER_T)0x0000A900),
|
||||
|
||||
PROM_PageAdd170 = ((CSP_REGISTER_T)0x0000AA00),
|
||||
PROM_PageAdd171 = ((CSP_REGISTER_T)0x0000AB00),
|
||||
PROM_PageAdd172 = ((CSP_REGISTER_T)0x0000AC00),
|
||||
PROM_PageAdd173 = ((CSP_REGISTER_T)0x0000AD00),
|
||||
PROM_PageAdd174 = ((CSP_REGISTER_T)0x0000AE00),
|
||||
PROM_PageAdd175 = ((CSP_REGISTER_T)0x0000AF00),
|
||||
PROM_PageAdd176 = ((CSP_REGISTER_T)0x0000B000),
|
||||
PROM_PageAdd177 = ((CSP_REGISTER_T)0x0000B100),
|
||||
PROM_PageAdd178 = ((CSP_REGISTER_T)0x0000B200),
|
||||
PROM_PageAdd179 = ((CSP_REGISTER_T)0x0000B300),
|
||||
|
||||
PROM_PageAdd180 = ((CSP_REGISTER_T)0x0000B400),
|
||||
PROM_PageAdd181 = ((CSP_REGISTER_T)0x0000B500),
|
||||
PROM_PageAdd182 = ((CSP_REGISTER_T)0x0000B600),
|
||||
PROM_PageAdd183 = ((CSP_REGISTER_T)0x0000B700),
|
||||
PROM_PageAdd184 = ((CSP_REGISTER_T)0x0000B800),
|
||||
PROM_PageAdd185 = ((CSP_REGISTER_T)0x0000B900),
|
||||
PROM_PageAdd186 = ((CSP_REGISTER_T)0x0000BA00),
|
||||
PROM_PageAdd187 = ((CSP_REGISTER_T)0x0000BB00),
|
||||
PROM_PageAdd188 = ((CSP_REGISTER_T)0x0000BC00),
|
||||
PROM_PageAdd189 = ((CSP_REGISTER_T)0x0000BD00),
|
||||
|
||||
PROM_PageAdd190 = ((CSP_REGISTER_T)0x0000BE00),
|
||||
PROM_PageAdd191 = ((CSP_REGISTER_T)0x0000BF00),
|
||||
PROM_PageAdd192 = ((CSP_REGISTER_T)0x0000C000),
|
||||
PROM_PageAdd193 = ((CSP_REGISTER_T)0x0000C100),
|
||||
PROM_PageAdd194 = ((CSP_REGISTER_T)0x0000C200),
|
||||
PROM_PageAdd195 = ((CSP_REGISTER_T)0x0000C300),
|
||||
PROM_PageAdd196 = ((CSP_REGISTER_T)0x0000C400),
|
||||
PROM_PageAdd197 = ((CSP_REGISTER_T)0x0000C500),
|
||||
PROM_PageAdd198 = ((CSP_REGISTER_T)0x0000C600),
|
||||
PROM_PageAdd199 = ((CSP_REGISTER_T)0x0000C700),
|
||||
|
||||
PROM_PageAdd200 = ((CSP_REGISTER_T)0x0000C800),
|
||||
PROM_PageAdd201 = ((CSP_REGISTER_T)0x0000C900),
|
||||
PROM_PageAdd202 = ((CSP_REGISTER_T)0x0000CA00),
|
||||
PROM_PageAdd203 = ((CSP_REGISTER_T)0x0000CB00),
|
||||
PROM_PageAdd204 = ((CSP_REGISTER_T)0x0000CC00),
|
||||
PROM_PageAdd205 = ((CSP_REGISTER_T)0x0000CD00),
|
||||
PROM_PageAdd206 = ((CSP_REGISTER_T)0x0000CE00),
|
||||
PROM_PageAdd207 = ((CSP_REGISTER_T)0x0000CF00),
|
||||
PROM_PageAdd208 = ((CSP_REGISTER_T)0x0000D000),
|
||||
PROM_PageAdd209 = ((CSP_REGISTER_T)0x0000D100),
|
||||
|
||||
PROM_PageAdd210 = ((CSP_REGISTER_T)0x0000D200),
|
||||
PROM_PageAdd211 = ((CSP_REGISTER_T)0x0000D300),
|
||||
PROM_PageAdd212 = ((CSP_REGISTER_T)0x0000D400),
|
||||
PROM_PageAdd213 = ((CSP_REGISTER_T)0x0000D500),
|
||||
PROM_PageAdd214 = ((CSP_REGISTER_T)0x0000D600),
|
||||
PROM_PageAdd215 = ((CSP_REGISTER_T)0x0000D700),
|
||||
PROM_PageAdd216 = ((CSP_REGISTER_T)0x0000D800),
|
||||
PROM_PageAdd217 = ((CSP_REGISTER_T)0x0000D900),
|
||||
PROM_PageAdd218 = ((CSP_REGISTER_T)0x0000DA00),
|
||||
PROM_PageAdd219 = ((CSP_REGISTER_T)0x0000DB00),
|
||||
|
||||
PROM_PageAdd220 = ((CSP_REGISTER_T)0x0000DC00),
|
||||
PROM_PageAdd221 = ((CSP_REGISTER_T)0x0000DD00),
|
||||
PROM_PageAdd222 = ((CSP_REGISTER_T)0x0000DE00),
|
||||
PROM_PageAdd223 = ((CSP_REGISTER_T)0x0000DF00),
|
||||
PROM_PageAdd224 = ((CSP_REGISTER_T)0x0000E000),
|
||||
PROM_PageAdd225 = ((CSP_REGISTER_T)0x0000E100),
|
||||
PROM_PageAdd226 = ((CSP_REGISTER_T)0x0000E200),
|
||||
PROM_PageAdd227 = ((CSP_REGISTER_T)0x0000E300),
|
||||
PROM_PageAdd228 = ((CSP_REGISTER_T)0x0000E400),
|
||||
PROM_PageAdd229 = ((CSP_REGISTER_T)0x0000E500),
|
||||
|
||||
PROM_PageAdd230 = ((CSP_REGISTER_T)0x0000E600),
|
||||
PROM_PageAdd231 = ((CSP_REGISTER_T)0x0000E700),
|
||||
PROM_PageAdd232 = ((CSP_REGISTER_T)0x0000E800),
|
||||
PROM_PageAdd233 = ((CSP_REGISTER_T)0x0000E900),
|
||||
PROM_PageAdd234 = ((CSP_REGISTER_T)0x0000EA00),
|
||||
PROM_PageAdd235 = ((CSP_REGISTER_T)0x0000EB00),
|
||||
PROM_PageAdd236 = ((CSP_REGISTER_T)0x0000EC00),
|
||||
PROM_PageAdd237 = ((CSP_REGISTER_T)0x0000ED00),
|
||||
PROM_PageAdd238 = ((CSP_REGISTER_T)0x0000EE00),
|
||||
PROM_PageAdd239 = ((CSP_REGISTER_T)0x0000EF00),
|
||||
|
||||
PROM_PageAdd240 = ((CSP_REGISTER_T)0x0000F000),
|
||||
PROM_PageAdd241 = ((CSP_REGISTER_T)0x0000F100),
|
||||
PROM_PageAdd242 = ((CSP_REGISTER_T)0x0000F200),
|
||||
PROM_PageAdd243 = ((CSP_REGISTER_T)0x0000F300),
|
||||
PROM_PageAdd244 = ((CSP_REGISTER_T)0x0000F400),
|
||||
PROM_PageAdd245 = ((CSP_REGISTER_T)0x0000F50),
|
||||
PROM_PageAdd246 = ((CSP_REGISTER_T)0x0000F600),
|
||||
PROM_PageAdd247 = ((CSP_REGISTER_T)0x0000F700),
|
||||
PROM_PageAdd248 = ((CSP_REGISTER_T)0x0000F800),
|
||||
PROM_PageAdd249 = ((CSP_REGISTER_T)0x0000F900),
|
||||
|
||||
PROM_PageAdd250 = ((CSP_REGISTER_T)0x0000FA00),
|
||||
PROM_PageAdd251 = ((CSP_REGISTER_T)0x0000FB00),
|
||||
PROM_PageAdd252 = ((CSP_REGISTER_T)0x0000FC00),
|
||||
PROM_PageAdd253 = ((CSP_REGISTER_T)0x0000FD00),
|
||||
PROM_PageAdd254 = ((CSP_REGISTER_T)0x0000FE00),
|
||||
PROM_PageAdd255 = ((CSP_REGISTER_T)0x0000FF00),
|
||||
|
||||
DROM_PageAdd0 = ((CSP_REGISTER_T)0x10000000), //DROM 每页64BYTE
|
||||
DROM_PageAdd1 = ((CSP_REGISTER_T)0x10000040),
|
||||
DROM_PageAdd2 = ((CSP_REGISTER_T)0x10000080),
|
||||
DROM_PageAdd3 = ((CSP_REGISTER_T)0x100000C0),
|
||||
DROM_PageAdd4 = ((CSP_REGISTER_T)0x10000100),
|
||||
DROM_PageAdd5 = ((CSP_REGISTER_T)0x10000140),
|
||||
DROM_PageAdd6 = ((CSP_REGISTER_T)0x10000180),
|
||||
DROM_PageAdd7 = ((CSP_REGISTER_T)0x100001C0),
|
||||
DROM_PageAdd8 = ((CSP_REGISTER_T)0x10000200),
|
||||
DROM_PageAdd9 = ((CSP_REGISTER_T)0x10000240),
|
||||
|
||||
DROM_PageAdd10 = ((CSP_REGISTER_T)0x10000280),
|
||||
DROM_PageAdd11 = ((CSP_REGISTER_T)0x100002C0),
|
||||
DROM_PageAdd12 = ((CSP_REGISTER_T)0x10000300),
|
||||
DROM_PageAdd13 = ((CSP_REGISTER_T)0x10000340),
|
||||
DROM_PageAdd14 = ((CSP_REGISTER_T)0x10000380),
|
||||
DROM_PageAdd15 = ((CSP_REGISTER_T)0x100003C0),
|
||||
DROM_PageAdd16 = ((CSP_REGISTER_T)0x10000400),
|
||||
DROM_PageAdd17 = ((CSP_REGISTER_T)0x10000440),
|
||||
DROM_PageAdd18 = ((CSP_REGISTER_T)0x10000480),
|
||||
DROM_PageAdd19 = ((CSP_REGISTER_T)0x100004C0),
|
||||
|
||||
DROM_PageAdd20 = ((CSP_REGISTER_T)0x10000500),
|
||||
DROM_PageAdd21 = ((CSP_REGISTER_T)0x10000540),
|
||||
DROM_PageAdd22 = ((CSP_REGISTER_T)0x10000580),
|
||||
DROM_PageAdd23 = ((CSP_REGISTER_T)0x100005C0),
|
||||
DROM_PageAdd24 = ((CSP_REGISTER_T)0x10000600),
|
||||
DROM_PageAdd25 = ((CSP_REGISTER_T)0x10000640),
|
||||
DROM_PageAdd26 = ((CSP_REGISTER_T)0x10000680),
|
||||
DROM_PageAdd27 = ((CSP_REGISTER_T)0x100006C0),
|
||||
DROM_PageAdd28 = ((CSP_REGISTER_T)0x10000700),
|
||||
DROM_PageAdd29 = ((CSP_REGISTER_T)0x10000740),
|
||||
|
||||
DROM_PageAdd30 = ((CSP_REGISTER_T)0x10000780),
|
||||
DROM_PageAdd31 = ((CSP_REGISTER_T)0x100007C0)
|
||||
}IFC_ROMSELETED_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief IFC INT mode
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
ERS_END_INT = (0x01ul),
|
||||
RGM_END_INT = ((0x01ul)<<1),
|
||||
PEP_END_INT = ((0x01ul)<<2),
|
||||
PROT_ERR_INT = ((0x01ul)<<12),
|
||||
UDEF_ERR_INT = ((0x01ul)<<13),
|
||||
ADDR_ERR_INT = ((0x01ul)<<14),
|
||||
OVW_ERR_INT = ((0x01ul)<<15)
|
||||
}IFC_INT_TypeDef;
|
||||
|
||||
|
||||
extern void ChipErase(void);
|
||||
extern void PageErase(IFC_ROMSELETED_TypeDef XROM_PageAd);
|
||||
extern void IFC_interrupt_CMD(FunctionalStatus NewState ,IFC_INT_TypeDef IFC_INT_x);
|
||||
extern void IFC_Int_Enable(void);
|
||||
extern void IFC_Int_Disable(void);
|
||||
extern void Page_ProgramData(unsigned int FlashAdd,unsigned int DataSize,volatile unsigned char *BufArry);
|
||||
extern void Page_ProgramData_int(unsigned int FlashAdd,unsigned int DataSize,volatile unsigned char *BufArry);
|
||||
extern void ReadDataArry(unsigned int RdStartAdd,unsigned int DataLength,volatile unsigned char *DataArryPoint);
|
||||
extern void ReadDataArry_U8(unsigned int RdStartAdd,unsigned int DataLength,volatile unsigned char *DataArryPoint);
|
||||
extern volatile unsigned int R_INT_FlashAdd;
|
||||
extern volatile unsigned char f_Drom_write_complete;
|
||||
extern volatile unsigned char f_Drom_writing;
|
||||
extern volatile unsigned char ifc_step;
|
||||
extern void Page_ProgramData_U32(unsigned int FlashAdd,unsigned int DataSize,volatile U32_T *BufArry);
|
||||
extern void ReadDataArry_U32(unsigned int RdStartAdd,unsigned int DataLength,volatile U32_T *DataArryPoint);
|
||||
#endif /**< apt32f102_ifc_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/
|
||||
280
Source/include/apt32f102_lpt.h
Normal file
280
Source/include/apt32f102_lpt.h
Normal file
@@ -0,0 +1,280 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file apt32f102_lpt.h
|
||||
* @author APT AE Team
|
||||
* @version V1.08
|
||||
* @date 2021/06/21
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef _apt32f102_lpt_H
|
||||
#define _apt32f102_lpt_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "apt32f102.h"
|
||||
|
||||
|
||||
#define LPT_RESET_VALUE (0x00000000)
|
||||
//--------------------------------------------------------------------------------
|
||||
//-----------------------------LPT value enum define--------------------------
|
||||
//--------------------------------------------------------------------------------
|
||||
/**
|
||||
* @brief LPT CLK EN register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPTCLK_DIS = 0,
|
||||
LPTCLK_EN = 1,
|
||||
}LPT_CLK_TypeDef;
|
||||
/**
|
||||
* @brief LPT CLK source register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_PCLK_DIV4= (0<<2),
|
||||
LPT_ISCLK = (1<<2),
|
||||
LPT_IMCLK_DIV4 = (2<<2),
|
||||
LPT_EMCLK = (3<<2),
|
||||
LPT_IN_RISE = (4<<2),
|
||||
LPT_IN_FALL = (5<<2),
|
||||
}LPT_CSS_TypeDef;
|
||||
/**
|
||||
* @brief LPT START SHADOW register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_SHADOW = (0<<6),
|
||||
LPT_IMMEDIATE= (1<<6),
|
||||
}LPT_SHDWSTP_TypeDef;
|
||||
/**
|
||||
* @brief LPT CLK div register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_PSC_DIV0= 0,
|
||||
LPT_PSC_DIV2= 1,
|
||||
LPT_PSC_DIV4= 2,
|
||||
LPT_PSC_DIV8= 3,
|
||||
LPT_PSC_DIV16= 4,
|
||||
LPT_PSC_DIV32= 5,
|
||||
LPT_PSC_DIV64= 6,
|
||||
LPT_PSC_DIV128= 7,
|
||||
LPT_PSC_DIV256= 8,
|
||||
LPT_PSC_DIV512= 9,
|
||||
LPT_PSC_DIV1024= 0X0A,
|
||||
LPT_PSC_DIV2048= 0X0B,
|
||||
LPT_PSC_DIV4096= 0X0C,
|
||||
}LPT_PSCDIV_TypeDef;
|
||||
/**
|
||||
* @brief LPT START SYN EN register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_SWSYNDIS= (0<<2),
|
||||
LPT_SWSYNEN= (1<<2),
|
||||
}LPT_SWSYN_TypeDef;
|
||||
/**
|
||||
* @brief LPT IO stop status register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_IDLE_Z= (0<<3), //High-impedance output
|
||||
LPT_IDLE_LOW= (1<<3),
|
||||
}LPT_IDLEST_TypeDef;
|
||||
/**
|
||||
* @brief LPT PRDLD register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_PRDLD_IMMEDIATELY= (0<<4),
|
||||
LPT_PRDLD_DUTY_END= (1<<4),
|
||||
}LPT_PRDLD_TypeDef;
|
||||
/**
|
||||
* @brief LPT POL register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_POL_HIGH= (0<<5),
|
||||
LPT_POL_LOW= (1<<5),
|
||||
}LPT_POL_TypeDef;
|
||||
/**
|
||||
* @brief LPT OPM register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_OPM_CONTINUOUS= (0<<6),
|
||||
LPT_OPM_ONCE= (1<<6),
|
||||
}LPT_OPM_TypeDef;
|
||||
/**
|
||||
* @brief LPT FLTIPSCLD register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_FLTIPSCLD_NULL= (0<<10),
|
||||
LPT_FLTIPSCLD_EN= (1<<10),
|
||||
}LPT_FLTIPSCLD_TypeDef;
|
||||
/**
|
||||
* @brief LPT FLTDEB register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_FLTDEB_00= (0<<13),
|
||||
LPT_FLTDEB_02= (1<<13),
|
||||
LPT_FLTDEB_03= (2<<13),
|
||||
LPT_FLTDEB_04= (3<<13),
|
||||
LPT_FLTDEB_06= (4<<13),
|
||||
LPT_FLTDEB_08= (5<<13),
|
||||
LPT_FLTDEB_16= (6<<13),
|
||||
LPT_FLTDEB_32= (7<<13),
|
||||
}LPT_FLTDEB_TypeDef;
|
||||
/**
|
||||
* @brief LPT PSCLD register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_PSCLD_0= (0<<16), //PSCR
|
||||
LPT_PSCLD_1= (1<<16),
|
||||
}LPT_PSCLD_TypeDef;
|
||||
/**
|
||||
* @brief LPT CMPLD register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_CMPLD_IMMEDIATELY= (0<<17),
|
||||
LPT_CMPLD_DUTY_END= (1<<17),
|
||||
}LPT_CMPLD_TypeDef;
|
||||
/**
|
||||
* @brief LPT TRGENX register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_TRGEN_DIS= (0<<0),
|
||||
LPT_TRGEN_EN= (1<<0),
|
||||
}LPT_TRGENX_TypeDef;
|
||||
/**
|
||||
* @brief LPT OSTMDX register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_OSTMD_CONTINUOUS= (0<<8),
|
||||
LPT_OSTMD_ONCE= (1<<8),
|
||||
}LPT_OSTMDX_TypeDef;
|
||||
/**
|
||||
* @brief LPT AREARM register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_AREARM_DIS= (0<<30),
|
||||
LPT_AREARM_EN= (1<<30),
|
||||
}LPT_AREARM_TypeDef;
|
||||
/**
|
||||
* @brief LPT SRCSEL register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_SRCSEL_DIS= (0<<0),
|
||||
LPT_SRCSEL_EN= (1<<0),
|
||||
}LPT_SRCSEL_TypeDef;
|
||||
/**
|
||||
* @brief LPT BLKINV register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_BLKINV_DIS= (0<<4),
|
||||
LPT_BLKINV_EN= (1<<4),
|
||||
}LPT_BLKINV_TypeDef;
|
||||
/**
|
||||
* @brief LPT CROSSMD register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_CROSSMD_DIS= (0<<7),
|
||||
LPT_CROSSMD_EN= (1<<7),
|
||||
}LPT_CROSSMD_TypeDef;
|
||||
/**
|
||||
* @brief LPT TRGSRC0 register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_TRGSRC0_DIS= (0<<0),
|
||||
LPT_TRGSRC0_ZRO= (1<<0),
|
||||
LPT_TRGSRC0_PRD= (2<<0),
|
||||
LPT_TRGSRC0_ZRO_PRD= (3<<0),
|
||||
LPT_TRGSRC0_CMP= (4<<0),
|
||||
}LPT_TRGSRC0_TypeDef;
|
||||
/**
|
||||
* @brief LPT ESYN0OE register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_ESYN0OE_DIS= (0<<20),
|
||||
LPT_ESYN0OE_EN= (1<<20),
|
||||
}LPT_ESYN0OE_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief LPT INT MASK SET/CLR Set
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_TRGEV0 = (0x01 << 0),
|
||||
LPT_MATCH = (0x01 << 1),
|
||||
LPT_PEND = (0x01 << 2),
|
||||
}LPT_IMSCR_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief LPT IO Set
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LPT_OUT_PA09 = 0,
|
||||
LPT_OUT_PB01 = 1,
|
||||
LPT_IN_PA10 = 2,
|
||||
}LPT_IOSET_TypeDef;
|
||||
|
||||
|
||||
#define LPT_DEBUG_MODE (0X01<<1)
|
||||
|
||||
|
||||
extern void LPT_DeInit(void);
|
||||
extern void LPT_IO_Init(LPT_IOSET_TypeDef IONAME);
|
||||
extern void LPT_Configure(LPT_CLK_TypeDef CLKX,LPT_CSS_TypeDef CSSX,LPT_SHDWSTP_TypeDef SHDWSTPX,
|
||||
LPT_PSCDIV_TypeDef PSCDIVX,U8_T FLTCKPRSX,LPT_OPM_TypeDef OPMX);
|
||||
extern void LPT_Debug_Mode(FunctionalStatus NewState);
|
||||
extern void LPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMP_DATA);
|
||||
extern void LPT_CNT_Write(U16_T CNT_DATA);
|
||||
extern U16_T LPT_PRDR_Read(void);
|
||||
extern U16_T LPT_CMP_Read(void);
|
||||
extern U16_T LPT_CNT_Read(void);
|
||||
extern void LPT_ControlSet_Configure(LPT_SWSYN_TypeDef SWSYNX,LPT_IDLEST_TypeDef IDLESTX,LPT_PRDLD_TypeDef PRDLDX,LPT_POL_TypeDef POLX,
|
||||
LPT_FLTDEB_TypeDef FLTDEBX,LPT_PSCLD_TypeDef PSCLDX,LPT_CMPLD_TypeDef CMPLDX);
|
||||
extern void LPT_SyncSet_Configure(LPT_TRGENX_TypeDef TRGENX,LPT_OSTMDX_TypeDef OSTMDX,LPT_AREARM_TypeDef AREARMX);
|
||||
extern void LPT_Trigger_Configure(LPT_SRCSEL_TypeDef SRCSELX,LPT_BLKINV_TypeDef BLKINVX,LPT_CROSSMD_TypeDef CROSSMDX,LPT_TRGSRC0_TypeDef TRGSRC0X,
|
||||
LPT_ESYN0OE_TypeDef ESYN0OEX,U16_T OFFSET_DATA,U16_T WINDOW_DATA,U8_T TRGEC0PRD_DATA);
|
||||
extern void LPT_Trigger_Cnt(U8_T TRGEV0CNT_DATA);
|
||||
extern void LPT_Trigger_EVPS(U8_T TRGEC0PRD_DATA,U8_T TRGEV0CNT_DATA);
|
||||
extern void LPT_Soft_Trigger(void);
|
||||
extern void LPT_Start(void);
|
||||
extern void LPT_Stop(void);
|
||||
extern void LPT_Soft_Reset(void);
|
||||
extern void LPT_REARM_Write(void);
|
||||
extern U8_T LPT_REARM_Read(void);
|
||||
extern void LPT_ConfigInterrupt_CMD(FunctionalStatus NewState,LPT_IMSCR_TypeDef LPT_IMSCR_X);
|
||||
extern void LPT_INT_ENABLE(void);
|
||||
extern void LPT_INT_DISABLE(void);
|
||||
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
#endif /**< apt32f102_lpt_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/
|
||||
526
Source/include/apt32f102_syscon.h
Normal file
526
Source/include/apt32f102_syscon.h
Normal file
@@ -0,0 +1,526 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file main.c
|
||||
* @author APT AE Team
|
||||
* @version V1.09
|
||||
* @date 2021/07/30
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef _apt32f102_syscon_H
|
||||
#define _apt32f102_syscon_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "apt32f102.h"
|
||||
/******************************************************************************
|
||||
************************* syscon Registers Definition *************************
|
||||
******************************************************************************/
|
||||
/** @addtogroup SYSCON Registers Reset Value
|
||||
* @{
|
||||
*/
|
||||
|
||||
#define SYSCON_IDCCR_RST ((CSP_REGISTER_T)0x00000001)
|
||||
#define SYSCON_GCER_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_GCDR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_GCSR_RST ((CSP_REGISTER_T)0x00081103)
|
||||
#define SYSCON_CKST_RST ((CSP_REGISTER_T)0x00000103)
|
||||
#define SYSCON_RAMCHK_RST ((CSP_REGISTER_T)0x0000ffff)
|
||||
#define SYSCON_EFLCHK_RST ((CSP_REGISTER_T)(0X0<<24)|0xffffff)
|
||||
#define SYSCON_SCLKCR_RST ((CSP_REGISTER_T)0xD22Dul<<16)
|
||||
#define SYSCON_PCLKCR_RST ((CSP_REGISTER_T)0x00000100)
|
||||
#define SYSCON_PCER0_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_PCDR0_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_PCSR0_RST ((CSP_REGISTER_T)0x005107d1)
|
||||
#define SYSCON_PCER1_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_PCDR1_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_PCSR1_RST ((CSP_REGISTER_T)0x3023f80)
|
||||
#define SYSCON_OSTR_RST ((CSP_REGISTER_T)0x70ff3bff)
|
||||
#define SYSCON_LVDCR_RST ((CSP_REGISTER_T)0x0000000a)
|
||||
#define SYSCON_CLCR_RST ((CSP_REGISTER_T)0x00000100)
|
||||
#define SYSCON_PWRCR_RST ((CSP_REGISTER_T)0x141f1f00)
|
||||
#define SYSCON_IMER_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_IMDR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_IMCR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_IAR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_ICR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_RISR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_MISR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_EXIRT_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_EXIFT_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_EXIER_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_EXIDR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_EXIMR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_EXIAR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_EXICR_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_EXIRS_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_IWDCR_RST ((CSP_REGISTER_T)0x0000070C)
|
||||
#define SYSCON_IWDCNT_RST ((CSP_REGISTER_T)0x000003fe)
|
||||
#define SYSCON_PWROPT_RST ((CSP_REGISTER_T)0x00004040)
|
||||
#define SYSCON_EVTRG_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_EVPS_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_EVSWF_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_UREG0_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_UREG1_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_UREG2_RST ((CSP_REGISTER_T)0x00000000)
|
||||
#define SYSCON_UREG3_RST ((CSP_REGISTER_T)0x00000000)
|
||||
|
||||
//SCLKCR
|
||||
#define SYSCLK_KEY (0xD22Dul<<16)
|
||||
|
||||
//PCLK CONTROL
|
||||
#define PCLK_KEY (0xC33Cul<<16)
|
||||
|
||||
//IDCCR
|
||||
#define CLKEN (0X01ul)
|
||||
#define CPUFTRST_EN (0X00<<1)
|
||||
#define CPUFTRST_DIS (0XA<<1)
|
||||
#define SWRST (0X01ul<<7)
|
||||
#define IDCCR_KEY (0xE11Eul<<16)
|
||||
|
||||
//LVDCR
|
||||
#define LVDFLAG (0x01ul<<15) //0: VDD is higher than LVD threshold selected with INTDET_LVL bits. 1: VDD is lower than LVD threshold selected with INTDET_LVL bits
|
||||
#define LVD_KEY (0xB44Bul<<16)
|
||||
|
||||
//IECR IEDR IAR ICR IMSR RISR ISR
|
||||
//Interrupt Enable/Disable/Active/Clear Control Register
|
||||
//Interrupt Masking/Raw Interrupt/Masked Status Register
|
||||
#define ISOSC_ST (0x01ul)
|
||||
#define IMOSC_ST (0x01ul<<1)
|
||||
#define ESOSC_ST (0x01ul<<2)
|
||||
#define EMOSC_ST (0x01ul<<3)
|
||||
#define HFOSC_ST (0x01ul<<4)
|
||||
#define SYSCLK_ST (0x01ul<<7)
|
||||
#define IWDT_INT_ST (0x01ul<<8)
|
||||
#define WKI_INT_ST (0x01ul<<9)
|
||||
#define RAMERRINT_ST (0X01ul<<10)
|
||||
#define LVD_INT_ST (0x01ul<<11)
|
||||
#define HWD_ERR_ST (0X01ul<<12)
|
||||
#define EFL_ERR_ST (0X01ul<<13)
|
||||
#define OPTERR_INT (0X01ul<<14)
|
||||
#define EM_CMLST_ST (0x01ul<<18)
|
||||
#define EM_EVTRG0_ST (0x01ul<<19)
|
||||
#define EM_EVTRG1_ST (0x01ul<<20)
|
||||
#define EM_EVTRG2_ST (0x01ul<<21)
|
||||
#define EM_EVTRG3_ST (0x01ul<<22)
|
||||
#define CMD_ERR_ST (0x01ul<<29)
|
||||
|
||||
//RSR
|
||||
//SYSCON Reset Status Register
|
||||
#define PORST (0X01ul)
|
||||
#define LVRRST (0X01ul<<1)
|
||||
#define EXTRST (0X01ul<<2)
|
||||
#define ALVRST (0X01ul<<3)
|
||||
#define IWDRST (0X01ul<<4)
|
||||
#define EMCMRST (0X01ul<<6)
|
||||
#define CPURSTREQ (0X01ul<<7)
|
||||
#define SWRST_RSR (0X01ul<<8)
|
||||
#define CPUFAULT_RSR (0X01ul<<9)
|
||||
#define SRAM_RSR (0X01ul<<11)
|
||||
#define EFL_ERR (0X01ul<<12)
|
||||
#define WWDTRST (0X01ul<<13)
|
||||
|
||||
//IWDCR
|
||||
#define Check_IWDT_BUSY (0x01ul<<12) //Indicates the independent watchdog operation
|
||||
#define IWDT_KEY (0x8778ul<<16)
|
||||
|
||||
//IWDCNT
|
||||
#define CLR_IWDT (0x5aul<<24)
|
||||
|
||||
//IWDEDR
|
||||
#define Enable_IWDT (0x0)
|
||||
#define Disable_IWDT (0x55aa)
|
||||
#define IWDTEDR_KEY (0x7887ul<<16)
|
||||
|
||||
#define CORET_IRQ 0
|
||||
#define SYSCON_IRQ 1
|
||||
#define IFC_IRQ 2
|
||||
#define ADC_IRQ 3
|
||||
#define EPT0_IRQ 4
|
||||
#define WWDT_IRQ 6
|
||||
#define EXI0_IRQ 7
|
||||
#define EXI1_IRQ 8
|
||||
#define GPT0_IRQ 9
|
||||
#define RTC_IRQ 12
|
||||
#define UART0_IRQ 13
|
||||
#define UART1_IRQ 14
|
||||
#define UART2_IRQ 15
|
||||
#define I2C_IRQ 17
|
||||
#define SPI_IRQ 19
|
||||
#define SIO_IRQ 20
|
||||
#define EXI2_IRQ 21
|
||||
#define EXI3_IRQ 22
|
||||
#define EXI4_IRQ 23
|
||||
#define CA_IRQ 24
|
||||
#define TKEY_IRQ 25
|
||||
#define LPT_IRQ 26
|
||||
#define BT0_IRQ 28
|
||||
#define BT1_IRQ 29
|
||||
|
||||
/**
|
||||
* @brief SYSCON General Control
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
ENDIS_ISOSC = (CSP_REGISTER_T)(0x01ul),
|
||||
ENDIS_IMOSC = (CSP_REGISTER_T)(0x01ul<<1),
|
||||
ENDIS_EMOSC = (CSP_REGISTER_T)(0x01ul<<3),
|
||||
ENDIS_HFOSC = (CSP_REGISTER_T)(0x01ul<<4),
|
||||
ENDIS_IDLE_PCLK = (CSP_REGISTER_T)(0x01ul<<8),
|
||||
ENDIS_SYSTICK = (CSP_REGISTER_T)(0x01ul<<11)
|
||||
}SYSCON_General_CMD_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief Selected SYSCON CLK
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
SYSCLK_IMOSC = (CSP_REGISTER_T)0x0ul, //IMOSC selected
|
||||
SYSCLK_EMOSC = (CSP_REGISTER_T)0x1ul, //EMOSC selected
|
||||
SYSCLK_HFOSC = (CSP_REGISTER_T)0x2ul, //HFOSC selected
|
||||
SYSCLK_ISOSC = (CSP_REGISTER_T)0x4ul //ISOSC selected
|
||||
}SystemCLK_TypeDef;
|
||||
/**
|
||||
* @brief SYSCON CLK Div
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
HCLK_DIV_1 = (CSP_REGISTER_T)(0x1ul<<8),
|
||||
HCLK_DIV_2 = (CSP_REGISTER_T)(0x2ul<<8),
|
||||
HCLK_DIV_3 = (CSP_REGISTER_T)(0x3ul<<8),
|
||||
HCLK_DIV_4 = (CSP_REGISTER_T)(0x4ul<<8),
|
||||
HCLK_DIV_5 = (CSP_REGISTER_T)(0x5ul<<8),
|
||||
HCLK_DIV_6 = (CSP_REGISTER_T)(0x6ul<<8),
|
||||
HCLK_DIV_7 = (CSP_REGISTER_T)(0x7ul<<8),
|
||||
HCLK_DIV_8 = (CSP_REGISTER_T)(0x8ul<<8),
|
||||
HCLK_DIV_12 = (CSP_REGISTER_T)(0x9ul<<8),
|
||||
HCLK_DIV_16 = (CSP_REGISTER_T)(0xAul<<8),
|
||||
HCLK_DIV_24 = (CSP_REGISTER_T)(0xBul<<8),
|
||||
HCLK_DIV_32 = (CSP_REGISTER_T)(0xCul<<8),
|
||||
HCLK_DIV_64 = (CSP_REGISTER_T)(0xDul<<8),
|
||||
HCLK_DIV_128 = (CSP_REGISTER_T)(0xEul<<8),
|
||||
HCLK_DIV_256 = (CSP_REGISTER_T)(0xFul<<8)
|
||||
}SystemCLK_Div_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief PCLK Div
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
PCLK_DIV_1 = (CSP_REGISTER_T)(0x00ul<<8),
|
||||
PCLK_DIV_2 = (CSP_REGISTER_T)(0x01ul<<8),
|
||||
PCLK_DIV_4 = (CSP_REGISTER_T)(0x02ul<<8),
|
||||
PCLK_DIV_8 = (CSP_REGISTER_T)(0x04ul<<8),
|
||||
PCLK_DIV_16 = (CSP_REGISTER_T)(0x08ul<<8)
|
||||
}PCLK_Div_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief LVD enable and disable
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
ENABLE_LVDEN = (CSP_REGISTER_T)0x00, //Power down LVD module
|
||||
DISABLE_LVDEN = (CSP_REGISTER_T)0x0a //Power down LVD module
|
||||
}X_LVDEN_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief Detection voltage level to trigger the LVD interrupt
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
INTDET_LVL_2_1V = (CSP_REGISTER_T)(0X00ul<<8), //2.1V
|
||||
INTDET_LVL_2_4V = (CSP_REGISTER_T)(0X01ul<<8), //2.4V
|
||||
INTDET_LVL_2_7V = (CSP_REGISTER_T)(0X02ul<<8), //2.7V
|
||||
INTDET_LVL_3_0V = (CSP_REGISTER_T)(0X03ul<<8), //3.0V
|
||||
INTDET_LVL_3_3V = (CSP_REGISTER_T)(0X04ul<<8), //3.3V
|
||||
INTDET_LVL_3_6V = (CSP_REGISTER_T)(0X05ul<<8), //3.6V
|
||||
INTDET_LVL_3_9V = (CSP_REGISTER_T)(0X06ul<<8), //3.9V
|
||||
}INTDET_LVL_X_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief Detection voltage level to generate reset
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
RSTDET_LVL_1_9V = (CSP_REGISTER_T)(0X00ul<<12), //1.9V
|
||||
RSTDET_LVL_2_2V = (CSP_REGISTER_T)(0X01ul<<12), //2.2V
|
||||
RSTDET_LVL_2_5V = (CSP_REGISTER_T)(0X02ul<<12), //2.5V
|
||||
RSTDET_LVL_2_8V = (CSP_REGISTER_T)(0X03ul<<12), //2.8V
|
||||
RSTDET_LVL_3_1V = (CSP_REGISTER_T)(0X04ul<<12), //3.1V
|
||||
RSTDET_LVL_3_4V = (CSP_REGISTER_T)(0X05ul<<12), //3.4V
|
||||
RSTDET_LVL_3_7V = (CSP_REGISTER_T)(0X06ul<<12), //3.7V
|
||||
RSTDET_LVL_4_0V = (CSP_REGISTER_T)(0X07ul<<12) //4.0V
|
||||
}RSTDET_LVL_X_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief Detection voltage level to trigger the LVD interrupt
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
ENABLE_LVD_INT = (CSP_REGISTER_T)(0X01ul<<11), //ENABLE LVD INT
|
||||
DISABLE_LVD_INT = (CSP_REGISTER_T)(0X00ul<<11) //DISABLE LVD INT
|
||||
}X_LVD_INT_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief EXI PIN
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
EXI_PIN0 = (CSP_REGISTER_T)(0X01ul),
|
||||
EXI_PIN1 = (CSP_REGISTER_T)(0X01ul<<1),
|
||||
EXI_PIN2 = (CSP_REGISTER_T)(0X01ul<<2),
|
||||
EXI_PIN3 = (CSP_REGISTER_T)(0X01ul<<3),
|
||||
EXI_PIN4 = (CSP_REGISTER_T)(0X01ul<<4),
|
||||
EXI_PIN5 = (CSP_REGISTER_T)(0X01ul<<5),
|
||||
EXI_PIN6 = (CSP_REGISTER_T)(0X01ul<<6),
|
||||
EXI_PIN7 = (CSP_REGISTER_T)(0X01ul<<7),
|
||||
EXI_PIN8 = (CSP_REGISTER_T)(0X01ul<<8),
|
||||
EXI_PIN9 = (CSP_REGISTER_T)(0X01ul<<9),
|
||||
EXI_PIN10 = (CSP_REGISTER_T)(0X01ul<<10),
|
||||
EXI_PIN11 = (CSP_REGISTER_T)(0X01ul<<11),
|
||||
EXI_PIN12 = (CSP_REGISTER_T)(0X01ul<<12),
|
||||
EXI_PIN13 = (CSP_REGISTER_T)(0X01ul<<13),
|
||||
EXI_PIN14 = (CSP_REGISTER_T)(0X01ul<<14),
|
||||
EXI_PIN15 = (CSP_REGISTER_T)(0X01ul<<15),
|
||||
EXI_PIN16 = (CSP_REGISTER_T)(0X01ul<<16),
|
||||
EXI_PIN17 = (CSP_REGISTER_T)(0X01ul<<17),
|
||||
EXI_PIN18 = (CSP_REGISTER_T)(0X01ul<<18),
|
||||
EXI_PIN19 = (CSP_REGISTER_T)(0X01ul<<19),
|
||||
}SYSCON_EXIPIN_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief EXT register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
_EXIRT = 0,
|
||||
_EXIFT = 1,
|
||||
}EXI_tringer_mode_TypeDef;
|
||||
|
||||
|
||||
/**
|
||||
* @brief SYSON IWDT TIME SET
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
IWDT_TIME_125MS = (CSP_REGISTER_T)(0x00ul<<8), //IWDT_TIME 0x00fff
|
||||
IWDT_TIME_250MS = (CSP_REGISTER_T)(0x01ul<<8), //IWDT_TIME 0x01fff
|
||||
IWDT_TIME_500MS = (CSP_REGISTER_T)(0x02ul<<8), //IWDT_TIME 0x03fff
|
||||
IWDT_TIME_1S = (CSP_REGISTER_T)(0x03ul<<8), //IWDT_TIME 0x07fff
|
||||
IWDT_TIME_2S = (CSP_REGISTER_T)(0x04ul<<8), //IWDT_TIME 0x0ffff //2M ISOSC 2sec
|
||||
IWDT_TIME_3S = (CSP_REGISTER_T)(0x05ul<<8), //IWDT_TIME 0x16fff
|
||||
IWDT_TIME_4S = (CSP_REGISTER_T)(0x06ul<<8), //IWDT_TIME 0x1ffff
|
||||
IWDT_TIME_8S = (CSP_REGISTER_T)(0x07ul<<8) //IWDT_TIME 0x3ffff
|
||||
}IWDT_TIME_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief SYSON IWDT TIME DIV SET
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
IWDT_INTW_DIV_1 = (0x00ul<<2), //1/8 of IWDT_TIME
|
||||
IWDT_INTW_DIV_2 = (0x01ul<<2), //2/8 of IWDT_TIME
|
||||
IWDT_INTW_DIV_3 = (0x02ul<<2), //3/8 of IWDT_TIME
|
||||
IWDT_INTW_DIV_4 = (0x03ul<<2), //4/8 of IWDT_TIME
|
||||
IWDT_INTW_DIV_5 = (0x04ul<<2), //5/8 of IWDT_TIME
|
||||
IWDT_INTW_DIV_6 = (0x05ul<<2), //6/8 of IWDT_TIME
|
||||
IWDT_INTW_DIV_7 = (0x06ul<<2) //7/8 of IWDT_TIME
|
||||
}IWDT_TIMEDIV_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief IMOSC SELECTE SET
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
IMOSC_SELECTE_5556K = (0x00ul<<0),
|
||||
IMOSC_SELECTE_4194K = (0x01ul<<0),
|
||||
IMOSC_SELECTE_2097K = (0x02ul<<0),
|
||||
IMOSC_SELECTE_131K = (0x03ul<<0)
|
||||
}IMOSC_SELECTE_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief HFOSC SELECTE SET
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
HFOSC_SELECTE_48M = (0x0ul<<4),
|
||||
HFOSC_SELECTE_24M = (0x1ul<<4),
|
||||
HFOSC_SELECTE_12M = (0x2ul<<4),
|
||||
HFOSC_SELECTE_6M = (0x3ul<<4)
|
||||
}HFOSC_SELECTE_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief EM Filter set
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
EM_FLSEL_5ns = (0x0ul<<26),
|
||||
EM_FLSEL_10ns = (0x1ul<<26),
|
||||
EM_FLSEL_15ns = (0x2ul<<26),
|
||||
EM_FLSEL_20ns = (0x3ul<<26)
|
||||
}EM_Filter_TypeDef;
|
||||
/**
|
||||
* @brief EM Filter CMD
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
EM_FLEN_DIS = (0x0ul<<25),
|
||||
EM_FLEN_EN = (0x1ul<<25)
|
||||
}EM_Filter_CMD_TypeDef;
|
||||
/**
|
||||
* @brief EM LFSEL BIT
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
EM_LFSEL_DIS = (0x0ul<<10),
|
||||
EM_LFSEL_EN = (0x1ul<<10)
|
||||
}EM_LFSEL_TypeDef;
|
||||
/**
|
||||
* @brief EM Systemclk data
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
EMOSC_24M = 0,
|
||||
EMOSC_16M = 1,
|
||||
EMOSC_12M = 2,
|
||||
EMOSC_8M = 3,
|
||||
EMOSC_4M = 4,
|
||||
EMOSC_36K = 5,
|
||||
IMOSC = 6,
|
||||
ISOSC = 7,
|
||||
HFOSC_48M = 8,
|
||||
HFOSC_24M = 9,
|
||||
HFOSC_12M = 10,
|
||||
HFOSC_6M = 11
|
||||
}SystemClk_data_TypeDef;
|
||||
typedef enum
|
||||
{
|
||||
CLO_PA02 = 0, //PA0.0 as clo
|
||||
CLO_PA08 = 1, //PA0.8 as clo
|
||||
}CLO_IO_TypeDef;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
INTDET_POL_fall = (1<<6), //fall Trigger
|
||||
INTDET_POL_X_rise = (2<<6), //rise Trigger
|
||||
INTDET_POL_X_riseORfall = (3<<6), //fall or rise Trigger
|
||||
}INTDET_POL_X_TypeDef;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
//IOMAP0
|
||||
PIN_I2C_SCL = 0X00, //
|
||||
PIN_I2C_SDA = 0X01, //
|
||||
PIN_GPT_CHA = 0X02, //
|
||||
PIN_GPT_CHB = 0X03, //
|
||||
PIN_SPI_MOSI = 0X04, //
|
||||
PIN_SPI_MISO = 0X05, //
|
||||
PIN_SPI_SCK = 0X06, //
|
||||
PIN_SPI_NSS = 0X07, //
|
||||
//IOMAP1
|
||||
PIN_UART0_RX = 0X10, //
|
||||
PIN_UART0_TX = 0X11, //
|
||||
PIN_EPT_CHAX = 0X12, //
|
||||
PIN_EPT_CHBX = 0X13, //
|
||||
PIN_EPT_CHCX = 0X14, //
|
||||
PIN_EPT_CHAY = 0X15, //
|
||||
PIN_EPT_CHBY = 0X16, //
|
||||
PIN_EPT_CHCY = 0X17, //
|
||||
}IOMAP_DIR_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief CLOMX Systemclk data
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
CLO_ISCLK = 0,
|
||||
CLO_IMCLK = 1,
|
||||
CLO_EMCLK = 3,
|
||||
CLO_HFCLK = 4,
|
||||
CLO_RTCCLK = 6,
|
||||
CLO_PCLK = 7,
|
||||
CLO_HCLK = 8,
|
||||
CLO_IWDTCLK = 9,
|
||||
CLO_SYSCLK = 0X0D,
|
||||
}SystemClk_CLOMX_TypeDef;
|
||||
|
||||
/**
|
||||
* @brief CLOMX Systemclk data
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
CLO_DIV0 = 1,
|
||||
CLO_DIV4 = 0,
|
||||
CLO_DIV2 = 2,
|
||||
CLO_DIV8 = 4,
|
||||
CLO_DIV16 = 5,
|
||||
}SystemClk_CLODIV_TypeDef;
|
||||
|
||||
/** @addtogroup SYSCON_Exported_functions
|
||||
* @{
|
||||
*/
|
||||
extern void SYSCON_RST_VALUE(void);
|
||||
extern void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X );
|
||||
extern void EMOSC_OSTR_Config(U16_T EM_CNT, U8_T EM_GM,EM_LFSEL_TypeDef EM_LFSEL_X, EM_Filter_CMD_TypeDef EM_FLEN_X, EM_Filter_TypeDef EM_FLSEL_X);
|
||||
extern void SystemCLK_HCLKDIV_PCLKDIV_Config(SystemCLK_TypeDef SYSCLK_X , SystemCLK_Div_TypeDef HCLK_DIV_X , PCLK_Div_TypeDef PCLK_DIV_X , SystemClk_data_TypeDef SystemClk_data_x );
|
||||
extern void SYSCON_WDT_CMD(FunctionalStatus NewState);
|
||||
extern void SYSCON_IWDCNT_Reload(void);
|
||||
extern void SYSCON_IWDCNT_Config(IWDT_TIME_TypeDef IWDT_TIME_X , IWDT_TIMEDIV_TypeDef IWDT_INTW_DIV_X );
|
||||
extern void SYSCON_LVD_Config(X_LVDEN_TypeDef X_LVDEN , INTDET_LVL_X_TypeDef INTDET_LVL_X , RSTDET_LVL_X_TypeDef RSTDET_LVL_X , X_LVD_INT_TypeDef X_LVD_INT , INTDET_POL_X_TypeDef INTDET_POL_X);
|
||||
extern void EXTI_trigger_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN , EXI_tringer_mode_TypeDef EXI_tringer_mode);
|
||||
extern void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN);
|
||||
extern void SYSCON_CLO_CONFIG(CLO_IO_TypeDef clo_io);
|
||||
extern U32_T SYSCON_Read_CINF0(void);
|
||||
extern U32_T SYSCON_Read_CINF1(void);
|
||||
extern void SYSCON_INT_Priority(void);
|
||||
extern void EXI0_Int_Enable(void);
|
||||
extern void EXI0_Int_Disable(void);
|
||||
extern void EXI1_Int_Enable(void);
|
||||
extern void EXI1_Int_Disable(void);
|
||||
extern void EXI2_Int_Enable(void);
|
||||
extern void EXI2_Int_Disable(void);
|
||||
extern void EXI3_Int_Enable(void);
|
||||
extern void EXI3_Int_Disable(void);
|
||||
extern void EXI4_Int_Enable(void);
|
||||
extern void EXI4_Int_Disable(void);
|
||||
extern void SYSCON_Int_Enable(void);
|
||||
extern void SYSCON_Int_Disable(void);
|
||||
extern void PCLK_goto_idle_mode(void);
|
||||
extern void PCLK_goto_deepsleep_mode(void);
|
||||
extern void LVD_Int_Enable(void);
|
||||
extern void LVD_Int_Disable(void);
|
||||
extern void IWDT_Int_Enable(void);
|
||||
extern void IWDT_Int_Disable(void);
|
||||
extern void EXI0_WakeUp_Enable(void);
|
||||
extern void EXI0_WakeUp_Disable(void);
|
||||
extern void EXI1_WakeUp_Enable(void);
|
||||
extern void EXI1_WakeUp_Disable(void);
|
||||
extern void EXI2_WakeUp_Enable(void);
|
||||
extern void EXI2_WakeUp_Disable(void);
|
||||
extern void EXI3_WakeUp_Enable(void);
|
||||
extern void EXI3_WakeUp_Disable(void);
|
||||
extern void EXI4_WakeUp_Enable(void);
|
||||
extern void EXI4_WakeUp_Disable(void);
|
||||
extern void SYSCON_WakeUp_Enable(void);
|
||||
extern void SYSCON_WakeUp_Disable(void);
|
||||
extern void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE);
|
||||
extern void SYSCON_Software_Reset(void);
|
||||
extern void SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_TypeDef HFOSC_SELECTE_X);
|
||||
extern void SYSCON_IMOSC_SELECTE(IMOSC_SELECTE_TypeDef IMOSC_SELECTE_X);
|
||||
extern void SystemCLK_Clear(void);
|
||||
extern void GPIO_Remap(CSP_GPIO_T *GPIOx,uint8_t bit,IOMAP_DIR_TypeDef iomap_data);
|
||||
extern void SYSCON_CLO_SRC_SET(SystemClk_CLOMX_TypeDef clomxr,SystemClk_CLODIV_TypeDef clodivr);
|
||||
extern void Set_INT_Priority(U8_T int_name,U8_T int_level);
|
||||
|
||||
extern U32_T Read_Reset_Status(void);
|
||||
#endif /**< apt32f102_syscon_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/
|
||||
245
Source/include/apt32f102_types_local.h
Normal file
245
Source/include/apt32f102_types_local.h
Normal file
@@ -0,0 +1,245 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file apt32f102_types_local.h
|
||||
* @author APT AE Team
|
||||
* @version V1.08
|
||||
* @date 2021/06/21
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef TYPES_LOCAL_H
|
||||
#define TYPES_LOCAL_H
|
||||
/**************************************************************************/
|
||||
|
||||
/**************************************************************************
|
||||
STANDARD DEFINES
|
||||
**************************************************************************/
|
||||
#define NIL '\000'
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#define YES 1
|
||||
#define NO 0
|
||||
#define ON 1
|
||||
#define OFF 0
|
||||
#define GOOD 1
|
||||
#define BAD 0
|
||||
|
||||
#define BELL 7 /* Ring the bell */
|
||||
#define MAX_SINT16 32767
|
||||
#define CPNULL ((char *)0)
|
||||
#define NONENTRY -1.0E12
|
||||
#define DPIE (DOUBLE)3.141592653589793
|
||||
|
||||
/* other stuff... */
|
||||
#define STRNCPY(a,b,c) strncpy (a,b,c); (*((a)+(c)) = 0x00);
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
STANDARD TYPEDEFS
|
||||
|
||||
The ANSI C std defines:
|
||||
short <= int <= long
|
||||
char >= 8 bits
|
||||
short >= 16 bits
|
||||
long >= 32 bits
|
||||
(from Harbison & Steele, "C, A Ref. Manual" 3rd ed. p. 99)
|
||||
|
||||
so all ANSI C compliant compilers will accept the following.
|
||||
**************************************************************************/
|
||||
#ifndef CSP_TYPES_H
|
||||
#define CSP_TYPES_H
|
||||
|
||||
|
||||
/* Signed Types */
|
||||
typedef signed char S8_T;
|
||||
typedef short S16_T;
|
||||
typedef long S32_T;
|
||||
|
||||
/* Unsigned Types */
|
||||
typedef unsigned char U8_T;
|
||||
typedef unsigned short U16_T;
|
||||
typedef unsigned long U32_T;
|
||||
typedef unsigned long long U64_T;
|
||||
|
||||
/* Float Types */
|
||||
typedef float F32_T;
|
||||
typedef double F64_T;
|
||||
|
||||
/* Boolean types declared as U8_T, as enums are generated as 16 bit */
|
||||
typedef U8_T B_T;
|
||||
|
||||
/* Definitions for the two members of the Boolean type */
|
||||
#ifndef FALSE
|
||||
#define FALSE ((B_T) 0)
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE ((B_T) 1)
|
||||
#endif
|
||||
|
||||
/* UNUSED Definition for unused Interrupt numbers * and unused PDC channels */
|
||||
/* in the CHIP structure. (cf. CSP.C file) */
|
||||
#ifndef UNUSED
|
||||
#define UNUSED ((U8_T) 0xFF)
|
||||
#endif
|
||||
|
||||
/* NULL definition */
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
typedef enum {ENABLE = 1, DISABLE = !ENABLE} ClockStatus, FunctionalStatus;
|
||||
typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;
|
||||
typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus;
|
||||
|
||||
/******************************************************************************
|
||||
* Peripherals Type
|
||||
******************************************************************************/
|
||||
typedef volatile U32_T CSP_REGISTER_T;
|
||||
typedef volatile U16_T CSP_REGISTER16_T;
|
||||
typedef volatile U8_T CSP_REGISTER8_T;
|
||||
|
||||
#endif /* CSP_TYPE_H */
|
||||
|
||||
/* define 8 bit types */
|
||||
typedef unsigned char UINT8;
|
||||
typedef signed char SINT8;
|
||||
|
||||
/* define 16 bit types */
|
||||
typedef unsigned short UINT16;
|
||||
typedef signed short SINT16;
|
||||
|
||||
/* define 32 bit types */
|
||||
typedef unsigned long UINT32;
|
||||
typedef signed long SINT32;
|
||||
|
||||
typedef void VOID;
|
||||
typedef signed char CHAR; /* be careful of EOF!!! (EOF = -1) */
|
||||
typedef unsigned char BOOL;
|
||||
typedef signed long TIME_T;
|
||||
|
||||
typedef float SINGLE;
|
||||
#ifdef DOUBLE
|
||||
#undef DOUBLE
|
||||
#endif
|
||||
typedef double DOUBLE;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned bit0 : 1;
|
||||
unsigned bit1 : 1;
|
||||
unsigned bit2 : 1;
|
||||
unsigned bit3 : 1;
|
||||
unsigned bit4 : 1;
|
||||
unsigned bit5 : 1;
|
||||
unsigned bit6 : 1;
|
||||
unsigned bit7 : 1;
|
||||
} REG8;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned bit0 : 1;
|
||||
unsigned bit1 : 1;
|
||||
unsigned bit2 : 1;
|
||||
unsigned bit3 : 1;
|
||||
unsigned bit4 : 1;
|
||||
unsigned bit5 : 1;
|
||||
unsigned bit6 : 1;
|
||||
unsigned bit7 : 1;
|
||||
unsigned bit8 : 1;
|
||||
unsigned bit9 : 1;
|
||||
unsigned bit10: 1;
|
||||
unsigned bit11: 1;
|
||||
unsigned bit12: 1;
|
||||
unsigned bit13: 1;
|
||||
unsigned bit14: 1;
|
||||
unsigned bit15: 1;
|
||||
} REG16;
|
||||
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
STANDARD STRING TYPEDEFS
|
||||
**************************************************************************/
|
||||
typedef char STRING_3[4];
|
||||
typedef char STRING_5[6];
|
||||
typedef char STRING_8[9];
|
||||
typedef char STRING_10[11];
|
||||
typedef char STRING_12[13];
|
||||
typedef char STRING_16[17];
|
||||
typedef char STRING_24[25];
|
||||
typedef char STRING_30[31];
|
||||
typedef char STRING_32[33];
|
||||
typedef char STRING_48[49];
|
||||
typedef char STRING_50[51];
|
||||
typedef char STRING_60[61];
|
||||
typedef char STRING_80[81];
|
||||
typedef char STRING_132[133];
|
||||
typedef char STRING_256[257];
|
||||
typedef char STRING_512[513];
|
||||
|
||||
|
||||
/********************************************/
|
||||
/* STANDARD SYSTEM SIZES */
|
||||
/********************************************/
|
||||
#define SIZE_UINT8 (size_t)(sizeof (UINT8 ))
|
||||
#define SIZE_SINT8 (size_t)(sizeof (SINT8 ))
|
||||
|
||||
#define SIZE_UINT16 (size_t)(sizeof (UINT16))
|
||||
#define SIZE_SINT16 (size_t)(sizeof (SINT16))
|
||||
|
||||
#define SIZE_UINT32 (size_t)(sizeof (UINT32))
|
||||
#define SIZE_SINT32 (size_t)(sizeof (SINT32))
|
||||
|
||||
#define SIZE_VOID (size_t)(sizeof (VOID ))
|
||||
#define SIZE_CHAR (size_t)(sizeof (CHAR ))
|
||||
#define SIZE_BOOL (size_t)(sizeof (BOOL ))
|
||||
#define SIZE_TIME_T (size_t)(sizeof (TIME_T))
|
||||
|
||||
#define SIZE_SINGLE (size_t)(sizeof (SINGLE))
|
||||
#define SIZE_DOUBLE (size_t)(sizeof (DOUBLE))
|
||||
|
||||
#define SIZE_STRING_3 (size_t)(sizeof (STRING_3 ))
|
||||
#define SIZE_STRING_5 (size_t)(sizeof (STRING_5 ))
|
||||
#define SIZE_STRING_8 (size_t)(sizeof (STRING_8 ))
|
||||
#define SIZE_STRING_10 (size_t)(sizeof (STRING_10 ))
|
||||
#define SIZE_STRING_12 (size_t)(sizeof (STRING_12 ))
|
||||
#define SIZE_STRING_16 (size_t)(sizeof (STRING_16 ))
|
||||
#define SIZE_STRING_24 (size_t)(sizeof (STRING_24 ))
|
||||
#define SIZE_STRING_30 (size_t)(sizeof (STRING_30 ))
|
||||
#define SIZE_STRING_32 (size_t)(sizeof (STRING_32 ))
|
||||
#define SIZE_STRING_48 (size_t)(sizeof (STRING_48 ))
|
||||
#define SIZE_STRING_50 (size_t)(sizeof (STRING_50 ))
|
||||
#define SIZE_STRING_60 (size_t)(sizeof (STRING_60 ))
|
||||
#define SIZE_STRING_80 (size_t)(sizeof (STRING_80 ))
|
||||
#define SIZE_STRING_132 (size_t)(sizeof (STRING_132))
|
||||
#define SIZE_STRING_256 (size_t)(sizeof (STRING_256))
|
||||
#define SIZE_STRING_512 (size_t)(sizeof (STRING_512))
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
STANDARD BIT MANIPULATIONS
|
||||
**************************************************************************/
|
||||
#define SETBIT( target, bit ) ((target) |= (1u << (bit)))
|
||||
#define CLRBIT( target, bit ) ((target) &= ~(1u << (bit)))
|
||||
#define TOGBIT( target, bit ) ((target) ^= (1u << (bit)))
|
||||
|
||||
#define ISBITSET( target, bit ) (!!((target) & (1u << (bit))))
|
||||
#define ISBITCLR( target, bit ) ( !((target) & (1u << (bit))))
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/
|
||||
145
Source/include/apt32f102_uart.h
Normal file
145
Source/include/apt32f102_uart.h
Normal file
@@ -0,0 +1,145 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file apt32f102_uart.h
|
||||
* @author APT AE Team
|
||||
* @version V1.13
|
||||
* @date 2021/12/13
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef _apt32f102_uart_H
|
||||
#define _apt32f102_uart_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "apt32f102.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
UART_PAR_NONE =0<<8, //无校验位
|
||||
UART_PAR_EVEN =4<<8, //偶校验位
|
||||
UART_PAR_ODD =5<<8, //奇校验位
|
||||
UART_PAR_SPACE =6<<8, //0校验位
|
||||
UART_PAR_MARK =7<<8 //1校验位
|
||||
}UART_PAR_TypeDef;
|
||||
/**
|
||||
* @brief UART IO setting
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
IO_UART0 = 0,
|
||||
IO_UART1 = 1,
|
||||
IO_UART2 = 2,
|
||||
}UART_NUM_TypeDef;
|
||||
/*****************************************************************************
|
||||
************************** UART Function defined *****************************
|
||||
******************************************************************************/
|
||||
#define UART_RESET_VALUE (0x00000000)
|
||||
/** SR : UART Status Register */
|
||||
#define UART_TX_FULL (0x01ul << 0) /**< Transmitter full */
|
||||
#define UART_RX_FULL (0x01ul << 1) /**< Receiver full */
|
||||
#define UART_TX_OVER (0x01ul << 2) /**< Transmitter buff over */
|
||||
#define UART_RX_OVER (0x01ul << 3) /**< Receiver buff over */
|
||||
|
||||
/** CTRL : UART Control Register */
|
||||
#define UART_TX (0x01ul << 0) /**< Transmitter Enable/disable */
|
||||
#define UART_RX (0x01ul << 1) /**< Receiver Enable/disable */
|
||||
#define UART_TX_INT (0x01ul << 2) /**< Transmitter INT Enable/disable */
|
||||
#define UART_RX_INT (0x01ul << 3) /**< Receiver INT Enable/disable */
|
||||
#define UART_TX_IOV (0x01ul << 4) /**< Transmitter INTOver Enable/disable*/
|
||||
#define UART_RX_IOV (0x01ul << 5) /**< Receiver INTOver Enable/disable */
|
||||
#define UART_PARUTY_ERR_INT (0x01ul << 7) /**< PARUTY ERROR Status */
|
||||
#define UART_TX_FIFO_INT (0x01ul << 12) /**< TX fifo int Enable/disable */
|
||||
#define UART_RX_FIFO_INT (0x01ul << 13) /**< RX fifo int Enable/disable */
|
||||
#define UART_RX_FIFOOV_INT (0x01ul << 18) /**< RX fifo int over Enable/disable */
|
||||
#define UART_TX_DONE_INT (0x01ul << 19) /**< Receiver TX done Enable/disable */
|
||||
|
||||
//#define UART_TEST_MODE (0x01ul << 6) /**< =1 Test mode */
|
||||
|
||||
/** ISR : UART Interrupt Status Register */
|
||||
#define UART_TX_INT_S (0x01ul << 0) /**< Transmitter INT Status */
|
||||
#define UART_RX_INT_S (0x01ul << 1) /**< Receiver INTStatus */
|
||||
#define UART_TX_IOV_S (0x01ul << 2) /**< Transmitter INTOver Status */
|
||||
#define UART_RX_IOV_S (0x01ul << 3) /**< Receiver INTOver Status */
|
||||
#define UART_PARUTY_ERR_S (0x01ul << 4) /**< PARUTY ERROR Status */
|
||||
#define UART_TXMIS_S (0x01ul << 5) /**< tx fifo Status */
|
||||
#define UART_RXMIS_S (0x01ul << 6) /**< rx fifo Status */
|
||||
#define UART_RORMIS_S (0x01ul << 7) /**< rx fifo over Status */
|
||||
#define UART_TX_DONE_S (0x01ul << 19) /**< Receiver INTOver Status */
|
||||
|
||||
/** Set DATA register */
|
||||
#define CSP_UART_SET_DATA(uart, val) ((uart)->DATA = (val))
|
||||
/** Get DATA register */
|
||||
#define CSP_UART_GET_DATA(uart) ((uart)->DATA)
|
||||
|
||||
/** Set SR register */
|
||||
#define CSP_UART_SET_SR(uart, val) ((uart)->SR = (val))
|
||||
/** Get SR register */
|
||||
#define CSP_UART_GET_SR(uart) ((uart)->SR)
|
||||
|
||||
/** Set CTRL register */
|
||||
#define CSP_UART_SET_CTRL(uart, val) ((uart)->CTRL = (val))
|
||||
/** Get CTRL register */
|
||||
#define CSP_UART_GET_CTRL(uart) ((uart)->CTRL)
|
||||
|
||||
/** Set ISR register */
|
||||
#define CSP_UART_SET_ISR(uart, val) ((uart)->ISR = (val))
|
||||
/** Get ISR register */
|
||||
#define CSP_UART_GET_ISR(uart) ((uart)->ISR)
|
||||
|
||||
/** Set BRDIV register */
|
||||
#define CSP_UART_SET_BRDIV(uart, val) ((uart)->BRDIV = (val))
|
||||
/** Get BRDIV register */
|
||||
#define CSP_UART_GET_BRDIV(uart) ((uart)->BRDIV)
|
||||
/** UART External Variable Declaration */
|
||||
#define UART_BUFSIZE 32
|
||||
extern volatile U16_T RxDataBuf[12];
|
||||
extern volatile U16_T RxDataPtr;
|
||||
extern volatile U16_T TxDataPtr;
|
||||
extern volatile U8_T RxDataFlag;
|
||||
extern volatile U8_T TxDataFlag;
|
||||
extern volatile U8_T Uart_send_Length;
|
||||
extern volatile U16_T Uart_send_Length_temp;
|
||||
extern volatile U8_T Uart_buffer[UART_BUFSIZE];
|
||||
/** UART External Functions Declaration */
|
||||
extern void UARTInit(CSP_UART_T *uart,U16_T baudrate_u16,UART_PAR_TypeDef PAR_DAT);
|
||||
extern void UARTClose(CSP_UART_T *uart);
|
||||
extern void UARTInitRxIntEn(CSP_UART_T *uart,U16_T baudrate_u16,UART_PAR_TypeDef PAR_DAT);
|
||||
extern void UARTInitRxTxIntEn(CSP_UART_T *uart,U16_T baudrate_u16,UART_PAR_TypeDef PAR_DAT);
|
||||
extern void UARTTxByte(CSP_UART_T *uart,U8_T txdata_u8);
|
||||
extern void UARTTransmit(CSP_UART_T *uart,U8_T *sourceAddress_u16,U16_T length_u16);
|
||||
extern U16_T UARTRxByte(CSP_UART_T *uart,U8_T *Rxdata_u16);
|
||||
extern U8_T UART_ReturnRxByte(CSP_UART_T *uart);
|
||||
extern U16_T UARTReceive(CSP_UART_T *uart,U8_T *destAddress_u16,U16_T length_u16);
|
||||
extern void UART0_DeInit(void);
|
||||
extern void UART1_DeInit(void);
|
||||
extern void UART2_DeInit(void);
|
||||
extern void UART_IO_Init(UART_NUM_TypeDef IO_UART_NUM , U8_T UART_IO_G);
|
||||
extern void UART0_Int_Enable(void);
|
||||
extern void UART1_Int_Enable(void);
|
||||
extern void UART2_Int_Enable(void);
|
||||
extern void UART0_Int_Disable(void);
|
||||
extern void UART1_Int_Disable(void);
|
||||
extern void UART2_Int_Disable(void);
|
||||
extern void UART0_WakeUp_Enable(void);
|
||||
extern void UART1_WakeUp_Enable(void);
|
||||
extern void UART2_WakeUp_Enable(void);
|
||||
extern void UART0_WakeUp_Disable(void);
|
||||
extern void UART1_WakeUp_Disable(void);
|
||||
extern void UART2_WakeUp_Disable(void);
|
||||
extern void UART0_CONFIG(void);
|
||||
extern void UART1_CONFIG(void);
|
||||
extern void UART2_CONFIG(void);
|
||||
extern void UARTTTransmit_data_set(CSP_UART_T *uart );
|
||||
extern void UARTTransmit_INT_Send(CSP_UART_T *uart );
|
||||
#endif /**< apt32f102_types_local_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2016 APT Chip *****END OF FILE****/
|
||||
65
Source/include/apt32f102_wwdt.h
Normal file
65
Source/include/apt32f102_wwdt.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file apt32f102_wwdt.h
|
||||
* @author APT AE Team
|
||||
* @version V1.02
|
||||
* @date 2020/11/20
|
||||
******************************************************************************
|
||||
*THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
|
||||
*CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
|
||||
*APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
|
||||
*INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
|
||||
*SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
|
||||
*CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
|
||||
*THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef _apt32f102_wwdt_H
|
||||
#define _apt32f102_wwdt_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "apt32f102.h"
|
||||
|
||||
#define WWDT_RESET_VALUE (0x00000000)
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
//-----------------------------wwdt value enum define--------------------------
|
||||
//--------------------------------------------------------------------------------
|
||||
/**
|
||||
* @brief PSC DIV register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
PCLK_4096_DIV0 = (0<<8),
|
||||
PCLK_4096_DIV2 = (1<<8),
|
||||
PCLK_4096_DIV4 = (2<<8),
|
||||
PCLK_4096_DIV8 = (3<<8),
|
||||
}WWDT_PSCDIV_TypeDef;
|
||||
/**
|
||||
* @brief WWDT DEBUG MODE register
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
WWDT_DBGDIS = (0<<10),
|
||||
WWDT_DBGEN = (1<<10),
|
||||
}WWDT_DBGEN_TypeDef;
|
||||
|
||||
#define WWDT_EVI 0X01
|
||||
|
||||
|
||||
extern void WWDT_DeInit(void);
|
||||
extern void WWDT_CONFIG(WWDT_PSCDIV_TypeDef PSCDIVX,U8_T WND_DATA,WWDT_DBGEN_TypeDef DBGENX);
|
||||
extern void WWDT_CMD(FunctionalStatus NewState);
|
||||
extern void WWDT_CNT_Load(U8_T cnt_data);
|
||||
extern void WWDT_Int_Config(FunctionalStatus NewState);
|
||||
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
#endif /**< apt32f102_wwdt_H */
|
||||
|
||||
/******************* (C) COPYRIGHT 2019 APT Chip *****END OF FILE****/
|
||||
Reference in New Issue
Block a user