程序的优化要从变量开始,弄清每个变量的作用,果断删除没有用的代码和变量
统一一些意义相同的变量,免得各个函数的关系太散,,还是要分块管理,,如果分块管理,那么有些意义相同的局部变量也不许要动
1,捋清楚事件的过程,分块要合理谨慎,(要先合并一些多余的函数,)
2,变量很重要,变量要有意义(删除一些没有意义的变量,,哪些变量要全局,,哪些变量要局部,,变量名字要有意义)
3,要用DMA前期的准备是长的,中断可以分块去做,,,,,DMA是攒到一定程度一起做(如录音程序)
读程序要从主函数去看,哪个变量用到了再去查意思
写需求文档是很重要的,它能让你理清程序流程,,,最好在写程序之前,先写一遍伪代码
不要着急,欲速则不达
:我们先写一个按键的伪代码::
特别注意程序中的中断,,有时候很难仿真,,问题往往也是出自这里
比如,,,你想让灯闪起来,,,但是中断里藏有个让灯常量的语句(不容易看见),,然后就杯具了,灯始终闪不起来!!!!
,一旦中断多了你就不知道哪个中断服务函数中藏着什么
我们下面写一个伪代码:
长按三段,,,也就是每次长按会切换一种功能,,,一共可以切换三种功能,,,,
:::
从头进入 a=0 :清除累积的加加
长按: a>=100
while(如果不松手)
{
灯都闪,,,即切换过了
不可以除颤 >>不可以除颤
}
再次
长按 如果a>=100
while(如果不松手)
{
灯都亮,,进入语音
M==3 ,,跳出后执行M=3的音量调节
}
出来之后,可除颤的是不闪的,,,不可除颤的是闪的即
闪: 不可除颤
不闪:除颤
一个变量何时清零,用完之后清零,,,或用之前把它清零,,,,两个思路二选一即可,不要都加上
同理, 一块程序发送处理信号,,另一个负责接收信号,,不要及发送有接收。。。比如一个是负责播放声音的,播放完成之后它就发送一个完成播放的信号,然后负责添加音频数据的函数,接收到这个信号后,根据信号的种类来决定,添加什么音频进去继续下段播放。。