嵌入式设备进行按键切换程序, 如何实现好?
简单地说, 就是我按一下按键, 就执行程序的这部分代码, 再按一下, 就执行程序的那一部分代码..这两部分的代码属于平行关系, 其实在程序中可以设置if ..else..类似的语句的
但是因为要用按键进行切换, 所以不知道怎样实现好?
暂时计划另写一个程序, 进行按键检测(这部分肯定是阻塞的), 然后把那程序分别编译成两个程序, 有按键则Kill掉原程序, 启动新程序.
感觉这样好笨, 想一下大家有什么看法??
如表述不清导致理解错误~ 请跟帖... 忘了说, 嵌入式是Linux系统 不懂
是不是可以看成这样
A是按键检测程序,B和C的两个不同的程序?
按一下A就执行B,再按一下就执行C?
为什么不可以做成A检测到按键就向B和C发消息,然后由B和C去决定是否运行,
而B和C只需要置个位就可以决定是否让程序继续执行,
比如当前B跑两个线程,,一个消息处理的,收到按键消息,把相应位置位
然后在另外一个线程里面判断这个位来决定是否执行下面的操作,如下,B_MsgProc是消息处理
B_Proc是具体的处理
然后C程序也可以是一样的处理?
B_MsgProc()
{
flag = !flag;
}
B_Proc()
{
while(1)
{
if (flag == false)
{
sleep(1);
continue;
}
else
{
XXXX;
}
}
}
不知道这样能不能满足LZ的要求? 有点深度哦 LS别TMD瞎灌水... 其实最好是把全部都做成同一个程序里 ... 还没打完字就发表了
我是说, 同一个程序, 进行按键检测, 然后判断, 对两部分的功能模块进行切换~
描述一下这程序的功能:
主线程进行数据采集, 数据可以通过A模块, 也可以通过B模块发送出去, 两个模块没有主从关系.
现在就是加一个按键检测, 使数据在A模块和B模块的传送中切换, 数据是不断地采集的
所以A, B模块都分别启动一个线程, 按键检测也启动一个线程.
我之前想的笨方法是, 把数据采集+A模块传输这部分做成一个程序, 把数据采集+B模块传输做成一个程序,
这样就简单但看起来不太好~~
现在的想法就是如上描述了.
但是具体还没实现, 之后再发贴说明测试结果. 还是不太明白,如果是要做在一个进程里面跑,那更简单一点了...
不知道这样可不可以?
A-->数据采集
B-->按键检测
C-->处理1
D-->处理2
四个分别以线程方式运行
1. 这样来处理的话, 在A中不断地采集数据到一个buffer里面,由处理程序来使用这个buffer的数据,就是和处理程序一个生产者-消费者的模型, 要注意数据读写的加锁和解锁
2. 在设置一个全局变量,在B的按键检测中设置这个全局变量的值bSwitch, 其实这个全局变量就是一个开关, 控制是C还是D来处理
3. C判断如果bSwitch是1,那么就运行,否则像前面帖子里面描述的 sleep一小个时间,比如100ms,注意时间不能太长,否则响应会很慢
4. D判断如果bSwitch是0,那么就运行,否则同样地sleep一小个时间再检测这个变量
页:
[1]