0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

编程案例 使用MPLAB®X开发AVR®MCU 写C程序框架

eeDesigner 来源:物联网评论 作者:物联网评论 2022-05-17 11:24 次阅读

从新建一个空白程序开始,从头写一个程序框架,能有助于更好的理解MPLAB® X开发环境所提供的各种编程资源。

1. 新建一个空白程序。其项目属性如下:

pYYBAGKDFXaACHQcAAEetdT_X18112.jpg

2. 新建main.c文件

在Projects列表页面中,选中项目名称,点右键,通过弹出菜单,新建main.c文件。

Main.c中默认已经有了几行代码: 包含xc.h头文件和主函数main()。

poYBAGKDFXaALKaNAAJVwC0fG0k684.jpg

3. 头文件结构

在main.c文件编辑区,右键,Navigate -> View Includes Hierarchy, 可以查看xc.h,以及下层包含的头文件。

pYYBAGKDFXeABdrtAAUEuEHZ6r8712.jpg

当前main.c文件的头文件包含结构:

poYBAGKDFXeAPs6WAAAgMiiXIYI225.jpg

xc.h 头文件中,主要是对cci.h 和avr/io.h进行了包含,并且定义了使能/禁止中断的宏定义。

pYYBAGKDFXeAZg57AABmDhIQQh4708.jpg

Avr/io.h文件,是通用的“索引”型头文件,对各个AVR器件的头文件进行了条件包含。

poYBAGKDFXeAGHgzAACP0EmtNkE394.jpg

Iotn817.h 文件具体定义了ATtiny817芯片的IO口,外设寄存器信息

pYYBAGKDFXeABxR4AACJmNDACIY335.jpg

4. IO口操作

PORTA.DIR = 0x55;

PORTA.OUTSET = 0x55;

uint8_t pinvalue = PORTA.IN & 0xAA;

PORTA.OUTTGL = 0x55;

数据类型uint8_t 是标准头文件stdint.h中定义,根据上面的头文件结构,已经包含,所以不需要再进行包含。

5. 中断

- 包含中断头文件

#include

- 中断处理函数:

ISR(NVMCTRL_EE_vect){

//添加中断处理函数代码

}

- 中断使能函数 ei() 或 sei().

- 中断禁止函数 di() 或 cli()

6. 延迟

- 定义 F_CPU 宏为系统频率

#define F_CPU 33333333 //3.3MHz

- 包含延迟头文件

#include

- 使用延迟函数

_delay_ms(1000);

7. FUSE

FUSES =

{

.APPEND = 0,

.BODCFG = ACTIVE_DIS_gc | LVL_BODLEVEL0_gc | SAMPFREQ_1KHz_gc | SLEEP_DIS_gc,

.BOOTEND = 0,

.OSCCFG = FREQSEL_20MHZ_gc,

.SYSCFG0 = CRCSRC_NOCRC_gc | RSTPINCFG_UPDI_gc,

.SYSCFG1 = SUT_64MS_gc,

.WDTCFG = PERIOD_OFF_gc | WINDOW_OFF_gc,

};

Fuse结构体定义在iotn817.h中

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17143

    浏览量

    351117
  • AVR
    AVR
    +关注

    关注

    11

    文章

    1123

    浏览量

    78658
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136780
收藏 人收藏

    评论

    相关推荐

    AVR单片机C语言程序框架(单片机最简操作系统)及详解

    本帖最后由 lvhoujun 于 2014-2-28 00:37 编辑 这是本人以ATMEGA128为例编写的C语言程序框架,做简单的修改即适合AVR所有单片机。可以说是一个单片
    发表于 02-12 20:27

    MPLAB X IDE 4.05没有AVR设备?

    MPLAB X IDE V4.05系列:8位AVR MCU(XMEGA/MEGA/TIN)设备:??????? 以上来自于百度翻译 以下为原文 M
    发表于 11-13 15:36

    MPLAB® PM3器件编程器用户指南(用于MPLAB X IDE)

    MPLAB® PM3器件编程器用户指南(用于MPLAB X IDE)
    发表于 05-25 17:29 88次下载

    利用MPLAB® Harmony开发框架缩短开发时间

    MPLAB® Harmony是针对PIC32单片机的完善软件开发框架,经估算,对于典型项目的开发时间至少可节省20%以上。为加速开发过程,
    的头像 发表于 07-08 00:15 3351次阅读

    MPLAB Harmony开发框架PIC32单片机中的作用说明

    MPLAB® Harmony是一款适合Microchip PIC32单片机的软件开发框架,凭借简单易用、基于GUI的配置器,MPLAB® Harmony支持用户灵活地
    的头像 发表于 07-08 00:17 5285次阅读

    利用MPLAB Harmony软件框架的互联模块整合程序

    Microchip获奖的MPLAB® Harmony是一款针对PIC32单片机的软件框架,可在项目配置中以互联模块的形式整合应用程序的所有组件。
    的头像 发表于 07-08 00:37 3638次阅读

    MPLAB X集成开发环境现已支持AVR单片机

    生态系统进行开发工作的设计人员现在可以轻松评估AVR MCU并将其融入到应用中。今天,随着美国微芯科技公司(Microchip Technology Inc)推出MPLAB
    发表于 10-08 15:43 568次阅读

    美国微芯科技推出MPLAB®X集成开发环境(IDE)5.05版,可支持大部分AVR MCU

    今天,随着美国微芯科技公司(Microchip Technology Inc)推出MPLAB® X集成开发环境(IDE)5.05版,目前暂属测试版,可支持大部分AVR
    发表于 10-11 10:28 2586次阅读

    如何安装MPLAB Harmony v3软件开发框架

    MPLAB® Harmony v3 是一款软件开发框架,包含兼容且可互操作的模块,例如外设库(Peripheral Library,PLIB)、驱动程序、系统服务、中间件和第三方库。此
    发表于 03-30 16:30 19次下载
    如何安装<b class='flag-5'>MPLAB</b> Harmony v3软件<b class='flag-5'>开发</b><b class='flag-5'>框架</b>

    AVR的自编程功能

    AVR的自编程功能ATmega128具备引导加载支持的用户程序编程功能(In-System Programming by On-chipBoot Program),它提供了一个真正的
    发表于 11-15 13:06 7次下载
    <b class='flag-5'>AVR</b>的自<b class='flag-5'>编程</b>功能

    使用MPLAB® X开发AVR® MCU – 从头一个C程序框架

    从新建一个空白程序开始,从头一个程序框架,能有助于更好的理解MPLAB® X
    发表于 02-10 10:17 4次下载
    使用<b class='flag-5'>MPLAB</b>® <b class='flag-5'>X</b><b class='flag-5'>开发</b><b class='flag-5'>AVR</b>® <b class='flag-5'>MCU</b> – 从头<b class='flag-5'>写</b>一个<b class='flag-5'>C</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b>

    像使用PIC® MCU一样在MPLAB® X IDE中开发AVR® MCU

    比较慢之外,不失为一款比较优秀的开发环境,其编辑、编译、调试和烧录功能都非常强大。而AVR® MCU的Studio 7开发环境,继承了Visual Studio(VS)的血脉,只是风格
    发表于 02-11 10:57 3次下载
    像使用PIC® <b class='flag-5'>MCU</b>一样在<b class='flag-5'>MPLAB</b>® <b class='flag-5'>X</b> IDE中<b class='flag-5'>开发</b><b class='flag-5'>AVR</b>® <b class='flag-5'>MCU</b>

    适用于AVR MCUMPLAB XC8 C编译器用户指南

    电子发烧友网站提供《适用于AVR MCUMPLAB XC8 C编译器用户指南.pdf》资料免费下载
    发表于 09-19 15:47 3次下载
    适用于<b class='flag-5'>AVR</b> <b class='flag-5'>MCU</b>的<b class='flag-5'>MPLAB</b> XC8 <b class='flag-5'>C</b>编译器用户指南

    MPLAB XC8嵌入式工程师用户指南——AVR MCU

    电子发烧友网站提供《MPLAB XC8嵌入式工程师用户指南——AVR MCU.pdf》资料免费下载
    发表于 09-20 11:19 0次下载
    <b class='flag-5'>MPLAB</b> XC8嵌入式工程师用户指南——<b class='flag-5'>AVR</b> <b class='flag-5'>MCU</b>

    MCU编程语言和开发环境介绍

    MCU编程语言 MCU编程语言是用于编写MCU程序的高级
    的头像 发表于 11-01 11:51 709次阅读