Skip to content

Latest commit

 

History

History
79 lines (44 loc) · 2.29 KB

第四课.md

File metadata and controls

79 lines (44 loc) · 2.29 KB

——从进赛场开始讲

  1. 新建工程(增加头文件地址,模块分类文件夹,各有4个)

  2. 创建stc_config.h(放冲突定义,俩个主头文件,三个数据类型)

    ——编译一下

  3. 编写数码管

    • H文件(放冲突,一个变量,一个函数)

    • C文件(三个变量,一个函数,一个定时器)

    ​ ★注意extern

    • 4个宏定义
  4. 在主函数进行测试

    • 初始化LED,继电器
    • 测试数码管

    ——编译,烧录到板子测试

    ——发试题了

  5. 分析试题

    • 过一遍大致的功能(了解一下大概考什么内容)

    • 用笔在纸上分析整个状态机结构(状态机结构推荐按照大界面功能来分类)

      ★先态,事件功能,跳转条件,次态(最好图和表都写出来)

  6. 构建按键模块

    • KeyScan()(先写一个就测试)

      • 如果是矩阵键盘,写了一个就可以开始测试

      • 测试的时候可以构建软件定时器

        ——如何排除BUG,

        ​ 先让定时器不起作用,在主循环里反复执行,排除定时器的bug

        ​ 在返回值前面加一个赋值,看是否是模块卡机。如果有输出,模块的逻辑出了问题

    • 测试完成后,再把所有所需的按键写出来再测试一次。

    ——完成输入输出的构建。 时间过去一个小时

  7. 完成成剩余模块。(看试卷的最开始的框图确定)

    • 把考试提供的驱动移动到工程里并检查一遍
      • 单片机核心头文件的替换
      • 检查引脚是否正确
      • 检查延时函数是否正确
    • 完成功能函数
      • 注意初始化,完成读取函数和写入函数
      • 注意数据处理

    ——每完成一个模块做一次测试

    1. 重新审视刚刚写的状态机表,构建状态机框架

      1. 增加系统状态变量以及系统宏定义。

      2. 编写状态轮询程序

      3. 编写状态CH文件

        ★一般来讲,在事件功能中,分为逻辑以及界面,逻辑可能和跳转条件粘合在一起,而界面是独立存在的

        • 可以先写界面和跳转函数
        • 可以先完成一个状态下的所有事件功能再完成跳转逻辑
          • 抛弃一些太过复杂的功能