主控源代码部分,截止目前为止,都是属于辛辛苦苦敲出来的。没有使用实时操作系统,我们称之为裸机代码,未使用操作系统裸跑的意思。 为了满足各个层次用户的需求和体现出我们的努力,后续会试着移植Small RTOS51实时操作系统内核。Small RTOS51是陈明计先生(就职于周立功公司)编写的一个实时操作系统,适合在小RAM单片机上运行。 那么,现在就结合裸机代码,来说说喵呜ISO的软件框架。 图1 框图 图2 流程图 总体的流程图,就是这么简单。定时器里面的任务,是整个系统的核心。下面具体介绍实现细节。 初始化学过 51单片机的都知道,任何一个处理器要正常运行后面的代码,首先必须得有一大段设备初始化的代码先运行,这些代码用于初始化处 理器的内部时钟、中断优先级、I/O 口的输入输出方向等等,也就是为后续代码正常运行,做了一个环境配置准备。 初始化看起来很繁杂,很多,也没啥好说的。 接下来 ,程序运行到死循环while(1);程序会一直停在这里,等待数据中断的到来,而不是死机死在这里,这是有区别的,学过51的人都知道,我不再多说。 定时器可以看到角度环、速度环、PID计算、PWM输出都放在定时中断1里面,它们属于需要精确时间周期执行,因此可以在一个周期定时中断里完成。
|