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

📄 ev.c

📁 F2812 的不同AD转换程序,AD8364 ADS8365
💻 C
字号:
#include "ev.h"
#include "DSP281x_PieCtrl.h"
#include "DSP281x_DefaultIsr.h"

void InitEV()
{
	EALLOW;
	EvaRegs.T1PR = 0x927C;           //T1周期定为500us
//	EvaRegs.T1CMPR = 0x3c00;
	EvaRegs.ACTRA.all = 0x666;      //设置pwm输出135为高有效,246为低有效
	EvaRegs.T1CNT = 0;               //T1计数值初始为0
	EvaRegs.T1CON.all = 0x1042;      //定时器比较使能,定时器使能,连续增计数模式
	EvaRegs.CMPR1 = 0x493e;          //250us
	EvaRegs.CMPR2 = 0x249f;          //125us
	EvaRegs.CMPR3 = 0x57e4;          //300us
	EvaRegs.COMCONA.bit.CENABLE = 1; //比较使能
	EvaRegs.COMCONA.bit.FCOMPOE = 1; //完全比较输出使能pwm1-6

	EvaRegs.EVAIMRA.bit.CMP1INT = 1; //比较器中断使能
	EvaRegs.EVAIFRA.bit.CMP1INT = 1; //清比较器中断标志位
	EDIS;
}

Uint16 g_Time = 9375;
Uint16 *pt = (Uint16 *)0x2001;
Uint16 g_cnt = 0;
interrupt void CMP1INT_ISR(void)
{
	g_cnt++;
	if(g_cnt / 500 == 1)
		*pt = 8;
	if(g_cnt / 1000 == 1)
	{
		*pt = 0;
		g_cnt = 0;
	}
	
	
	EALLOW;
	EvaRegs.CMPR1 = g_Time;
	EDIS;
	g_Time += 3750;
	if(g_Time > 30000)
		g_Time = 9375;
	EvaRegs.EVAIFRA.bit.CMP1INT = 1;
	PieCtrlRegs.PIEACK.all = 0x2;
}

⌨️ 快捷键说明

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