avr单片机用t1产生了两路快速8位pwm信号,再用t2定时中断时,一开总中断,一路pwm变得异常弱,求高手指导

作者&投稿:龚佳 (若有异议请与网页底部的电邮联系)
avr单片机跟pwm输出~

avr我只用过ATmega16,它的定时/计数器1有3种模式与PWM有关,分别是:快速PWM模式,相位修正PWM模式,相位频率修正PWM模式,都可以用来产生PWM波形,调节波形的频率和占空比都很方便,所以用avr控制电机转速之类很方便。
至于控制74hc595,随便哪款avr我想都可以的,配置好I/O口就行了,比如ATmega16。主要是I/O口的操作。
终于打完了。

长T1指低信号,短T1高信号
长T2高信号,短T2是低信号。

这是个很典型的时序问题 ,并不是什么没有重新赋初值。
我给的建议是 当用到多个中断时 一定要时序分清 合理工作,不能出现同时两个或者更过的中断响应,如果实在避免不了 可以设置优先级和缓冲

中断之后有没有对定时1 的重新赋初值?


单片机程序火箭发射,倒计时和推送都有,用C语言编写
wd=k-1&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9nhndrAnLnAnkmHf3rH0d0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnH6vnW0vrHcLnjR1nWmYnj6vPs" target="_blank" class="baidu-highlight">k-1; i++){ if(a[...

单片机定时器计算?
计算定时器,最原始的公式是(65536-初值)*12\/晶振值=定时的时间,由此式子推出:初值=65536-(晶振值*定时时间\/12)。则TH0=初值\/256,TL0=初值%256,最终结果就是 TH0 = 255-CLOCK\/TIME_PER_SEC\/12\/256;TL0 = 255-CLOCK\/TIME_PER_SEC\/12%256;其中除以TIME_PER_SEC,是因为TIME_PER_SEC...

飞思卡尔MC9s12系列单片机ATD模块5v供电,但为什么我用万用表测量VRH...
有可能是电路短路拉低电压,或者本身供电不足,稳压管击穿。一般4.85V都能正常工作的呀

请推荐本AVR入门的好书!
6.2.23验证SLAVR实验器及具有DIP40封装的口功能第七章AVR单片机的应用7.1通用延时子程序2607.2简单I\/O口输出实验2667.2.1SLAVR721.ASM 2667.2.2SLAVR722.ASM2677.2.3SLAVR723.ASM2687.2.4SLAVR724.ASM2707.2.5SLAVR725.ASM2717.2.6SLAVR726.ASM2727.2.7SLAVR727.ASM2737.3综合程序2747.3.1LED\/LCD\/键盘...

飞思卡尔MC9s12系列单片机ATD模块5v供电,但为什么我用万用表测量VRH...
参考电压只要是一个固定值就行,通过芯片之后很难升压,所以会选择低于电源电压值的。

TCL NT21M92总线怎么进入
三洋机心:2518E.2918E.3418E等采用LA76832A,按面板音量键减到“00”连续按遥控器“0”键进入一级菜单,将一级菜单的最后一项调到3“进入二机菜单;东芝单片机:如AT21S135..AT21288.AT21228.采用8803块,按音量键减到”00“不松连续按遥控器”0“键三次即进入(也使用于乐华21寸);飞利浦机心...

PC机与单片机用RS485通信时,单片机如何用中断接收一帧数据?一帧数据包...
数据通信与232通信是一样的,不过485是半双工的,单片机端需要做收发控制。单片机采用中断方式或扫描方式都行,给你一段中断程序,你参考一下:com_interrupt(void) interrupt 4 using 3 { unsigned char RECEIVR_buffer;if(RI) \/\/处理接收中断 { RI=0; \/\/清除中断标志位 dat[n++]=SBUF;i...

单片机控制CS3310的源程序?有采纳的一定500分送上,先上30分.
\/\/自己根据datasheet写的 \/\/没有芯片,无法验证 \/\/好就给分吧 \/\/不好的话请告诉我 \/\/以下是程序 sbit _cs;sbit scl;sbit sda;bool *vl[7];bool *vr[7];unsigned char VolLeft; \/\/左声道,0~255 unsigned char VolRight; \/\/右声道,0~255 void main(){ _cs=0;...vl=&VolLe...

51单片机有多少个引角,18,19用是什么
传统的单片机实验系统因其购买成本高、系统使用烦琐,已经越来越不适合当前以培养学生实际能力为主要方向的高等教育,本系统可以帮助学校轻松组建单片机开放实验室,也可用于电子爱好者自学。 我们的优点: 1、采用模块化设计(通过短路跳线,连接线可以让各硬件资源快速独立或者用不同的方法快速连接) 例如:通过...

...请问有什么比较好的适合的专业吗?可以学单片机吗?
初中毕业是可以学习电脑的,初中毕业成绩不好不上高中学技术是非常明智的选择,现在学习技术的话主要是学习热门的就业前景好的,现在的电脑技术是所有技术中就业比较好的,学电脑技术要去专业的学校系统的学习,可以的,现在很多初中生都选择学电脑,学专业技术,拿学历,好就业。选度择一个自己爱好的专业...

蒲城县18434722474: avr单片机用t1产生了两路快速8位pwm信号,再用t2定时中断时,一开总中断,一路pwm变得异常弱,求高手指导 -
潜达苏可: 这是个很典型的时序问题 ,并不是什么没有重新赋初值.我给的建议是 当用到多个中断时 一定要时序分清 合理工作,不能出现同时两个或者更过的中断响应,如果实在避免不了 可以设置优先级和缓冲

蒲城县18434722474: AVR多路PWM问题 -
潜达苏可: 如果你用单片机本身的PWM功能,应该没有办法实现你的要求.但如果你想用定时器来产生两种频率一样,占空比不一样的PWM信号还是可以的.首先你定义两个全局变量,如PwmCnt1和PwmCnt2.比如定时器溢出时间是1ms,你在中断中...

蒲城县18434722474: AVR单片机输出两路周期为20ms的PWM? -
潜达苏可: 2路PWM输出,可以采用两个定时器,使其工作在PWM模式下,信号从OCRx引脚输出即可. 2路PWM信号的周期相同,也可以采用一个定时器,例如,采用定时器1, 1、定时器1工作在快速PWM模式 2、信号从OC1A、OC1B输出. 3、设置定时器TOP 假设晶振为16MHz,分频系数采用64分频,TOP设置为5000,即ICR1=4999 4、寄存器OCR1A和OCR1B分别设置为两路PWM的高电平宽度对应的脉冲数.

蒲城县18434722474: 用AVR单片机Atmega16产生两路互补的PWM波去控制全桥逆变电路的程序 -
潜达苏可: #include <avr/io.h> void main(void) { PORTB=0x00; DDRB=0x0E; // T/C1 初始化 TCCR1A=0xA1; TCCR1B=0x09; //匹配时清零,TOP:255,频率:8M/256=31.25K OCR1A=85; //占空比:1/3 OCR1B=128; //占空比:1/2 // T/C2 初始化 TCCR...

蒲城县18434722474: avr单片机(用atmega16)如何产生频率可调的PWM波形 -
潜达苏可: 比如快速PWM方式,定点使用ICP寄存器,这时改变ICP的值,就改变了PWM频率,当然占空比也跟着变化了,需要你重新调整. Atmega16的OC1A和OC1B输出两路PWM的程序,频率为1000/200=5KHz,占空比分别为8/200和23/200.TCCR1A=0xA2; TCCR1B=0x1A; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0xC7; OCR1AH=0x00; OCR1AL=0x08; OCR1BH=0x00; OCR1BL=0x17;

蒲城县18434722474: avr单片机pa,pb,pc,pd四个八位数据一起输出? -
潜达苏可: 同时输出做不到.因为AVR一条指令只能处理8位数据,也就是一个口.如果你对时序有非常严格的要求,可以在四个口各挂一个锁存器(74LS373),四个锁存器的触发口挂在PE口的一根线上,如果驱动不够接三极管扩大驱动能力,在四个口都输出以后,给这四个锁存器送一个触发信号,他们四个就能做到同步输出了.

蒲城县18434722474: AVR单片机怎么输出7路可调PWM 只有两路 用什么思路多输出几路 用电位器调节 其中一路暑促相反的pwm
潜达苏可: 部分AVR单片机包含四个定时器,应该可以输出4路pwm. 如果要做7路,只有通过软件方式实现,频率较低的话,实现应该较容易. 采用一个定时器作为系统时钟,软件循环读取定时器计数结果,并进行比较,比较匹配,改变IO输出状态,就可以实现你的PWM.只要IO数量允许,这种方式可以实现任意个pwm输出. 其缺点是当频率较高时,输出pwm的脉冲宽度精度较低.如果采用汇编语言,精确数出指令运行时间并对输出脉冲宽度进行校正补偿,可以提高精度.

蒲城县18434722474: avr单片机ATmega128如何产生24路的PWM.越多越好~ -
潜达苏可: 按手册上来说 ,M128一个16位定时器有三个输出端口OCXA,OCXB,OCXC(X=1或3),我不清楚你是否只是需要产生16路PWM,而不需要分别控制.如果只是单纯产生16路PWM的话,这个M128是可以做到的,只需要在外部加一级多路的驱动电路.如果要对每一路加以控制的话,也是可以做到的,只不过需要用到M128另外的端口,这里比如说取2组IO口共16个端口 ,然后分别对应16路PWM,用16个二输入与门.16个与门 :1输入口共用一个M128的PWM输出口,另一个输入对应上面用到的16个端口.后面再加上一级多路的驱动电路.我想 ,就你提出的问题 ,这个答案应该是可行的.希望能帮到你 !

蒲城县18434722474: avr单片机测频
潜达苏可: 注意:Atmega32的TC2没有外部输入端T2!对于这种情况,建议你选择Atmeg64/128单片机,这单片机的TC1、TC2和TC3有外部输入,TC0使用异步方式,加32.768KHz晶振来配置成产生1S秒中断,用于测量时间的基准时间.AVR单片机产生PWM是不需要CPU干预的,只是在初始化时设置几个寄存器.当然有种情况,那就是不断改变PWM的周期或占空比时,就需要在PWM比较匹配中断时改变寄存器的值.但是AVR运行速度快,所以修改寄存器也需要不了多少时间.综合上面的描述,可以说你的方法是正确的,但是选取的单片机不适合,建议用更高级点的.

蒲城县18434722474: AVR单片机中,如果不用PWM,那么如果控制定时器输出一个脉冲和一串脉冲,怎么控制定时器输出脉冲的频率. -
潜达苏可: 1.当定时中断到来时,可以对某个I/O进行置位或者清零来达到输出脉冲的目的.如:10ms的定时中断,当第一次中断来时,在PA0上输出高电平;第二次中断时,在PA0上输出低电平;这样就可以输出频率一定,占空比也一定的脉冲串或者单...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网