很荣幸能申请到ATtiny1627开发板,先来个点灯测试:
1、下载安装MPLAB X IDE开发环境,安装XC8编译工具,安装MPLAB代码配置器MCC
打开MPLAB
2、点击新建工程New Project...
3、选择Microchip Embedded—>Standalone Projects—>Next
4、Device选择ATtiny1627、Tool选择ATtiny1627 Curiosity Nano
5、编译工具选择XC8
6、设置工程名,存储路径,Encoding设置GB18030(中文注释就不会显示为乱码)
7、点击MCC,打开代码配置器,存储配置文件
8、配置System Module,系统时钟频率设置为20MHz,时钟源选为内部时钟源
9、配置Pin Module,右击Pin Manager: Package View中芯片引脚PB7,设置为GPIO output
10、添加TCA0定时器外设,使能定时器TCA0,Clock Selection设置System Clock/8,定时时间设为8us,使能溢出中断
11、配置Interrupt Manager,使能全局中断
12、配置完成后,点击Generate生成main.c,定时器设置为8us中断一次,呼吸频率312.5Hz,3.2ms(400*8us)
13、添加led.c文件
- #include "mcc_generated_files/mcc.h"
- static uint16_t PWMCount = 0;
- static uint16_t PWMDutyCount = 1;
- static uint8_t Direction = 0;
- void Breathing_cb(void)
- {
- TCA0_ClearOverflowInterruptFlag();
- TCA0_WriteTimer(0);
- PWMCount++;
- if(PWMCount >= 400)
- {
- LED_SetLow();
- PWMCount = 0;
- if(Direction == 0)
- {
- PWMDutyCount++;
- if(PWMDutyCount > 399)
- {
- Direction = 1;
- }
- }
- else
- {
- PWMDutyCount--;
- if(PWMDutyCount <= 1)
- {
- Direction = 0;
- }
- }
- }
- else if(PWMCount == PWMDutyCount)
- {
- LED_SetHigh();
- }
- }
效果如下:
测试代码:
|