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

📄 sysinitial.c

📁 在采样的基础上实现数码管显示和利用TI公司的FFT算法进行运算
💻 C
字号:
#include "2407.h"
#include "System.h"

int  KeyFlag = 0;
int  CodeJuge = 0;
int  PageNum = 0;
int  CsrFlagPage0 = 0;
int  IsControl=0   ;
int  IsFlashData=0;
int  ReCacuPWM=0;
void SysInit(void) 
{
    asm(" setc SXM ");
	asm(" clrc OVM ");
	asm(" clrc CNF ");
	
	*SCSR1 = 0x004D;            //           0100 1101
//    *SCSR1 = 0x020D;     // 20M
	*WDCR =0X0E8;           /*使能EVA,EVB两个时间管理器,晶振频率40M*/
	                        //使能SCI模块
	
	WSGR = 0X01FF;          //软件等待
/*//*********************
	*MCRC = (*MCRC&0x0ccff)|0x0200;
	*PFDATDIR = (*PFDATDIR&0x8200)|0x8200;
		KeyDelay();
		KeyDelay();
	*PFDATDIR = (*PFDATDIR&0x8200)|0x8202;	
//*****************/
//	*IMR = 0x00;		   /*中断禁止*/
//	*IFR = 0x0FFFF;		   /*清除中断标志*/
//	asm(" setc INTM ");  
	*IMR = 0x3A;		     //中断禁止,开INT6->AD转换完成中断,INT2定时器3下溢中断
	                         //INT4,caption中断信号,INT5串口中断  0011 1010
	*IFR = 0x0FFFF;		     //清除中断标志*/
	*XINT1CR = 0x8002;         //使能XINT1,低优先级
	asm(" setc INTM ");      //清除可屏蔽中断
}

void KeyInitial() {
	*MCRA = (*MCRA&0XFF07)|0X0007;  //
	*PADATDIR = (*PADATDIR&0XC0FF)|0XC0FF;
}


void T3PWM_128(void) {
	*MCRC = *MCRC | 0x0C7E;		//IOPE1-IOPE6,被配置为基本功能方式,PWM7-PWM12
	*GPTCONB = 0x0049;          //比较输出允许,T3PIN低有效;
//	*T3PR = 0x1869;		         //设置定时器3的周期寄存器 
    *T3PR = 0x0C33;
	*ACTRB = 0x0666;		    //PWM12,10,8低有效,PWM11,9,7高有效
	*DBTCONB = 0x00;		    //不使能死区控制
	*T3CMPR = 0x0619;            //比较寄存器用来产生倍频信号
    
    *CMPR4=0x1F;
    *CMPR5=0x2F;
    *CMPR6=0x3f;               //比较积存器设初值
	*T3CNT = 0;
	*EVBIFRA=0x0FFFF;
//	*EVBIMRA=0x0080;
    *EVBIMRA=0x0200;
	*COMCONB = 0x08200;	    	//使能比较操作
	*T3CON = 0x8842;             //100  01000 0100 0010
	
}

void SCI_Init()              //串行通信初始化
{
   *MCRA|=0X0003 ;            //配置为SCI
   *SCICCR=0x0007 ;          //空闲线模式,8位数据位,1位停止位
   *SCICTL1=0x0013;         //禁止休眠模式,发送,接受使能
   *SCICTL2=0x0002;        //接受中断使能
   *SCIHBAUD=0x0002;       //CPU时钟频率为40M,波特率为9600
   *SCILBAUD=0x0008;  
   *SCIPRI=0x68 ;           //低优先级 0110 1000 
   *SCICTL1=0x0033;        //完成串口设置
}

void Timer2_Init()        //定时采样中断
{
   *T2PR=0x1869;              //20ms中断一次
   *T2CNT=0  ;
   *T2CON=0x9740 ;           //100 10111  0100 0000  ,128分频
   *EVAIFRB=0x0000  ;
   *EVAIMRB=0xffff;         //禁止中断
   *CAPCONB=0x2040;
   *EVBIMRC=0x01;          //Caption4中断
}

void Caption_Init()
{
   //IO口初始化
   *MCRC = *MCRC | 0x0080;	
   *T4PR=0xfff;              //20ms中断一次
   *T4CNT=0  ;
   *T4CON=0x9740 ;           //100 10111  0100 0000  ,128分频
   *EVAIFRB=0x0FFFF  ;
   *EVAIMRB=0x0000;         //禁止中断
   
   *CAPCONB=0x2040;
   *EVBIMRC=0x01;          //Caption4中断
   *EVBIFRC=0x0FFFF  ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -