基于Atmel-View的电子相框实现

[10-10 20:36:41]   来源:http://www.88dzw.com  电子制作   阅读:8476

文章摘要: 蓝牙进程进行蓝牙传输服务的监控工作,一旦外部传输请求发生,蓝牙进程将通过调用BTUI_UpdateResponse函数来通知Atmel-View任务,并开始数据接收写入工作。此函数主要是作为蓝牙任务端响应蓝牙传输相关事件,进而与Atmel-View进行及时有效的沟通、协调工作。当蓝牙任务端事件响应时,就调用NU_Send_To_Queue函数,将信息传递到队列Task_bt_queue中。在MenuMode进行完初始界面绘制后,即刻开始不断监听与蓝牙模块共享的队列Task_bt_queue,在调用函数NU_Receive_From_Queue接收到蓝牙传输请求后,即弹出信息框通知

基于Atmel-View的电子相框实现,标签:电子小制作,http://www.88dzw.com

       蓝牙进程进行蓝牙传输服务的监控工作,一旦外部传输请求发生,蓝牙进程将通过调用BTUI_UpdateResponse函数来通知Atmel-View任务,并开始数据接收写入工作。此函数主要是作为蓝牙任务端响应蓝牙传输相关事件,进而与Atmel-View进行及时有效的沟通、协调工作。当蓝牙任务端事件响应时,就调用NU_Send_To_Queue函数,将信息传递到队列Task_bt_queue中。

在MenuMode进行完初始界面绘制后,即刻开始不断监听与蓝牙模块共享的队列Task_bt_queue,在调用函数NU_Receive_From_Queue接收到蓝牙传输请求后,即弹出信息框通知用户蓝牙传输进行中,同时关闭影响蓝牙传输的红外接收并设置蓝牙传输状态为TRUE,以避免按键处理模块的进行。如此,程序将在蓝牙传输期间不断进行while循环随时监听Task_bt_queue的新信息情况。直至接收到来自蓝牙模块的传输完毕信息,标识着蓝牙传输工作的完毕,则更新显示区,重开启红外接收并将蓝牙传输状态设为FALSE以让按键处理模块重新进行。

4.4.2 Semaphore的应用

Nucleus Plus 提供信号量(semaphores),事件集(event groups)和信号(signals)解决信号同步问题。信号量和事件集都是独立的,公用的设备。任务和其他系统设备的联系由应用程序决定。在Atmel-View模块和蓝牙模块的进程间同步方式,这里选择使用信号量来实现。

在Atmel-View的UI应用中,加载媒体文件访问存储卡在所难免,而蓝牙模块的传输工作也将把接收到的文件写入存储卡中。在蓝牙进程和Atmel-View进程同时访问存储卡设备时,由于资源重入的不支持将导致资源冲突程序瘫痪的发生。因而,这里使用Nucleus的Semaphore来解决资源竞争问题。

声明了NU_SEMAPHORE变量后,此变量将在Atmel-View进程和蓝牙进程间共享,在访问冲突资源的时候,调用NU_Obtain_Semaphore和NU_Release_Semaphore函数来将资源访问模块包住,从而保证在得到Semaphore后,直至释放Semaphore前,资源访问都是安全的,因为另一正要访问此资源的进程将由于得不到唯一的Semaphore而暂时被自动悬挂起来。

5总结展望

随着电子相框市场的日趋成熟,技术的不断发展,功能模块日益增多,系统架构也变得越发复杂。这使得软件产品的可用性、易用性、友好性显得更为重要起来,UI的设计实现是否合理将直接影响这些因素。

市面上流行的不少电子相框的UI设计存在着架构简陋、复用性差、可扩展性差的问题。本论文的方案主要基于Atmel-View,完成了一套层次化、结构化、易扩展的菜单系统,实现效果良好。并嵌入Nucleus Plus操作系统,实现了菜单系统和蓝牙模块间的进程通信和同步,有效得支持了蓝牙模块。

上一页  [1] [2] [3] 


Tag:电子制作电子小制作维修教程知识 - 电子制作