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

[复制链接]
718|3
手机看帖
扫描二维码
随时随地手机跟帖
zhouminjie|  楼主 | 2021-12-5 16:01 | 显示全部楼层 |阅读模式
很荣幸能申请到ATtiny1627开发板,先来个点灯测试:
1、下载安装MPLAB X IDE开发环境,安装XC8编译工具,安装MPLAB代码配置器MCC
打开MPLAB
1.png
2、点击新建工程New Project...
2.png
3、选择Microchip Embedded—>Standalone Projects—>Next
3.png
4、Device选择ATtiny1627、Tool选择ATtiny1627 Curiosity Nano
4.png
5、编译工具选择XC8
5.png
6、设置工程名,存储路径,Encoding设置GB18030(中文注释就不会显示为乱码)
6.png
7、点击MCC,打开代码配置器,存储配置文件
7.png
8.png
8、配置System Module,系统时钟频率设置为20MHz,时钟源选为内部时钟源
9.png
9、配置Pin Module,右击Pin Manager: Package View中芯片引脚PB7,设置为GPIO output
10.png
10、添加TCA0定时器外设,使能定时器TCA0,Clock Selection设置System Clock/8,定时时间设为8us,使能溢出中断
11.png
11、配置Interrupt Manager,使能全局中断
12.png
12、配置完成后,点击Generate生成main.c,定时器设置为8us中断一次,呼吸频率312.5Hz,3.2ms(400*8us)
13.png
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();
    }
}
效果如下:
91cc231eb721c3bccb588f4e0d68e874 (1).gif
测试代码:
ATtiny1627.X.zip (112.19 KB)

使用特权

评论回复
weifeng90| | 2021-12-5 16:22 | 显示全部楼层
不错,谢谢楼主分享。

使用特权

评论回复
chenjun89| | 2021-12-6 07:47 | 显示全部楼层
红色阻焊看起来也不错啊

使用特权

评论回复
两只袜子| | 2021-12-7 09:11 | 显示全部楼层
很不错啊,这开发板还可以申请吗

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则