《2021年辉芒微单片机C语言笔记》是由Robert编写的技术文档,详细记录了作者在使用辉芒微电子公司单片机产品时的编程经验和技巧,侧重于C语言的应用实践。
这篇笔记主要涉及基于C语言的微控制器编程,并特别关注辉芒微单FMD-MCU的应用。
1. **包含头文件**:`#include SYSCFG.h` 和 `#include FT60F02X.h` 用于引入特定于硬件的库,这些库提供了对系统配置和FT60F02X系列芯片寄存器访问的支持。其中,前者可能包含了与微控制器系统相关的定义,而后者则包括了该型号设备的所有IO端口、定时器等具体细节。
2. **引脚定义**:`#define LED1 PA1` 和 `#define LED2 PC2` 定义了两个LED的物理连接位置。PA1和PC2分别代表微控制器特定的I/O端口及其位号,如果编译过程中遇到未识别的问题,则可以用`volatile bit`类型直接在代码中定义这些引脚。
3. **变量声明**:包括如 `Char i =0; Unsigned char num=0; Int time=0; Unsigned int second=0;` 等多种数据类型的变量,用于程序运行时存储临时或持久的数值信息。
4. **标志定义**:通过设置位变量(例如`Bit time_flag=0; Bit key_flag=0;`)来标记特定事件的发生状态。这些变量在处理时间相关的操作和按键输入等场景中特别有用。
5. **自定义寄存器定义**:对于那些未被标准头文件所包含的特殊寄存器,可以手动添加其定义(例如 `OPTION`, `EPWMCR0`, `TMR3L` 等)。这些定制化设置通常与硬件的具体功能和配置紧密相关。
6. **系统初始化及时钟设定**:函数如`system_init`用于启动微控制器的基本操作环境,包括但不限于内部振荡器(OSCON)的频率调整、电源控制(PCON)等关键参数的设置以及端口模式的选择。
7. **PWM初始化**:通过调用例如 `Pwm3_Init` 这样的方法可以配置脉宽调制(PWM)功能。这涉及到将相关引脚设定为输入或输出状态,选择合适的时钟源,并确定PWM信号的工作周期和占空比等参数。
8. **定时器设置及中断处理**:以定时器0的ISR(中断服务例程)为例,展示了如何响应并管理硬件产生的时间事件。例如,在每次250微秒的时间间隔后触发一次中断操作。
这些知识点涵盖了使用C语言进行FMD-MCU编程的基础知识和技巧,从基础的数据类型声明到复杂的硬件寄存器配置以及实时任务处理等各个方面都有所涉及。