⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 system_init.c

📁 本代码在凌阳单片机的编译环境下执行,主要实现的功能是双通道AD采样显示
💻 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 + -