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

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

3天内不再提示

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

eeDesign 来源:物联网评论 作者:物联网评论 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

    文章

    16013

    浏览量

    343572
  • AVR
    AVR
    +关注

    关注

    11

    文章

    1122

    浏览量

    78043
  • C语言
    +关注

    关注

    180

    文章

    7528

    浏览量

    128457
收藏 人收藏

    评论

    相关推荐

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

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

    MPLAB X 5.0 AVR如何实现?

    /SS,但没有复位引脚的指示;也没有GND和VTG线路(!)?)我假设这是一个预期的AVR引脚(和猜测6是RST引脚)。我建立了一个主循环包含一个(1);循环,并试图运行编程在ISP和Debug
    发表于 08-29 10:53

    Microchip的MPLAB XIDE现在具有AVR的Beta支持

    。尚未确定何时支持基于Arm®的SAM部件;但是,安装以前版本的MPLAB X会显示正在安装Arm®GNU和AVR GNU编译器,这表明未来的支持正在进行中。另一项发展是Microchip最新发布的低成本
    发表于 10-30 14:32

    MPLAB X IDE 4.05没有AVR设备?

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

    AVR的自编程功能有什么用处

    AVR的自编程功能ATmega128具备引导加载支持的用户程序编程功能(In-System Programming by On-chipBoot Program),它提供了一个真正的
    发表于 07-13 07:53

    MCU程序框架的相关资料推荐

    参加工作3年以来辗转于不同MCU编写的过程中,每使用一款新的MCU总要重新开发,但是不同MCU的差异性导致程序编写进度缓慢,
    发表于 11-03 08:29

    MCU快速编程框架

    很多朋友在单片机编程时都会遇到单片机编程框架问题,以下是一个MCU快速编程框架示例代码。在这个基
    发表于 10-29 15:19 4459次阅读

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

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

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

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

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

    关键词:MPLAB , AVR , 单片机 对AVR架构不熟悉的开发人员可以利用跨多个操作系统的统一开发平台轻松开始设计工作 通常使用Mic
    发表于 10-08 15:43 450次阅读

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

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

    如何安装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>

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

    从新建一个空白程序开始,从头写一个程序框架,能有助于更好的理解MPLAB® X开发环境所提供的各种编程
    发表于 02-10 10:17 4次下载
    使用<b class='flag-5'>MPLAB</b>® X<b class='flag-5'>开发</b><b class='flag-5'>AVR</b>® <b class='flag-5'>MCU</b> – 从头写一个C<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>® X 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 C编译器用户指南