单片机程序设计编程规范(4)
i.平时LCD都是透过LCDBuffer(RAM)来作为interface,当AP层面有更动LCD资料并不直接对LCM硬件操作,而是针对RAMBuffer更动资料同时设立LCDREQflag
ii.MNLCD里面发现LCDREQ=1时候才进入MNLCD程序运行显示更新,此法可有效改善效率与显示的稳定性
iii.相同如果非LCM的操作有些人认为可以直接更改LCDRAM数值直接更新显示,这也存在相当大的风险,最好的方式还式透过另外一组Buffer来做缓冲
iv.松翰的ICE发展系统有提供软件LCD模拟器给客户使用当客户的LCD还没有实体,可以透过模拟器直接在PC画面上显示,配合程序开发非常方便
8.Telecomm的处理
1)Sync(withclock)andAsync.
2)Sync.类似SPI信号datain,dataout,andclock
3)Async.本身没有Clock时钟信号一般来说有以下几个组成
i.Bitsync位元同步
ii.Framesync特定的framecode来锁定framedata开始
iii.Datalength资料长度来收集资料
iv.Checksum最后靠checksum来验证资料的正确性
4)一般来说同步或异步通信程序都是TX容易/RX译码困难
i.
大
5)拍码TX只需要考虑大笔资料拍码的bufferandpointer影响程序实时性不ii.接收RX部分就有点困难需要有较多的技巧考量尤其异步通信更是麻烦RF通信里面还要考虑拍码调变的方式某些硬件电路只能利用曼彻斯特编码法来拍码以去除DC分量
9.
环
2)看门狗/条件式看门狗只能够放在主循环内,可以确保主循环有效的运行,当主循环运行失败,“看门狗”自然发生Reset动作
3)主循环的绕圈时间(实时性系统反应力)
i.牵涉到系统的实时性(real-time)所以绕圈时间越短越好建议在5mS以内,
利用IOtoggle来观察主循环绕圈时间,如果程序里面有多余的IO就可以留下此IO供日后生产测试观察使用,如果没有多余在程序稳定后可以将此观察的IO移除
ii.主循环绕圈时间也会受到中断的影响,由于中断的执行等级高于主循环所以
当中断运行时间越长自然主循环的运行时间也越长,所以中断里面占用时间必须稳定的控制,不然影响系统实时性/反应性很大
iii.主循环里面每一个物件都要设计良好才能确保一个整体的绕圈时间,每一
个子程序物件进入前,都必须透过旗标判断是否需要执行,如MNLCD程序进入后立即检查是否lcdreq=1,如果在此绕圈动作中没有任何lcd资料更新,那也就不用浪费时间进入lcdsub-routine.另外如EEP储存动作由于会有writedatabusy问题所以也必定要将资料分批写入,不然程序会停留在writedata循环里面影响当时整体实时性
10.Watchdog的处理
1)Watchdog功能说明
2)Watchdog方块图说明
3)条件式清除watchdog
4)使用地方注意事项
11.Application的处理
1)透过APFIFO读取APCodeMainLoop的处理1)进入主程序循环前要有个”前处理”(Pre_Main)来将基本参数设置好才进入主循
i.APFIFO越大越能够了解系统发生过的事件(event)有助于systemdebug,只要在ICE上面stop运行观察FIFObuffer里面的数值就可以知道哪些动作进入FIFO发生过哪些事情
ii.同时系统里面有keybuffer,lcdbuffer,txbuffer,rxbuffer,eeprombuffer,tonebuffer利用FIFOandBuffer的观察,软件系统的除错性自然产生
2)APCode的编排设计
i.由于程序最后可以透过PC跳转所以APcode的数值设计就非常重要
3)根据不同的status可以展开所有动作有两次跳转动作设计出所有的命令
4)程序最后可达到表格化设计的境界利用跳转表格将程序的流程具体化
12.Powerdownandwakeup
1)省电的考量(系统耗电应该低于1uA/5V)
i.Inputpin:内部Pull-upresistor或是外部设定皆可
ii.Output
iii.Powerdown失败的情形
wake-uppin没有设置好,powerdown指令下达后马上就唤醒wake-up,使用者会误以为无法powerdonw
iv.Powerdown进入Sleepmode软件要做一个前处理pre_sleep程序
1)设立所有inputandoutputpin
2)TurnoffADC还有其他外围
3)设立wake-up条件P1WorTimergreenwake-upmode
4)Wakeup
i.Resetwakeup但是程序重头开始运行有时候多CPU系统里面或者在单按键状态的时候,利用按键reset
ii.Wakeuppin唤醒如P1,有分fallingedgewake-upandeventchangewake-up
13.SlowmodeandgreenmodeRTC的处理
1)Slowmode低速运行此模式利用MCU里面内建的32KhzRC震荡
i.ICnormalmode进入slowmode主要目的在于省电(slowmode<15uA/3V)
ii.Slowmode中IC还是开启所有周边运行利用低速运行来减低耗电
iii.Normal进入Slowmode并不需要太特别的设定主要还是考量IO与周边耗电的设置
iv.Slowmode回到Normalmode就要注意高速时间起振delaystable问题
2)TurnontheExternal/HighX’tal
3)WaittheExternalx’talStable这是必须做的动作否则会有不稳定的现象
4)Switchbackthenormalmode
5)一般来说delay时间约在mS等级建议设计2~10mS,最好用示波器观察起振时间再决定delaytime,不同的x’tal会有不同的起振稳定时间
14.ADC周边的处理
1)DNLandINL的观念
i.MissingCode是ADC比较通常的问题
ii.DNL可以反映出missingcode的特质
iii.INL反映出线性度的性能
2)平均化处理
i.在ADC的应用这是非常重要的
AC应用里面由于电源会有噪声产生或是EFT环境,此时ADC可能读到瞬间噪声,当作某些关键数值判断(如充电器充电电压判断)很有可能提早停止动作所以必须透过数值运算后再进行判断
3)读取ADC数值等待时刻不可去作OUPUT动作,由于微小的output动作都会引起VDD的噪声此时adc得到数值可能不稳定建议ADC读起时候利用回圈等待(配合timeout机制保护)
4)ADC参考电压设计
5)Powerdown时候必须注意的事项
i.TurnofftheADChardware
ii.注意ADCchannel输入信号的准位
ADCport里面只有软件设定enable那一pin高阻抗其他的脚位都是输入,如果有信号位于半电压1/2VDD时候会有输入漏电流产生,可以硬件解决同时松翰某些新款母体都具备有隔离暂存器可以设定,见以下范例
15.状态迁移的技巧
1)长秒数ON/OFF切换
左图标明如何运用state来做出长秒数的开关动作
State=0:关闭所有动作
开启此on/off动作必须设定以下指令
Time=0;时间重头开始
State=1;程序从状态一开始
接着程序会自动在两个状态里面切换,切换后设定时间的长度,同时执行相关的动作.最后设定下一个状态的指标state.
右图标明程序配合timer自动递减,当time=0时候代表整个动作自动停止
Time<>0的时候此程序会自动递减
如果状态较多的情况每一个状态里面用State=state+1,最后一个状态里面直接设定State=初始值,当初始值=0就是单次执行这状态迁移,如果初始值=1那这状态迁移就会不断的循环!
关闭此程序的方式也非常简单,就是设定State=0.
一般设计人员最常用错误方式,就是用delay循环方式来完成,此种方式大大降低程序的灵活性与实时性!务必要记住程序尽量不使用delayloop!
…… 此处隐藏:1978字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [小学教育]四年级综合实践活动课《衣物的洗涤》教
- [小学教育]2014半年工作总结怎么写
- [小学教育]20世纪外国文学专题综合试题及答案
- [小学教育]TS_1循环使用催化丙烯环氧化反应研究
- [小学教育]最实用的考勤签到表(上下班签到表)
- [小学教育]气候与生态建筑——以新疆民居为例
- [小学教育]二人以上股东有限责任公司章程参考样本
- [小学教育]2014届第一轮复习资料4.1,3美好生活的
- [小学教育]土方开挖、降水方案
- [小学教育]手绘儿童绘本《秋天的图画》(蜡笔)
- [小学教育]2002级硕士研究生卫生统计学考试试题
- [小学教育]环保装备重点发展目录
- [小学教育]金蝶K3合并报表培训教材
- [小学教育]岩浆岩试题及参考答案
- [小学教育]知之深爱之切学习心得
- [小学教育]第十二章 蛋白质的生物合成
- [小学教育]Chapter 2-3 Solid structure and basi
- [小学教育]市政道路雨季专项施工方案
- [小学教育]中国海洋大学2012-2013学年第二学期天
- [小学教育]教育心理学第3章-学习迁移
- 浅谈深化国企改革中加强党管企业
- 2006年中国病理生理学会学术活动安排
- 设计投标工作大纲
- 基于ARP的网络攻击与防御
- 2016届湖北省七市(州)教科研协作体高三
- Google_学术搜索及其检索技巧
- 2019-2020学年七年级地理下册6.3美洲教
- 城市道路可研报告
- 【名师指津】2012高考英语 写作基础技
- 6级知识点培训北京师范大学《幼儿智趣
- 注册会计师会计知识点:金融资产
- 新安装 500 kV 变压器介损分析与判断
- PS2模拟器PCSX2设置及使用教程.
- 医院药事管理与药剂科管理组织机构
- {PPT背景素材}丹巴的醉人美景,免费,一
- NAS网络存储应用解决方案
- 青海省西宁市六年级上学期数学期末考试
- 测量管理体系手册依据ISO10012:2003
- 洞子小学培养骨干教师工作计划
- 浅谈《牛津初中英语》的教材特点及教学




