TinyOS在MSP430F2618上移植(三)之LCD

 

        本节记录串口TFT LCD在TinyOS上的移植。1.8寸LCD显示屏采用ST7735控制器,使用SPI接口实现控制、显示数据的传输。

         总体架构:分为3层结构,最底层位于相应的platforms中chips目录下,实现在特定平台上控制引脚连接,SPI接口连接,以及SPI配置。中间层实现了LCD基本操作,LCD初始化,提供给上层模块连接的接口,以及资源管理。最上层提供应用层模块连接的接口。

         在本架构中,中间层和最高层提供相同的接口LCD16,该接口提供的实现方法有english_string,clear,single_color等,以及写完成事件writeDone。不同的是在最高层提供的接口LCD16中,并没有真正实现接口的功能,而仅仅是获得应用层传递的显示参数并设置相应的状态变量,在保存参数后,申请资源,当资源granted后,通过判断当前状态变量,调用中间层接口LCD16相应的实现。在中间层LCD16接口的实现完成后,通过提交任务的方式触发写完成事件writeDone(最好使用任务提交的方式,根据TinyOS官方的说法,这样可以防止消耗过多的堆栈),最高层响应此事件,释放先前申请的资源,并触发写完成事件writeDone,这样应用层便获得了此事件。

         接口ST7735Power实现LCD启动流程。提供的行为有start,stop,lcdinit,以及事件startDone,lcdinitDone。启动流程:应用层调用最高层SplitControl.start后,由最高层call 中间层SplitControl.start,中间层完成相应操作后signal SplitControl.startDone,最高层收到此事件后call Power.start,做LCD初始化前准备(复位LCD),并signal Power.startDone,最高层在此事件中申请资源,当资源允许时,call Power.lcdinit,中间层在LCD初始化完成后signal Power.lcdinitDone,之后最高层释放资源,并signal SplitControl.startDone。至此LCD启动完成。

        应用层使用LCD时必须use两个接口LCD16和SplitControl,在SplitControl.startDone后即可使用LCD16其他实现。

                              移植好的LCD程序在资源中搜索TinyOS TFT LCD 移植。

 

方便大家的交流,加QQ群180839287

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值