📄 spce061a.h
字号:
//================================================================
//levension @SCUT
//my blog: http://www.ednchina.com/blog/levension/
//=================================================================
#ifndef __SPCE061A_h__
#define __SPCE061A_h__
// IO port control registers
#define P_IOA_Data (*(volatile unsigned int *)0x7000)
#define P_IOA_Buffer (*(volatile unsigned int *)0x7001)
#define P_IOA_Dir (*(volatile unsigned int *)0x7002)
#define P_IOA_Attrib (*(volatile unsigned int *)0x7003)
#define P_IOA_Latch (*(volatile unsigned int *)0x7004)
#define P_IOB_Data (*(volatile unsigned int *)0x7005)
#define P_IOB_Buffer (*(volatile unsigned int *)0x7006)
#define P_IOB_Dir (*(volatile unsigned int *)0x7007)
#define P_IOB_Attrib (*(volatile unsigned int *)0x7008)
// Timer control registers
#define P_TimerA_Data (*(volatile unsigned int *)0x700A)
#define P_TimerA_Ctrl (*(volatile unsigned int *)0x700B)
#define P_TimerB_Data (*(volatile unsigned int *)0x700C)
#define P_TimerB_Ctrl (*(volatile unsigned int *)0x700D)
// Timebase control registers
#define P_TimeBase_Setup (*(volatile unsigned int *)0x700E)
#define P_Timebase_Setup (*(volatile unsigned int *)0x700E) // Same as P_TimeBase_Setup
#define P_TimeBase_Clear (*(volatile unsigned int *)0x700F)
#define P_Timebase_Clear (*(volatile unsigned int *)0x700F) // Same as P_TimeBase_Clear
// Interrupt control registers
#define P_INT_Ctrl (*(volatile unsigned int *)0x7010)
#define P_INT_Clear (*(volatile unsigned int *)0x7011)
#define P_INT_Mask (*(volatile unsigned int *)0x702D)
#define P_INT_Ctrl_New (*(volatile unsigned int *)0x702D) // Same as P_INT_Mask
// Analog functions control registers
#define P_ADC (*(volatile unsigned int *)0x7014)
#define P_ADC_Ctrl (*(volatile unsigned int *)0x7015)
#define P_ADC_MUX_Ctrl (*(volatile unsigned int *)0x702B)
#define P_ADC_MUX_Data (*(volatile unsigned int *)0x702C)
#define P_ADC_LINEIN_Data (*(volatile unsigned int *)0x702C) // Same as P_ADC_MUX_Data
#define P_ADC_LineIn_Data (*(volatile unsigned int *)0x702C) // Same as P_ADC_MUX_Data
#define P_DAC_Ctrl (*(volatile unsigned int *)0x702A)
#define P_DAC1 (*(volatile unsigned int *)0x7017)
#define P_DAC2 (*(volatile unsigned int *)0x7016)
// Serial functions control registers
#define P_SIO_Data (*(volatile unsigned int *)0x701A)
#define P_SIO_Addr_Low (*(volatile unsigned int *)0x701B)
#define P_SIO_Addr_Mid (*(volatile unsigned int *)0x701C)
#define P_SIO_Addr_High (*(volatile unsigned int *)0x701D)
#define P_SIO_Ctrl (*(volatile unsigned int *)0x701E)
#define P_SIO_Start (*(volatile unsigned int *)0x701F)
#define P_SIO_Stop (*(volatile unsigned int *)0x7020)
#define P_UART_Command1 (*(volatile unsigned int *)0x7021)
#define P_UART_Command2 (*(volatile unsigned int *)0x7022)
#define P_UART_Data (*(volatile unsigned int *)0x7023)
#define P_UART_BaudScalarLow (*(volatile unsigned int *)0x7024)
#define P_UART_BaudScalarHigh (*(volatile unsigned int *)0x7025)
// Other control registers
#define P_Feedback (*(volatile unsigned int *)0x7009)
#define P_SystemClock (*(volatile unsigned int *)0x7013)
#define P_Watchdog_Clear (*(volatile unsigned int *)0x7012)
#define P_LVD_Ctrl (*(volatile unsigned int *)0x7019)
#define P_Flash_Ctrl (*(volatile unsigned int *)0x7555)
//***************************************************************************//
// Constant definitions //
//***************************************************************************//
// Constants for interrupt
#define C_FIQ_PWM 0x8000 // P_INT_Ctrl
#define C_FIQ_TMA 0x2000 // P_INT_Ctrl
#define C_FIQ_TMB 0x0800 // P_INT_Ctrl
#define C_IRQ0_PWM 0x4000 // P_INT_Ctrl
#define C_IRQ1_TMA 0x1000 // P_INT_Ctrl
#define C_IRQ2_TMB 0x0400 // P_INT_Ctrl
#define C_IRQ3_KEY 0x0080 // P_INT_Ctrl
#define C_IRQ3_EXT1 0x0100 // P_INT_Ctrl
#define C_IRQ3_EXT2 0x0200 // P_INT_Ctrl
#define C_IRQ4_1KHz 0x0010 // P_INT_Ctrl
#define C_IRQ4_2KHz 0x0020 // P_INT_Ctrl
#define C_IRQ4_4KHz 0x0040 // P_INT_Ctrl
#define C_IRQ5_2Hz 0x0004 // P_INT_Ctrl
#define C_IRQ5_4Hz 0x0008 // P_INT_Ctrl
#define C_IRQ6_TMB1 0x0002 // P_INT_Ctrl
#define C_IRQ6_TMB2 0x0001 // P_INT_Ctrl
// Constants for TimerA & TimerB
#define C_TMA1_FOSC_2 0x0000 // P_TimerA_Ctrl
#define C_TMA1_FOSC_256 0x0001 // P_TimerA_Ctrl
#define C_TMA1_32KHz 0x0002 // P_TimerA_Ctrl
#define C_TMA1_8KHz 0x0003 // P_TimerA_Ctrl
#define C_TMA1_4KHz 0x0004 // P_TimerA_Ctrl
#define C_TMA1_1 0x0005 // P_TimerA_Ctrl
#define C_TMA1_0 0x0006 // P_TimerA_Ctrl
#define C_TMA1_EXT1 0x0007 // P_TimerA_Ctrl
#define C_TMA2_2KHz 0x0000 // P_TimerA_Ctrl
#define C_TMA2_1KHz 0x0008 // P_TimerA_Ctrl
#define C_TMA2_256Hz 0x0010 // P_TimerA_Ctrl
#define C_TMA2_TMB1 0x0018 // P_TimerA_Ctrl
#define C_TMA2_4Hz 0x0020 // P_TimerA_Ctrl
#define C_TMA2_2Hz 0x0028 // P_TimerA_Ctrl
#define C_TMA2_1 0x0030 // P_TimerA_Ctrl
#define C_TMA2_EXT2 0x0038 // P_TimerA_Ctrl
#define C_TMA_PWM_OFF 0x0000 // P_TimerA_Ctrl
#define C_TMA_PWM_D1 0x0040 // P_TimerA_Ctrl
#define C_TMA_PWM_D2 0x0080 // P_TimerA_Ctrl
#define C_TMA_PWM_D3 0x00C0 // P_TimerA_Ctrl
#define C_TMA_PWM_D4 0x0100 // P_TimerA_Ctrl
#define C_TMA_PWM_D5 0x0140 // P_TimerA_Ctrl
#define C_TMA_PWM_D6 0x0180 // P_TimerA_Ctrl
#define C_TMA_PWM_D7 0x01C0 // P_TimerA_Ctrl
#define C_TMA_PWM_D8 0x0200 // P_TimerA_Ctrl
#define C_TMA_PWM_D9 0x0240 // P_TimerA_Ctrl
#define C_TMA_PWM_D10 0x0280 // P_TimerA_Ctrl
#define C_TMA_PWM_D11 0x02C0 // P_TimerA_Ctrl
#define C_TMA_PWM_D12 0x0300 // P_TimerA_Ctrl
#define C_TMA_PWM_D13 0x0340 // P_TimerA_Ctrl
#define C_TMA_PWM_D14 0x0380 // P_TimerA_Ctrl
#define C_TMA_PWM_TA 0x03C0 // P_TimerA_Ctrl
#define C_TMB_FOSC_2 0x0000 // P_TimerB_Ctrl
#define C_TMB_FOSC_256 0x0001 // P_TimerB_Ctrl
#define C_TMB_32KHz 0x0002 // P_TimerB_Ctrl
#define C_TMB_8KHz 0x0003 // P_TimerB_Ctrl
#define C_TMB_4KHz 0x0004 // P_TimerB_Ctrl
#define C_TMB_1 0x0005 // P_TimerB_Ctrl
#define C_TMB_0 0x0006 // P_TimerB_Ctrl
#define C_TMB_EXT1 0x0007 // P_TimerB_Ctrl
#define C_TMB_PWM_OFF 0x0000 // P_TimerB_Ctrl
#define C_TMB_PWM_D1 0x0040 // P_TimerB_Ctrl
#define C_TMB_PWM_D2 0x0080 // P_TimerB_Ctrl
#define C_TMB_PWM_D3 0x00C0 // P_TimerB_Ctrl
#define C_TMB_PWM_D4 0x0100 // P_TimerB_Ctrl
#define C_TMB_PWM_D5 0x0140 // P_TimerB_Ctrl
#define C_TMB_PWM_D6 0x0180 // P_TimerB_Ctrl
#define C_TMB_PWM_D7 0x01C0 // P_TimerB_Ctrl
#define C_TMB_PWM_D8 0x0200 // P_TimerB_Ctrl
#define C_TMB_PWM_D9 0x0240 // P_TimerB_Ctrl
#define C_TMB_PWM_D10 0x0280 // P_TimerB_Ctrl
#define C_TMB_PWM_D11 0x02C0 // P_TimerB_Ctrl
#define C_TMB_PWM_D12 0x0300 // P_TimerB_Ctrl
#define C_TMB_PWM_D13 0x0340 // P_TimerB_Ctrl
#define C_TMB_PWM_D14 0x0380 // P_TimerB_Ctrl
#define C_TMB_PWM_TB 0x03C0 // P_TimerB_Ctrl
// Constants for TimeBase
#define C_TMB1_8Hz 0x0000 // P_Timebase_Setup
#define C_TMB1_16Hz 0x0001 // P_Timebase_Setup
#define C_TMB1_32Hz 0x0002 // P_Timebase_Setup
#define C_TMB1_64Hz 0x0003 // P_Timebase_Setup
#define C_TMB2_128Hz 0x0000 // P_Timebase_Setup
#define C_TMB2_256Hz 0x0004 // P_Timebase_Setup
#define C_TMB2_512Hz 0x0008 // P_Timebase_Setup
#define C_TMB2_1024Hz 0x000c // P_Timebase_Setup
// Constants for system clock
#define C_Fosc_49M 0x0080 // P_SystemClock
#define C_Fosc_40M 0x0060 // P_SystemClock
#define C_Fosc_32M 0x0040 // P_SystemClock
#define C_Fosc_24M 0x0000 // P_SystemClock
#define C_Fosc_20M 0x0020 // P_SystemClock
#define C_Fosc 0x0000 // P_SystemClock
#define C_Fosc_Div_2 0x0001 // P_SystemClock
#define C_Fosc_Div_4 0x0002 // P_SystemClock
#define C_Fosc_Div_8 0x0003 // P_SystemClock
#define C_Fosc_Div_16 0x0004 // P_SystemClock
#define C_Fosc_Div_32 0x0005 // P_SystemClock
#define C_Fosc_Div_64 0x0006 // P_SystemClock
#define C_Sleep 0x0007 // P_SystemClock
#define C_StrongMode 0x0008 // P_SystemClock
#define C_AutoMode 0x0000 // P_SystemClock
#define C_32K_Work 0x0010 // P_SystemClock
#define C_32K_Off 0x0000 // P_SystemClock
// Constants for ADC & DAC
#define C_ADC_EN 0x0001 // P_ADC_Ctrl
#define C_ADC_DIS 0x0000 // P_ADC_Ctrl
#define C_MIC_RDY 0x8000 // P_ADC_Ctrl
#define C_MIC_EN 0x0000 // P_ADC_Ctrl
#define C_MIC_DIS 0x0002 // P_ADC_Ctrl
#define C_MIC_AGC_EN 0x0000 // P_ADC_Ctrl
#define C_MIC_AGC_DIS 0x0000 // P_ADC_Ctrl
#define C_VEXTREF_EN 0x0080 // P_ADC_Ctrl
#define C_VEXTREF_DIS 0x0000 // P_ADC_Ctrl
#define C_2V_EN 0x0100 // P_ADC_Ctrl
#define C_2V_DIS 0x0000 // P_ADC_Ctrl
#define C_DAC_3mA 0x0040 // P_ADC_Ctrl
#define C_DAC_2mA 0x0000 // P_ADC_Ctrl
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -