📄 initdsp.c
字号:
#include "2407c.h"
void init_dsp(int T1_pr)
{
/*************************System Initialization**********************************/
asm(" SETC INTM"); /*屏蔽中断*/
asm(" CLRC CNF"); /*B0被配置为数据存储空间*/
asm(" CLRC OVM"); /*累加器结果正常溢出*/
*WDCR=0x68; /*disable watchdog timer*/
*SCSR1=0x83ee; /*CLKIN=20MHz,CLKOUT=40MHz,使能EVA*/
WSGR=0x01c0; /*0 wait state*/
/***********************Pins Initialization**************************************/
*MCRA|=0x0fc0; /*设置PWM1-6*/
/************************EVA Initialization**************************************/
*T1PR=T1_pr; /*PWM设置周期设定*/
*T1CNT=0;
*ACTRA=0x0999; /*PWM1,3,5 active low, 2,4,6active high*/
*DBTCONA=0x08ec; /*死区时间8*8*25ns=1.6μs*/
*CMPR1=T1_pr; /*占空比初值 0%*/
*CMPR2=T1_pr;
*CMPR3=T1_pr;
*COMCONA=0x8200; /*允许比较,下溢重载,使能pwm引脚 */
*T1CON=0x0800; /*连续增减计数,内部时钟,不分频*/
/**********************************开中断****************************************/
*IFR=0x0ff; /*清所有系统中断标志*/
*IMR=0x2; /*开INT2中断*/
*EVAIFRA=0x0fff; /*清除EVA所有中断标志*/
*EVAIFRB=0x0f;
*EVAIFRC=0x0f;
*EVAIMRA=0x0200; /*开T1周期中断*/
*EVAIMRB=0;
*EVAIMRC=0;
(*T1CON)|=0x0040; /*使能T1*/
asm(" CLRC INTM"); /*开中断*/
/*~~~~~~~~~~~~~~~~~~~~~~~~initialization over~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -