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

📄 pwm.c

📁 dsp PWM程序 用来控制直流电机 直流无刷电机等
💻 C
字号:
#include "regs240x.h" 
//#define PWM_MAX 6000
/*void initial()
{
  	asm(" setc	SXM");			// 符号位扩展有效
	asm(" clrc	OVM");			// 累加器中结果正常溢出
	asm(" clrc	CNF");			// B0被配置为数据存储空间
	SCSR1=0x81FE;		    	// CLKIN=10M,CLKOUT=4*CLKIN=40M
	WDCR=0x06f;				// 不使能看门狗,因为SCSR2中的WDOVERRIDE
	WDKEY=0x5555;
	WDKEY=0xaaaa;	     			// 软件禁止看门狗
	IMR=0x0000;					// 禁止所有中断
	IFR=0x0FFFF;				// 清除全部中断标志,"写1清0"
	WSGR=0X00;					// 禁止所有的等待状态

}*/
main()
{
//	unsigned int uWork;
//	initial();
	asm(" setc INTM");	/* 关中断 */
	asm(" setc	SXM");	/* 符号位扩展有效 */
	asm(" clrc	OVM");	/* 累加器中结果正常溢出 */
	asm(" clrc	CNF");	/* B0被配置为数据存储空间 */

	WDCR=0x6f;
	WDKEY=0x5555;
	WDKEY=0xaaaa;	/* 关闭看门狗中断 */

	SCSR1=0x81fe;	/* DSP工作在40MHz */
	IMR=0;			/* 屏蔽所有可屏蔽中断 */
	IFR=0x0ffff;	/* 清除中断标志 */
//	uWork=WSGR;		/* I/O引脚0等待 */
//	uWork&=0x0fe3f;
//	WSGR=uWork;

//	MCRA=MCRA|0x0c0;	/* IOPA6-7被配置为基本功能方式,PWM1-2 */
//	ACTRA=0x06;  		/* PWM2低有效,PWM1高有效 */
	MCRA=MCRA|0xfc0;	/* IOPA6-7被配置为基本功能方式,PWM1-2 */
	ACTRA=0x0aaa;  		/* PWM2高有效,PWM1高有效 PWM4高有效,PWM3高有效 */
	DBTCONA=0x00;		/* 不使能死区控制 */
	CMPR1=0x3000;  		/* 比较单元1设置 */	
	CMPR2=0x2000;		/* 比较单元2设置 */	
	CMPR3=0x1000;
	T1PER=0x6000;		/* 设置定时器1的周期寄存器,以确定不同的输出占空比 */
	COMCONA=0x8200;		/* 使能比较操作 */
	T1CON=0x1000;		/* 定时器1为连续增计数模式 */

	T1CON=T1CON|0x0040;	/* 启动定时器1 */
	while ( 1 )
	{
	  CMPR1+=1;
	  CMPR3+=1; 
	  if(CMPR1>=0x5f00)
	   CMPR1-=0x4f00;
	  if(CMPR3>=0x5f00)
	   CMPR3-=0x4f00;
	  
	}
}

⌨️ 快捷键说明

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