pwm比较模式如何反向输出

pwm比较模式如何反向输出,第1张

1、输出模式有很多,其中有上次讲到的pwm模式。输出比较模式里面有很多模式,这次用的就是翻转模式,在CCMR寄存器里,翻转翻转的只是参考电平,输出的实际电平还要与后面的具体高电平有效还是低电平有效配合使用

TIM_OCInitStructure.OCMode = TIM_OCMODE_TOGGLE//输出比较模式的翻转模式,当CNT计数到CCR1(也就是PWM中设定脉宽的那个)时电平出现一次翻转,并可以配置产生相应的中断DMA等

输出⽐较模式实现PWM输出

(刚开始尝试写博客,如有错误或者不⾜之处欢迎指正)

我⽤的是通⽤定时器TIM3来产⽣的

输出⽐较模式产⽣PWM与直接配置定时器PWM模式相⽐有⼀些优势,最⼤的就是同⼀个定时器的不同通道可以产⽣频率不同的PWM。

个⼈理解:

其实PWM模式输出⽐较模式的⼀个特殊情况,即不去改变频率值,单改变⽐较值从⽽改变占空⽐。

在输出⽐较模式中,需要利⽤中断,不断改变⽐较值,即捕获/⽐较寄存器的值

再给你个思路了,差不多就这模式,

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

void isr_t0(void) //定时器T0中断,

sbit SINGAL1=P2^6//两路PWM信号输出端口,

sbit SINGAL2=P2^7

sbit clr=P1^1

int a=100

int b

uchar c=5

uint PWM1

void isr_t0(void) interrupt 1 //定时器实现T0方波输出

{ int k,h,m,n

TH0=0xFF//定时初值0.1ms

TL0=0x9B

PWM1++

b=a/5*c

if(clr==0)

{SINGAL1=0

SIGNAL2=0}

else {

if (PWM1<=b)//a=10,初始频率为50Hz,

{ SINGAL1=0

SINGAL2=1}

else if ((PWM1>b)&&(PWM1<2*a))

{SINGAL1=1

SINGAL2=0}

else (PWM1=2*a)

{PWM1=0} }}

void main(void)

{

TMOD=0x01

TH0=0xFF

TL0=0x9B

PWM1=0

EA=1 //CPU中断总允许位,

ET0=1//定时器计数器T0中断允许位,

ET1=1//定时器计数器T1中断允许位

TR0=1 //启动定时器T0,

while(1) //无限循环,

{}

}

程序不完全正确,但思路就这个思路,只修改少许就实现了,你说的对P1.1清零,我理解为P1.1对输出波清0

unsigned char bdata Bits

sbit bit = Bits^0//定义1个位变量

unsigned char T5S定义1个5秒计时变量

void main(void)

{

bit = 0//位变量清0

T5S = 0xxx//赋5秒倒计数初值

egine = 0关闭电机

agine = 0

EA=1//开启中断程序(into) //开段序

ET0=1//开启T0中断程序(into) //中程

TR0=1 //打开T0中断

while(1)

{

if(!ET0)//如果5秒计时结束

{

delay()//调用1个1秒的循环延时,电机停1秒

T5S = 0xxx//重新赋初值

ET0 = 1//重新开放T0中断

}

}

}

void into(void) interrupt 1

{

T5S--

if(!T5S){bit = ~bitET0 = 0}//取反位变量,关闭T0中断

whole--

last--

if(whole==0)

{whole=7

last=2

if(!bit)//判断位变量决定电机转动方向

{

egine =1//电机正转

agine = 0

}

else

(

agine = 1//电极反转

egine =0

}

}

else

{if(last==0)

{

egine =0

agine = 0

}

}

TH0 = 0x0FF

TL0 = 0x9C

}

delay()//1秒延时子程序

{

.........

}

以上修改的程序供参考,5秒和1秒的定时参数涉及单片机时钟频率,你自己解决,希望能帮到你。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12203068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存