如何设计WinCE下调试收音机的程序框架
现在小弟打算将收音机加入到小弟开发的产品中,系统是基于WinCE6.0的。收音机目前用的是的SI4703。
小弟以前做MCU的,在MCU上面加入这个收音机没问题,软件框架也比较合理。但现在想将这个SI4703加入到WinCE系统中,通信时用I2C的。软件框架就不知道怎么设计了。目前小弟碰到的主要是下面这个难点:
1、对SI4703的很多操作是由很多个步骤组成的,比如上电PowerOn这么个操作,就要分好几个步骤进行,而且有时这些步骤之间的先后顺序、相互间间隔的时间都是有要求的。而我想的就是WinCE在启动Radio模块后首先发送一个PowerOn消息给Radio模块,通过这么一个PowerOn消息来初始化SI4703芯片,问题点就在于一个消息触发后面多个步骤,而且这些步骤间的先后顺序、相互间的时间间隔都有要求。各位大侠,这个功能怎么设计啊。像这种一个消息触发多个步骤的地方还有很多啊,比如用户在UI上点击一个“搜台”按钮,UI线程就像Radio模块扔一个“搜台”消息,后面的工作就全部由Radio模块来实现。Radio模块需要实现如下步骤:1、将SI4703芯片设定在SEEK模式; 2、启动SI4703使他开始SEEK; 3、延时等待10ms左右; 4、读取搜台结果和当前SI4703芯片内部的实际电台频率;
第一,UI上要实时显示当前正在搜索的电台频率,让用户看到UI上的频率点在快速的变化; 第二、要在尽可能短的时间内读取搜索结果(也就是上面的步骤3中的10ms左右的时间),否则,如果波段中一个电台都没有(比如天线没接好)将导致从最低的频率点搜索到最高的频率点时时间很长。