资源简介
由DSP2407产生PWM波形,并且PWM波的频率在一定范围内以一定的步距进行变化。

代码片段和文件信息
#include “f2407rdef.h“
void inline disable() //屏蔽中断
{
asm(“ SETC INTM“);
}
void inline enable() //使能中断
{
asm(“ CLRC INTM“);
}
void interrupt nothing() //其他中断返回子程序
{
return;
}
///////////////////////////////
void initial()
{
asm(“ setc SXM“); //符号位扩展有效
asm(“ clrc OVM“); //累加器中结果正常溢出
asm(“ clrc CNF“); //B0被配置为数据存储空间
*WDCR = 0x0E8; //不使能看门狗
*SCSR1 = 0x81FE; //CLKIN=10MCLKOUT=4*CLKIN=40M
*IFR = 0x0FFFF; //写1清全部中断标志
WSGR =0x00; //禁止所有的等待状态
}
void EVAinitial()
{
int m;
*ACTRA = 0x0006; //PWM2低有效;PWM1高有效
*DBTCONA = 0x0FE8; //使能死区0FE8-1.6;0FEC-3.2
*T1PR = 0x0563; //计算=40M/f
for(m=0;m<50;m++);
*CMPR1 = *T1PR/2;
*T1CNT = 0x0000;
*COMCONA = 0x8200; //使能比较操作
*T1CON = 0x1000; //定时器1为连续增计数模式
}
void delay_50ms()
{
int ij;
for(j=0;j<=1500;j++)
{
for(i=0;i<=1000;i++);
}
}
void change()
{
int jm;
for(j=0;j<525;j++)
{
*T1PR = *T1PR+0x0001;
for(m=0;m<50;m++);
*CMPR1 = *T1PR/2;
delay_50ms();
}
for(j=0;j<525;j++)
{
*T1PR = *T1PR-0x0001;
for(m=0;m<50;m++);
*CMPR1 = *T1PR/2;
delay_50ms();
}
}
//////////////**********************//////////////////
// 主程序
//////////////**********************//////////////////
void main()
{
int m;
disable(); //禁止总中断
initial(); //系统初始化
*MCRA = 0x00C0; //端口配置为PWM功能口(亮灯)
*PBDATDIR = 0x8000;
EVAinitial();
enable(); //开总中断
for(m=0;m<1000;m++);
*T1CON |= 0x0040;
while(1)
{
change();
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
I.A.... 571 2009-06-18 14:42 change\cc_build_Debug.log
I.A.... 2764 2009-06-18 14:42 change\Debug\main.obj
I.A.... 4713 2009-06-18 14:42 change\Debug\pulsewidth.map
I.A.... 4200 2009-06-18 14:42 change\Debug\pulsewidth.out
I.A.... 696 2009-06-18 14:42 change\Debug\vectors.obj
I.A.... 262 2009-06-18 14:42 change\Debug.lkf
I.A.... 262 2009-06-18 14:42 change\Debug.lkv
I.A.... 18476 2007-10-26 09:37 change\f2407rdef.h
I.A.... 1699 2008-05-11 11:48 change\LF2407.CMD
I.A.... 2094 2009-06-18 14:41 change\main.c
I.A.... 1451 2009-06-18 14:46 change\pulsewidth.paf
I.A.... 772 2009-05-07 09:35 change\pulsewidth.pjt
I.A.... 101062 2002-01-30 21:54 change\RTS2XX.LIB
I.A.... 461 2009-05-07 10:09 change\VECTORS.ASM
I..D... 0 2009-06-18 14:42 change\Debug
I..D... 0 2009-06-18 14:42 change
----------- --------- ---------- ----- ----
139483 16
- 上一篇:骇客教你任何加密的破解
- 下一篇:毕业设计__PID控制直流电机
相关资源
- 51单片机PWM程序,占空比、周期可调整
- SG3525频率PWM控制均可调模块
- saber 扫频分析仿真文件
- 基于ARM7 PWM定时器的图像传感器时序信
- 电力电子技术(第4版)_王兆安_带目
- 基于FAN6754A的PWM反激式开关电源的设计
- 采用双闭环控制提高PWM的电源纹波抑
- FPGA实现单极性SPWM调制
- LCL滤波器在三相PWM整流器中的应用
- CPS―SPWM调制方法在H桥多电平变流器中
- 基于FPGA的多电平载波移相SPWM方法实现
- 正弦波逆变器正弦波逆变器的工作原
- 基于DSP的SVPWM变频调速系统
- 采用单片机SPWM的控制应急电源逆变电
- PWM脉宽调制的原理
- 说说PWM脉宽调制原理
- 以单片机AT89S52、光电脉宽调制器芯片
- STM32F103系列PWM输出应用之纸短情长音
- 基于FPGA的SVPWM实现方法
- pwm控制驱动直流电机 可调速 可调转的
- 可控硅调光,PWM调光,0-10V调光哪个更
- 一种基于SG3525A的PWM型开关稳压电源设
- 基于PIC单片机产生SPWM信号控制逆变桥
- 三相PWM整流器电压环H_∞鲁棒控制
- SVPWM的原理及法则推导和控制算法详解
- 132kW双PWM变频器电力电缆选型设计
- 32F103 8路PWM输出实验
- Keil5下的STM32F407程序
- PWM控制电机
- 基于STM32-Mini的多路PWM
评论
共有 条评论