[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】+ATtiny1627 LED呼吸灯

[复制链接]
 楼主| zhouminjie 发表于 2021-12-5 16:01 | 显示全部楼层 |阅读模式
很荣幸能申请到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文件
  1. #include "mcc_generated_files/mcc.h"

  2. static uint16_t PWMCount = 0;
  3. static uint16_t PWMDutyCount = 1;
  4. static uint8_t Direction = 0;

  5. void Breathing_cb(void)
  6. {
  7.     TCA0_ClearOverflowInterruptFlag();
  8.     TCA0_WriteTimer(0);
  9.     PWMCount++;
  10.     if(PWMCount >= 400)
  11.     {
  12.         LED_SetLow();
  13.         PWMCount = 0;
  14.         if(Direction == 0)
  15.         {
  16.             PWMDutyCount++;
  17.             if(PWMDutyCount > 399)
  18.             {
  19.                 Direction = 1;
  20.             }
  21.         }
  22.         else
  23.         {
  24.             PWMDutyCount--;
  25.             if(PWMDutyCount <= 1)
  26.             {
  27.                 Direction = 0;
  28.             }
  29.         }
  30.     }
  31.     else if(PWMCount == PWMDutyCount)
  32.     {
  33.         LED_SetHigh();
  34.     }
  35. }
效果如下:

测试代码:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
weifeng90 发表于 2021-12-5 16:22 来自手机 | 显示全部楼层
不错,谢谢楼主分享。
chenjun89 发表于 2021-12-6 07:47 来自手机 | 显示全部楼层
红色阻焊看起来也不错啊
两只袜子 发表于 2021-12-7 09:11 来自手机 | 显示全部楼层
很不错啊,这开发板还可以申请吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

140

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部