这篇笔记主要涵盖了基于C语言的微控制器编程,特别是针对辉芒微单的FMD-MCU。下面是笔记中的关键知识点:
1. **包含头文件**:`#include "SYSCFG.h"` 和 `#include "FT60F02X.h"` 是为了引入特定的微控制器库,提供对硬件寄存器的访问。`SYSCFG.h` 可能包含了系统配置的相关定义,而 `FT60F02X.h` 是针对FT60F02X系列芯片的头文件,包含该芯片的IO端口、定时器等寄存器的定义。
2. **引脚定义**:`#define LED1 PA1` 和 `#define LED2 PC2` 分别定义了LED1和LED2的引脚,这里PA1和PC2是微控制器的端口和位。如果编译器找不到这些定义,可以使用`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;` 这是两个位变量,用于标记时间事件(time_flag)和按键事件(key_flag)的发生。
5. **自定义寄存器定义**:如果头文件中没有定义某些寄存器,可以像示例那样手动定义,例如`OPTION`, `EPWMCR0`, `TMR3L`, `TMR3H`, `PR3H`, `PR3L`, `PWM3CR0`, `PWM3CR1`, `T3CKDIV`等。这些都是与定时器、PWM(脉宽调制)和系统选项相关的寄存器。
6. **系统和时钟设定**:`system_init`函数初始化系统时钟,如将OSCON设置为0x61,使系统时钟为8MHz,PCON设置为0x2b,PORTA初始化,以及输入输出方向的设置。
7. **PWM初始化**:`Pwm3_Init`函数初始化PWM(脉宽调制)功能,例如将响应的引脚设置为输入,设置PWM为内部快时钟,设置PWM周期和占空比,以及开启计数器。
8. **定时器设置**:定时器0的中断服务子程序(ISR)展示了如何处理定时器中断。`if(T0IF)`检查定时器0中断标志,然后清零并重新装载计数器值。这个例子中,定时器0每250us中断一次。
9. **中断服务**:中断服务子程序是处理中断事件的代码,如定时器0中断。中断标志T0IF在中断发生后被自动置位,需要在服务子程序中清除,以防止重复中断。
这些知识点都是基于C语言进行微控制器编程的基础,包括头文件的使用、引脚和寄存器的定义、变量声明、标志变量、系统和时钟配置、PWM初始化以及定时器中断的处理。这些内容对于理解和编写FMD-MCU的C语言程序至关重要。
2024-10-20 02:16:03
823KB
1