RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

編程案例 使用MPLAB?X開發(fā)AVR?MCU 寫C程序框架

eeDesigner ? 來源:物聯(lián)網(wǎng)評(píng)論 ? 作者:物聯(lián)網(wǎng)評(píng)論 ? 2022-05-17 11:24 ? 次閱讀

從新建一個(gè)空白程序開始,從頭寫一個(gè)程序框架,能有助于更好的理解MPLAB? X開發(fā)環(huán)境所提供的各種編程資源。

1. 新建一個(gè)空白程序。其項(xiàng)目屬性如下:

pYYBAGKDFXaACHQcAAEetdT_X18112.jpg

2. 新建main.c文件

在Projects列表頁面中,選中項(xiàng)目名稱,點(diǎn)右鍵,通過彈出菜單,新建main.c文件。

Main.c中默認(rèn)已經(jīng)有了幾行代碼: 包含xc.h頭文件和主函數(shù)main()。

poYBAGKDFXaALKaNAAJVwC0fG0k684.jpg

3. 頭文件結(jié)構(gòu)

在main.c文件編輯區(qū),右鍵,Navigate -> View Includes Hierarchy, 可以查看xc.h,以及下層包含的頭文件。

pYYBAGKDFXeABdrtAAUEuEHZ6r8712.jpg

當(dāng)前main.c文件的頭文件包含結(jié)構(gòu):

poYBAGKDFXeAPs6WAAAgMiiXIYI225.jpg

xc.h 頭文件中,主要是對(duì)cci.h 和avr/io.h進(jìn)行了包含,并且定義了使能/禁止中斷的宏定義。

pYYBAGKDFXeAZg57AABmDhIQQh4708.jpg

Avr/io.h文件,是通用的“索引”型頭文件,對(duì)各個(gè)AVR器件的頭文件進(jìn)行了條件包含。

poYBAGKDFXeAGHgzAACP0EmtNkE394.jpg

Iotn817.h 文件具體定義了ATtiny817芯片的IO口,外設(shè)寄存器信息

pYYBAGKDFXeABxR4AACJmNDACIY335.jpg

4. IO口操作

PORTA.DIR = 0x55;

PORTA.OUTSET = 0x55;

uint8_t pinvalue = PORTA.IN & 0xAA;

PORTA.OUTTGL = 0x55;

數(shù)據(jù)類型uint8_t 是標(biāo)準(zhǔn)頭文件stdint.h中定義,根據(jù)上面的頭文件結(jié)構(gòu),已經(jīng)包含,所以不需要再進(jìn)行包含。

5. 中斷

- 包含中斷頭文件

#include

- 中斷處理函數(shù):

ISR(NVMCTRL_EE_vect){

//添加中斷處理函數(shù)代碼

}

- 中斷使能函數(shù) ei() 或 sei().

- 中斷禁止函數(shù) di() 或 cli()

6. 延遲

- 定義 F_CPU 宏為系統(tǒng)頻率

#define F_CPU 33333333 //3.3MHz

- 包含延遲頭文件

#include

- 使用延遲函數(shù)

_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結(jié)構(gòu)體定義在iotn817.h中

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17123

    瀏覽量

    350979
  • AVR
    AVR
    +關(guān)注

    關(guān)注

    11

    文章

    1123

    瀏覽量

    78643
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136683
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AVR單片機(jī)C語言程序框架(單片機(jī)最簡操作系統(tǒng))及詳解

    本帖最后由 lvhoujun 于 2014-2-28 00:37 編輯 這是本人以ATMEGA128為例編寫的C語言程序框架,做簡單的修改即適合AVR所有單片機(jī)。可以說是一個(gè)單片
    發(fā)表于 02-12 20:27

    MPLAB X IDE 4.05沒有AVR設(shè)備?

    MPLAB X IDE V4.05系列:8位AVR MCU(XMEGA/MEGA/TIN)設(shè)備:??????? 以上來自于百度翻譯 以下為原文 M
    發(fā)表于 11-13 15:36

    MPLAB? PM3器件編程器用戶指南(用于MPLAB X IDE)

    MPLAB? PM3器件編程器用戶指南(用于MPLAB X IDE)
    發(fā)表于 05-25 17:29 ?88次下載

    利用MPLAB? Harmony開發(fā)框架縮短開發(fā)時(shí)間

    MPLAB? Harmony是針對(duì)PIC32單片機(jī)的完善軟件開發(fā)框架,經(jīng)估算,對(duì)于典型項(xiàng)目的開發(fā)時(shí)間至少可節(jié)省20%以上。為加速開發(fā)過程,
    的頭像 發(fā)表于 07-08 00:15 ?3349次閱讀

    MPLAB Harmony開發(fā)框架PIC32單片機(jī)中的作用說明

    MPLAB? Harmony是一款適合Microchip PIC32單片機(jī)的軟件開發(fā)框架,憑借簡單易用、基于GUI的配置器,MPLAB? Harmony支持用戶靈活地
    的頭像 發(fā)表于 07-08 00:17 ?5272次閱讀

    利用MPLAB Harmony軟件框架的互聯(lián)模塊整合程序

    Microchip獲獎(jiǎng)的MPLAB? Harmony是一款針對(duì)PIC32單片機(jī)的軟件框架,可在項(xiàng)目配置中以互聯(lián)模塊的形式整合應(yīng)用程序的所有組件。
    的頭像 發(fā)表于 07-08 00:37 ?3636次閱讀

    MPLAB X集成開發(fā)環(huán)境現(xiàn)已支持AVR單片機(jī)

    生態(tài)系統(tǒng)進(jìn)行開發(fā)工作的設(shè)計(jì)人員現(xiàn)在可以輕松評(píng)估AVR MCU并將其融入到應(yīng)用中。今天,隨著美國微芯科技公司(Microchip Technology Inc)推出MPLAB
    發(fā)表于 10-08 15:43 ?565次閱讀

    美國微芯科技推出MPLAB?X集成開發(fā)環(huán)境(IDE)5.05版,可支持大部分AVR MCU

    今天,隨著美國微芯科技公司(Microchip Technology Inc)推出MPLAB? X集成開發(fā)環(huán)境(IDE)5.05版,目前暫屬測試版,可支持大部分AVR
    發(fā)表于 10-11 10:28 ?2581次閱讀

    如何安裝MPLAB Harmony v3軟件開發(fā)框架

    MPLAB? Harmony v3 是一款軟件開發(fā)框架,包含兼容且可互操作的模塊,例如外設(shè)庫(Peripheral Library,PLIB)、驅(qū)動(dòng)程序、系統(tǒng)服務(wù)、中間件和第三方庫。此
    發(fā)表于 03-30 16:30 ?19次下載
    如何安裝<b class='flag-5'>MPLAB</b> Harmony v3軟件<b class='flag-5'>開發(fā)</b><b class='flag-5'>框架</b>

    AVR的自編程功能

    AVR的自編程功能ATmega128具備引導(dǎo)加載支持的用戶程序編程功能(In-System Programming by On-chipBoot Program),它提供了一個(gè)真正的
    發(fā)表于 11-15 13:06 ?7次下載
    <b class='flag-5'>AVR</b>的自<b class='flag-5'>編程</b>功能

    使用MPLAB? X開發(fā)AVR? MCU – 從頭一個(gè)C程序框架

    從新建一個(gè)空白程序開始,從頭一個(gè)程序框架,能有助于更好的理解MPLAB? X
    發(fā)表于 02-10 10:17 ?4次下載
    使用<b class='flag-5'>MPLAB</b>? <b class='flag-5'>X</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>AVR</b>? <b class='flag-5'>MCU</b> – 從頭<b class='flag-5'>寫</b>一個(gè)<b class='flag-5'>C</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b>

    像使用PIC? MCU一樣在MPLAB? X IDE中開發(fā)AVR? MCU

    比較慢之外,不失為一款比較優(yōu)秀的開發(fā)環(huán)境,其編輯、編譯、調(diào)試和燒錄功能都非常強(qiáng)大。而AVR? MCU的Studio 7開發(fā)環(huán)境,繼承了Visual Studio(VS)的血脈,只是風(fēng)格
    發(fā)表于 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'>開發(fā)</b><b class='flag-5'>AVR</b>? <b class='flag-5'>MCU</b>

    適用于AVR MCUMPLAB XC8 C編譯器用戶指南

    電子發(fā)燒友網(wǎng)站提供《適用于AVR MCUMPLAB XC8 C編譯器用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 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

    電子發(fā)燒友網(wǎng)站提供《MPLAB XC8嵌入式工程師用戶指南——AVR MCU.pdf》資料免費(fèi)下載
    發(fā)表于 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編程語言和開發(fā)環(huán)境介紹

    MCU編程語言 MCU編程語言是用于編寫MCU程序的高級(jí)
    的頭像 發(fā)表于 11-01 11:51 ?660次閱讀
    RM新时代网站-首页