📄 system_init.c
字号:
/*#define P_TimerA_Data (volatile unsigned int *)0x700A
#define P_TimerA_Ctrl (volatile unsigned int *)0x700B
#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 P_TimerB_Data (volatile unsigned int *)0x700C
#define P_TimerB_Ctrl (volatile unsigned int *)0x700D
#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 //
#define P_INT_Ctrl (volatile unsigned int *)0x7010
#define P_INT_Clear (volatile unsigned int *)0x7011
#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
#define P_TimeBase_Setup (volatile unsigned int *)0x700E
#define P_TimeBase_Clear (volatile unsigned int *)0x700F
#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 //
#define P_ADC_Ctrl (volatile unsigned int *)0x7015
#define P_ADC_MUX_Ctrl (volatile unsigned int *)0x702B
#define P_ADC_LINEIN_Data (volatile unsigned int *)0x702C
#define P_DAC2 (volatile unsigned int *)0x7016
#define P_DAC1 (volatile unsigned int *)0x7017
#define P_DAC_Ctrl (volatile unsigned int *)0x702A
#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
#define P_Watchdog_Clear (volatile unsigned int *)0x7012
#define P_SystemClock (volatile unsigned int *)0x7013
*/
#include "SPCE061V004.H"
void system_init()
{
__asm("INT off");
*P_IOB_Attrib=0xffff; //IOB口为同相高电平输出口
*P_IOB_Dir=0xffff;
*P_IOB_Data=0xffff;
*P_IOA_Attrib=0xf000; //IOA口低 八为下拉电阻输入
*P_IOA_Dir=0xf000; // 高字节:高四位;位带数据缓存器的高电平为输出口 端
*P_IOA_Data=0xf000; //低四位为带下拉电阻的输入端//低四位为带下拉电阻的输入
*P_ADC_Ctrl=0x0001; //允许A/D转换
*P_INT_Ctrl=C_IRQ6_TMB2+C_IRQ1_TMA+C_IRQ4_2KHz; //开时基中断和TIMEA
*P_TimeBase_Setup=C_TMB2_512Hz; //设定时基中断时钟源
//*P_TimerB_Ctrl=C_SourceB_2048Hz; //设定TIMEB时钟源
//*P_TimerB_Data=0xfffe;
//*P_TimeBase_Setup=C_TMB2_512Hz; //设定时基中断时钟源
//*P_INT_Ctrl=C_IRQ1_TMA+C_IRQ4_1KHz; //开C_IRQ4_1KHz;C_IRQ4_1KHz中断
*P_TimerA_Ctrl=C_SourceA_1+C_SourceB_256Hz; //设定TIMEA时钟源
*P_TimerA_Data=0xfffd; //设定TIMEA初始值
__asm("INT IRQ");
}
void ADC_line1_init()
{
*P_ADC_MUX_Ctrl=0x0001;
}
void ADC_line2_init()
{
*P_ADC_MUX_Ctrl=0x0002;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -