我看AT24C02的datasheet只规定了最大写周期 大概是5ms,对读周期似乎没有规定啊?是不是也是5ms?
在多任务环境下,用IO口模拟IIC时序,假如正处于写数据阶段,另外一个高优先级的任务就绪了,然后CPU就会切换到高优先级的任务执行,如果高优先级任务执行的时间大于IIC最大写周期,这样是不是就有问题了?
怎么避免这样的情况呢?是不是我的任务优先级划分有问题?
使高优先级任务的执行执行时间尽量短?将高优先级的任务进一步划分成子任务?或者将IIC读写任务的优先级提高?读写前关闭中断?
请大虾说说,在对时序要求比较严格的多任务环境下,驱动程序设计有些什么要注意的? |