社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 843|回复: 0

[资料分享] TinyOS在MSP430F2618上移植(三)之LCD

[复制链接]

3360

TA的帖子

421

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

发表于 2013-11-29 19:08:55 | 显示全部楼层 |阅读模式

本节记录串口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 移植。

此帖出自MSP430论坛


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-6-19 14:46 , Processed in 0.564624 second(s), 17 queries , Gzip On, Redis On.

快速回复 返回顶部 返回列表