2024/3/6 I2C通信实践
昨天的I2C通信原理是理解了,但是纸上得来终觉浅,今天跟着做一个秒表实践一下。因为昨天已经将I2C通信模块化,所以在这个上面没有浪费太多时间。通过主函数调用AT24C02读数据,写数据两个函数顺利解决。
今天反而主要是对定时器的调用加深了印象,实现的功能逻辑上比较简单。通过四个按键实现开关,清零,读入,写入四个功能。重难点在于在定时器中断调用,在数码管和按键模块里面写入两个驱动函数,并且按照同样思想定义个秒表的驱动函数,然后在定时器中断内通过3个T0计数标志位的计时来实现主函数在定时器中断内不断调用驱动函数,实现三个驱动模块使用定时器中断的功能,通过相反的途径以达到同样的目标。
今天主要的难点在于这种算法思想和驱动函数的设置,在按键模块内定时扫描按键电平变化检测边缘状态后通过数组嵌套把电平变化类型反映到按键的情况,在数码管模块内定时扫描数码管数据情况调用到主函数实现分秒和下一位的数据变化。
这次的实践主要是认识学习到了C语言内容(主要是函数和数组方面)已经定时器中断的“倒转天罡”的用法。只是听懂了,看懂代码,觉得很妙,自己上手完全没有这个思想。看来后面学32时候,可以慢一点,抽出时间来搞数据结构和c语言的训练(暂定整算法题)
今天这些内容掌握理解已经用的大半天,明天在看新的外设。