PWM调速关键看占空比啊,当然输入频率也是要考虑的,L298的最佳输入频率好像是100Hz。根据你的要求,可以用一个定时器是实现:先定时X毫秒,定时中断后在中断程序里:将驱动引脚置“1”,再定时Y毫秒;定时中断后在中断程序里:将驱动引脚置“0”。然后再定时X毫秒。。。依次循环,同时时定义一个变量Z,在中断程序里记录时间:Z=Z+X+Y.当Z>2000毫秒时换转向并使Z归零。比如X=5毫秒,Y=5毫秒.z=0;z=5;z=10;z=...2000,切换转向并且把z置零。
扩展一个定时芯片8253.可以有3路定时器,2s实现方法:定时器设置定时长度为50ms,在定时器中断里面计数,就是让一个变量,在这个中断里面+1,当这个变量=20的时候,就是1秒了,程序里面判断这个数是否=20,如果是,则跳转到反转程序,否则正转。
单片机: 单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
看你驱动芯片能不能开那么快。一般2K-20K频率
你又要定时,又要输出PWM,定时器不够用吧?建议扩展一个定时芯片8253.可以有3路定时器
2s实现方法:
定时器设置定时长度为50ms,在定时器中断里面计数,就是让一个变量,在这个中断里面+1,当这个变量=20的时候,就是1秒了,程序里面判断这个数是否=20,如果是,则跳转到反转程序,否则正转。
毫秒级的就可以了
http://www.fxdzw.com/dpj/MCU_PWM.pdf