📄 spce061v004.h
字号:
//========================================================================================
// Progarm: The file be included by modules
// Arranged by: Lanin Lin
// Date: 2002/11/20: first version
// 2002/11/27: 2nd version ,add SIO initial
// 2003/04/30: 3nd version ,remove IRQ and FIQ prototype
//========================================================================================
#ifndef __SPCE061_H__
#define __SPCE061_H__
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
extern void Set_IOA_Dir(unsigned int);
extern unsigned int Get_IOA_Dir(void);
extern void Set_IOA_Attrib(unsigned int);
extern unsigned int Get_IOA_Attrib(void);
extern void Set_IOA_Data(unsigned int);
extern unsigned int Get_IOA_Data(void);
extern void Set_IOA_Buffer(unsigned int);
extern unsigned int Get_IOA_Buffer(void);
extern void Get_IOA_Latch(void);
//-----------------------------------------------------------------------------------//
extern void Set_IOB_Dir(unsigned int);
extern unsigned int Get_IOB_Dir(void);
extern void Set_IOB_Attrib(unsigned int);
extern unsigned int Get_IOB_Attrib(void);
extern void Set_IOB_Data(unsigned int);
extern unsigned int Get_IOB_Data(void);
extern void Set_IOB_Buffer(unsigned int);
extern unsigned int Get_IOB_Buffer(void);
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
extern void Set_TimerA_Data(unsigned int);
extern unsigned int Get_TimerA_Data(void);
extern void Set_TimerA_Ctrl(unsigned int);
//----------------Default Value-----------------------------//
#define C_TimerADefault 0x0036 //
//----------------TimerA TimeBase---------------------------//
#define C_SourceA_Fosc2 0x0000 //
#define C_SourceA_Fosc256 0x0001 //
#define C_SourceA_32768Hz 0x0002 //
#define C_SourceA_8192Hz 0x0003 //
#define C_SourceA_4096Hz 0x0004 //
#define C_SourceA_1 0x0005 //
#define C_SourceA_0 0x0006 //*
#define C_SourceA_Ext1 0x0007 //
//----------------------------------------------------------//
#define C_SourceB_2048Hz 0x0000 //
#define C_SourceB_1024Hz 0x0008 //
#define C_SourceB_256Hz 0x0010 //
#define C_SourceB_TMB1 0x0018 //
#define C_SourceB_4Hz 0x0020 //
#define C_SourceB_2Hz 0x0028 //
#define C_SourceB_1 0x0030 //*
#define C_SourceB_Ext2 0x0038 //
//-----------------------------------------------------------------------------------//
extern void Set_TimerB_Data(unsigned int);
extern unsigned int Get_TimerB_Data(void);
extern void Set_TimerB_Ctrl(unsigned int);
//----------------Default Value-----------------------------//
#define C_TimerBDefault 0x0006 //
//----------------TimerB TimeBase----------------------------//
#define C_SourceC_Fosc2 0x0000 //
#define C_SourceC_Fosc256 0x0001 //
#define C_SourceC_32768Hz 0x0002 //
#define C_SourceC_8192Hz 0x0003 //
#define C_SourceC_4096Hz 0x0004 //
#define C_SourceC_1 0x0005 //
#define C_SourceC_0 0x0006 //*
#define C_SourceC_Ext1 0x0007 //
//-----------------TimerA TimerB TimeBase--------------------------------------------//
#define C_DutyOff 0x0000 //
#define C_Duty1 0x0040 //
#define C_Duty2 0x0080 //
#define C_Duty3 0x00C0 //
#define C_Duty4 0x0100 //
#define C_Duty5 0x0140 //
#define C_Duty6 0x0180 //
#define C_Duty7 0x01C0 //
#define C_Duty8 0x0200 //
#define C_Duty9 0x0240 //
#define C_Duty10 0x0280 //
#define C_Duty11 0x02C0 //
#define C_Duty12 0x0300 //
#define C_Duty13 0x0340 //
#define C_Duty14 0x0380 //
#define C_Duty_Div_2 0x03C0 // Timer A&B
//----------------Default Value-----------------------------//
#define C_TimeBaseDefault 0x0000 //
//-----------------------------------------------------------------------------------//
extern void Set_TimeBase(unsigned int);
#define C_TMB1_8Hz 0x0000 //*
#define C_TMB1_16Hz 0x0001 //
#define C_TMB1_32Hz 0x0002 //
#define C_TMB1_64Hz 0x0003 //
#define C_TMB2_128Hz 0x0000 //*
#define C_TMB2_256Hz 0x0004 //
#define C_TMB2_512Hz 0x0008 //
#define C_TMB2_1024Hz 0x000C //
extern void Clear_TimeBase(void);
#define C_TMBCLR 0x5555 //
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
extern void Set_FeedBack(unsigned int);
#define C_FBKEN3 0x08 //Enable IOB3 and IOB5 FeedBack2
#define C_FBKEN2 0x04 //Enable IOB2 and IOB4 FeedBack1
#define C_IRTxEN 0x01 //Enable IOB8 and IOB10 IRTx / Tx
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
extern void Set_INT_Ctrl(unsigned int);
extern unsigned int Get_INT_Ctrl(void);
extern void Set_INT_Mask(unsigned int);
extern unsigned int Get_INT_Mask(void);
extern void INT_Clear(unsigned int);
#define C_IRQ6_TMB2 0x0001 // Timer B IRQ6
#define C_IRQ6_TMB1 0x0002 // Timer A IRQ6
#define C_IRQ5_2Hz 0x0004 // 2Hz IRQ5
#define C_IRQ5_4Hz 0x0008 // 4Hz IRQ5
#define C_IRQ4_1KHz 0x0010 // 1024Hz IRQ4
#define C_IRQ4_2KHz 0x0020 // 2048Hz IRQ4
#define C_IRQ4_4KHz 0x0040 // 4096Hz IRQ4
#define C_IRQ3_KEY 0x0080 // Key Change IRQ3
#define C_IRQ3_EXT1 0x0100 // Ext1 IRQ3
#define C_IRQ3_EXT2 0x0200 // Ext2 IRQ3
#define C_IRQ2_TMB 0x0400 // Timer B IRQ2
#define C_FIQ_TMB 0x0800 // Timer B FIQ
#define C_IRQ1_TMA 0x1000 // Timer A IRQ1
#define C_FIQ_TMA 0x2000 // Timer A FIQ
#define C_IRQ0_PWM 0x4000 // PWM IRQ0
#define C_FIQ_PWM 0x8000 // PWM FIQ
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
extern void Watchdog_Clear(void);
#define C_WDTCLR 0x0001 //WDT CLR CMD
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
extern void Set_SystemClock(unsigned int); //Std061SYS.asm
//... Definition for P_SystemClock ............
#define C_SystemClockDefalut 0x0013 // (default value)
//B2..B0
#define C_Fosc 0x0000 //
#define C_Fosc_Div_2 0x0001 //
#define C_Fosc_Div_4 0x0002 //
#define C_Fosc_Div_8 0x0003 // (default)
#define C_Fosc_Div_16 0x0004 //
#define C_Fosc_Div_32 0x0005 //
#define C_Fosc_Div_64 0x0006 //
#define C_Sleep 0x0007 //
//-----------------------------------------------------------------------------------//
//B4
#define C_32K_Work 0x0010 // (default)
#define C_32K_Off 0x0000 //
//B3
#define C_StrongMode 0x0008 //
#define C_AutoMode 0x0000 // (default)
//-----------------------------------------------------------------------------------//
//B7..B5
#define C_Fosc_24M 0x0000 // (default)
#define C_Fosc_20M 0x0020 //
#define C_Fosc_32M 0x0040 //
#define C_Fosc_40M 0x0060 //
#define C_Fosc_49M 0x0080 //
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
extern void Set_ADC_Data(unsigned int);
extern unsigned int Get_ADC_Data(void);
//B15-B6 --> Data
extern void Set_ADC_Ctrl(unsigned int);
extern unsigned int Get_ADC_Ctrl(void);
//... Define for P_ADC_Ctrl ....................
#define C_ADCE 0x0001 //B1 //Enable ADC
#define C_ADCN 0x0000 //B1 //Disable ADC&MIC
#define C_MIC_DIS 0x0002 //B2 //No Mic
#define C_MIC_ENB 0x0000 //B2 //Have MIC
#define C_AGCE 0x0004 //B3 //Have AGC
#define C_AGCN 0x0000 //B3 //No AGC
#define C_DAC_OUT2mA 0x0040 //B6 //DAC current 2mA
#define C_DAC_OUT3mA 0x0000 //B6 //DAC currect 3mA
#define C_VEXTREF_ENB 0x0080 //B7 //Have Ext REF Voltage
#define C_VEXTREF_DIS 0x0000 //B7 //No Ext REF Voltag
#define C_V2VREFB_DIS 0x0100 //B8 //No 2V Voltage
#define C_V2VREFB_ENB 0x0000 //B8 //Have 2V Voltage
//B15 --> RDY
//-----------------------------------------------------------------------------------//
extern void Set_ADC_MUX_Ctrl(unsigned int);
extern unsigned int Get_ADC_MUX_Ctrl(void);
//B2..B0
#define C_ADC_CH_MICin 0x0000 //
#define C_ADC_CH1 0x0001 //IOA0
#define C_ADC_CH2 0x0002 //IOA1
#define C_ADC_CH3 0x0003 //IOA2
#define C_ADC_CH4 0x0004 //IOA3
#define C_ADC_CH5 0x0005 //IOA4
#define C_ADC_CH6 0x0006 //IOA5
#define C_ADC_CH7 0x0007 //IOA6
//B15 --> RDY
//B14 --> Fail B
//-----------------------------------------------------------------------------------//
extern unsigned int Get_ADC_LineIn_Data(void);
//B15-B6 --> Data
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
extern void Set_DAC2_Data(unsigned int);
extern unsigned int Get_DAC2_Data(void);
//B15-B6 --> Data
extern void Set_DAC1_Data(unsigned int);
extern unsigned int Get_DAC1_Data(void);
//B15-B6 --> Data
extern void Set_DAC_Ctrl(unsigned int);
//B8..B7
#define C_DA1_Direct 0x0000 // DAC1 latch
#define C_DA1_LatchA 0x0080 //
#define C_DA1_LatchB 0x0100 //
#define C_DA1_LatchAB 0x0180 //
//B6..B5
#define C_DA2_Direct 0x0000 // DAC2 latch
#define C_DA2_LatchA 0x0020 //
#define C_DA2_LatchB 0x0040 //
#define C_DA2_LatchAB 0x0060 //
//B4..B3
#define C_AD_Direct 0x0000 // A/D MIC_IN latch
#define C_AD_LatchA 0x0008 //
#define C_AD_LatchB 0x0010 //
#define C_AD_LatchAB 0x0018 //
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
extern void Set_LVD_Ctrl(unsigned int);
extern unsigned int Get_LVD_Ctrl(void);
//... Define for P_LVD_Ctrl ...................
#define C_LVD24V 0x0000 // LVD = 2.4V (default)
#define C_LVD28V 0x0001 // LVD = 2.8V
#define C_LVD32V 0x0002 // LVD = 3.2V
//B15 Result of LVD
//-----------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------//
extern void Set_SIO_Ctrl(unsigned int);
extern unsigned int Get_SIO_Ctrl(void);
//B1..B0
#define C_SIO_Addr8 0x0002 // Address = 8
#define C_SIO_Addr16 0x0000 // Address = 16 (default)
#define C_SIO_Addr24 0x0003 // Address = 24
//B4..B3
#define C_SIO_Clk_Div_16 0x0000 // CPU CLK/16 (default)
#define C_SIO_Clk_Div_4 0x0008 // CPU CLK/4
#define C_SIO_Clk_Div_8 0x0010 // CPU CLK/8
#define C_SIO_Clk_Div_32 0x0018 // CPU CLK/32
//B5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -