标题: 请问这种时间不规则的闪灯程序怎么处理比较高效? [打印本页]

作者: wellhope    时间: 2023-8-18 17:05
标题: 请问这种时间不规则的闪灯程序怎么处理比较高效?
用示波器测了一个闪灯的时序,时间是不规则的,请问一下高手,象这种闪灯怎么写效率比较高?谢谢!

闪灯.png (9.48 KB, 下载次数: 65)

闪灯时间

闪灯时间

作者: 1860774xxxx    时间: 2023-8-19 00:45
很好奇你是怎么写的
作者: 爱电子998    时间: 2023-8-19 08:49
如果使用的是单片机可能没有必要这样写一个闪灯程序,如果使用的是555或者其它器件就好理解了
作者: newlined    时间: 2023-8-19 09:01
定时器?不同的时间随时设定不同的定时参数?
作者: zhuls    时间: 2023-8-19 09:08
我算了一下,按0.05s的速率,连续发送21个字节(8位)的数据即可,具体发什么数据自己算一下。
作者: zxxay    时间: 2023-8-19 09:08
可以把这些时间做成表格查表处理。。。
作者: yuyechenai    时间: 2023-8-19 09:22
定义一个结构体
typedef struct
{
        u8 IO        ;         // 记录端口状态
        u16 timer;        // 记录延时时
}        SW_IO;


typedef struct   /////处理函数进入时间处理方案
{
  u16 time;         /* 定义进入中断时间 等0xFFFF 函数被关闭, 0允许进入函数  */
  u8 tag;           /* 标记状态                */
  u8 value;         /* 传递参数                */
} SWT_APP ;



SW_IO IO_K[50];  // 根据需要控制的时序填写对应时间和高低电平

SWT_APP location ; 记录数组运行位置

if(location.time ==0 )
{
       
  if( IO_K[location.tag].IO )
  {
        输出高电平
  }
  else
  {
   输出低电平
  }
  location.time =  IO_K[location.timer];延时时间写入
  location.tag++;
}



中断内部调用控制

if(location.time &(location.time != 0xffff) )location.time--;
作者: lzzasd    时间: 2023-8-19 17:14
把每段延时时间做成数组    再做一个定时0.1秒的定时减减函数       把数组做个循环任务函数   把第一位减的时间个数(全局参数)载入循环    减到零时载入第二个减时间个数    到最后一位处理下是跳出还是继续循环就行了
作者: yzwzfyz    时间: 2023-8-25 15:14
很简单:
1、每个脉冲由0/1组成,给出两个量:L1,H1。
2、N个脉冲,做成一个表格,给出2N个量:L1,H1、L2,H2、L3,H3、L4,H4、……LN,HN。
3、程序:
用定时器做一个计时软件,依次取出L,H,计三种情况:
L<>0,H<>0 时,L-1计时并输出0;
L = 0,H<>0 时,H-1计时并输出1;
L = 0,H = 0 时,取一下组数据;
重复。
作者: wellhope    时间: 2023-8-26 17:03
感谢各位老师的指导!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1