资源简介
由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控制直流电机
相关资源
- 毕业设计__PID控制直流电机
- stm32PWM呼吸灯
- 三相逆变器SVPWM.rar
- stm32利用定时器的PWM输出驱动蜂鸣器播
- 实验20 PWM DAC实验.rar
- DSP TMS320F2812产生PWM波程序
- PWM输出控制舵机转动角度
- 全桥移相电路PWM驱动程序
- SVPWM控制和MTPA控制
- 51单片机T2定时器控制舵机程序源码(
- T型三电平逆变器加SPWM控制仿真
- STM8S103定时器1多模式输出PWMCH3单通道
- DSP的SVPWM产生
- SPWM加入三次谐波调制仿真
- 28335 spwm
- 基于STM32F4的PWM程序
- stm32基于战舰修改八路pwm
- SHEPWM算法分区列表
- SVPWM算法详解_已标注重点_
- STM8s003单片机输出7路PWM波
- STM8S003 PWM功能实现
- STM32 TCS3200颜色识别 超声波 PWM 程序源
- MSP430F149 TB输出频率可调PWM波
- 坐标变换和SVPWM.zip
- SVPWMPMSM.slx
- 基于51 单片机直流电机pwm控制
- 直流电机的PWM控制 基于VHDL语言,详细
- FPGA\\基于FPGA的温度检测和PWM风冷系统
- 单片机产生SPWM设计报告
- silicon 单片机 PWM 马达控制
评论
共有 条评论