来深圳已一月有余,回望这段时间,收获颇多呀。
两周学习can通信协议,并且驱动电机,这个就不细说了。这次主要说一下刚完成的温度控制模块的项目,因为在此项目中实在收获不少呀。
这最开始,要说一下程序代码的结构策划,这是本次项目中最大的收获。这个技能可以说给我的代码生涯打开了一个新的大门。主要通过两个方面着手如何学习代码的结构策划:一个是公司前辈的指点,另一个就是《程序员的思维修炼》这本书给到的思维上的启迪。下面就以温控系统为例,来简单说一下。
以框架来写代码,首先要做一个构思:从最顶层的功能开始写起,然后一步一步拆分,一直到最底层。如下:
具体到温控模块
当完成了整个功能模块的构划,接下来写代码就要从最底层开始写起,驱动层,数据处理层,应用层,这样一层一层往上实现。当学会先搭框架,再去写程序,思路会更清晰,后续阅读代码和移植代码也会很方便。
另外多说一下在其中用到的一个减小温度稳定范围的技巧(其实用pid算法更好,但时间紧迫,后续会补一个pid算法稳定温度的博客),这里就先只是说一下我所想到的一个方法。主要分成两个部分,一部分是adc值得滤波,得到更可靠的值。操作步骤是先冒泡排序,在去头去尾。代码如下:
//冒泡排序
//输入参数:*dat:排序的数据 len:排序的数据长度
//输出参数:无
void Temp_Sort(uint16_t *dat, int len)
{
uint16_t t;
u8 i;
u8 j;
for( i=0;i<len-1;i++)
{
for( j=0;j<len-1