① 51单片机定时器设定好初值,为什么走的比计算的慢
你的TH0和TL0的初始值有点不对吧?比较精确的应该是TH0=(65536-45872)/256;TH0=(65536-45872)%256;最好用12M的晶振,那样定时就很准确了。还有,这也许和你的其他程序,比如主函数的内容有关
② delphi 中chart 作图时,数据量大后 定时器越来越慢。该怎样解决
数据量大的话,或者保留 n 笔。或者不要用 Chart 添加数据,自画。
像 GDI + 什么的都是不错的选择。
③ 单片机定时器计50ms(3cb0)循环20次以后远远比一秒慢,为什么12m的
51的话,16位方式定时器初值需要软件重装。有可能是你中断服务里面没有再次重置THi,TLi的值,造成20次中断时间大大超出。变成 19*65.536+50=1.295秒。
④ 定时器为什么会偶然变快
根据你的说法,我觉得不是定时器变快了,定时器本身没有快慢的变化的,我觉得应该是你程序响应的时间变化。
在C#中定时器是以线程方式阻塞调用的,如果定时器方法内执行时间过长的话,下一次定时器方法的调用时间就后推迟。或者由于操作系统线程的响应原因造成定时器线程得不到应有的线程时间,而给程序造成一个假像,时而快时而慢。
鉴于此,如果要在定时方法内执行大量耗时操作,建议开启新线程。检查系统是否运行了大量优先级高的程序等等。
本人最近在学习操作系统技术,刚好涉及到定时器方面的技术,欢迎继续交流。
⑤ VB的定时器Timer变慢了,怎么解决
一个程序在同一时刻只能处理一个事件,比如时钟事件处理时间比时钟周期长的话,它不会事件还没处理完又被激活了,也就是在程序代码执行过程中不会接收新的事件。所以要把与时钟有关的处理事物放在一个独立的进程中,这个我也不懂,只知道建立一个对象库,对象库是一个独立的进程,程序启动后启动对像库时钟。就是Activex Dll工程。
⑥ 在主程序中while(1)中调用了delay_ms(500)会使主程序变慢,如何解决
主程序中调用了delay_ms(500),每执行一个循环,就会延时500毫秒,主程序肯定变慢,毋庸置疑的。要解决这个问题,可以用定时器延时来解决,怎么说呢,你这个延时500毫秒,肯定是为了某些控制对象的要求而用的,比如AD转换,比如测距等模块控制,为了达到既能500毫秒左右控制一次这些模块,又不影响主程序的执行速度,可以用定时器500毫秒生成一个标志位置1,当主程序检测到该标志位为1时就清除该标志,同时执行一次模块控制。这样就解决了控制与速度的矛盾问题。
⑦ 555定时器示波器波形为什么走的特别慢走一会就停了从头再来
那是因为你设定的555定时器振荡频率太低了,改一下RC参数把频率调高就可以了。
⑧ 为什么我的单片机定时器定时的时候变慢了
最大的可能是晶振坏了,还有个可能是程序多了循环或冗余。或者中断影响。
⑨ 51单片机定时器总是慢
把定时器设为优先。
中断发生,中断响应程序不要长过定时器,或中断程序里只设一个标志就返回,在主程序里判断这个标志再执行。
单片机的定时功能其实就是通过计数来实现的,当单片机每一个机器周期产生一个脉冲时,计数器就加一。
⑩ c++定时器如何用来延时
定时器很简单的,用SetTimer安装,用KillTimer卸载。
SetTimer,三个参数,第一个填定时器号码【无符号整形】,第二个延时时间【单位是毫秒】,第三个你就写NULL,
KillTimer,一个参数,就是定时器号码
一旦定时器安装,将会定时触发WM_TIMER消息,你在该消息的处理函数中调用你的 OnPerformAIGameAction ,
如果需要慢下来和停止调用,你根据情况处理一下逻辑。