chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

使用Arduino和AVR-gcc進(jìn)行AVR編程

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-08 16:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:什么是AVR,為什么要使用IC是?

AVR是一個(gè)微控制器,可用于使用軟件控制電流。它可用于切換設(shè)備,使用脈沖寬度調(diào)制控制它們,從傳感器讀取值以及處理數(shù)據(jù)以與其環(huán)境交互。

此外,AVR芯片非常小。它是控制Arduino的芯片。

例如,ATMega328的尺寸不到1平方厘米,但包含23個(gè)IO引腳。它也僅需要1.8-5.5V即可運(yùn)行。

這可以幫助您縮小Arduino項(xiàng)目,以創(chuàng)建可穿戴技術(shù)或更小巧,更美觀的機(jī)器人。

步驟2:編程器硬件

使用Arduino和AVR-gcc進(jìn)行AVR編程

AVR芯片可以使用多種硬件進(jìn)行編程,從簡(jiǎn)單的串行電纜到專用的AVR編程器和開(kāi)發(fā)站。

雖然每種方法都有其自身的優(yōu)勢(shì)缺點(diǎn)和缺點(diǎn),我將重點(diǎn)介紹使用Arduino。

Arduino是一個(gè)大型的微控制器原型開(kāi)發(fā)平臺(tái)。 Arduino Uno的IO引腳已斷開(kāi),并連接了插頭。它完全包含運(yùn)行板載微控制器所需的所有部件,例如晶體和電源調(diào)節(jié)。它還具有自己的IDE和與C十分相似的編程語(yǔ)言。使用該程序,可以將新軟件刷新到AVR芯片上。

IDE包含一個(gè)名為ArduinoISP的程序,該程序應(yīng)該做到這一點(diǎn)。不幸的是,它非常挑剔,很少與Arduino的某些型號(hào)一起使用。在該位置可以找到Adafruit制作的程序的變體,其工作更加一致。

如果您使用的是Arduino Uno,那么我建議使用后者,因?yàn)槲覍?duì)官方程序有很多麻煩。/p》

第3步:編程

可以用各種不同的方式對(duì)AVR芯片進(jìn)行編程。

安裝Arduino Bootloader使用IDE和語(yǔ)言

使用程序集。盡管這可能很難讀取和寫入,但它可能非常有效。

使用Atmel的官方IDE Atmel Studio,但僅適用于Windows,不適用于Linux或Mac

在您喜歡的C或文本編輯器中創(chuàng)建程序,然后使用avr-gcc進(jìn)行編譯和刷新和avrdude。

這在可讀性和效率之間以及所有平臺(tái)上都實(shí)現(xiàn)了很好的折衷。

我將詳細(xì)介紹第四個(gè)也是最后一個(gè)選項(xiàng)。

許多編輯器都將為此工作,因?yàn)槟恍杈帉慍程序即可:Eclipse,notepad ++,vi以及更多其他程序

請(qǐng)下載附件中的led_flash.c文件和makefile。

我為此項(xiàng)目使用了ATTiny 85。

我將首先解釋代碼。

第一行代碼是:

#include

這會(huì)將與您的AVR芯片有關(guān)的常數(shù)導(dǎo)入程序。編譯程序時(shí),必須指定要使用的AVR芯片的類型。

下一次導(dǎo)入:

#include

這包括

下一步是一些定義:

#define shift_light_up(port) port 《《 1 #define shift_light_down(port) port 》》 1

定義宏以在鏈上上下移動(dòng)光。

#define register_set_output(register) register = 0b11111111

#define enable_first_light(port) port = 0b00000001

定義宏以設(shè)置要輸出的整個(gè)寄存器并啟用第一盞燈。

這些定義實(shí)質(zhì)上是創(chuàng)建宏,因此我們不需要稍后再使用代碼。可以使代碼比以前更具可讀性。

將寄存器設(shè)置為二進(jìn)制全1會(huì)導(dǎo)致所有引腳成為輸出而不是輸入。

然后,端口設(shè)置引腳的值是高還是低。

端口《《1將使能的引腳移位1位。端口》》 1沿相反方向移動(dòng)它。

boolean is_last_pin(uint8_t *port){

if((*port & 0b00010000) 》 0)

return true;

else return false;

}

boolean is_first_pin(uint8_t *port){

if((*port & 0b00000001) 》 0)

return true;

else return true;

}

兩個(gè)功能可以輕松測(cè)試當(dāng)前燈是否使用第一個(gè)或最后一個(gè)引腳。

int main (void){

register_set_output(DDRB); // Set it all to output

enable_first_light(PORTB); // Set the first light to on

boolean up = true;

while(true){

_delay_ms(100); // Dependent on the chip‘s clock speed, speed must be set

if(is_first_pin(&PORTB) == true) //check if it is at the start

up = true;

else if(is_last_pin(&PORTB) == true) // check if it is at the end

up = false;

if(up == true)

PORTB = shift_light_up(PORTB); // Shift our light up

else

PORTB = shift_light_down(PORTB); // Shift our light down

}

}

這是我們函數(shù)的主要部分。芯片啟動(dòng)時(shí)會(huì)調(diào)用int main(void)函數(shù)。我們首先使寄存器B為所有輸出。然后,我們打開(kāi)第一個(gè)指示燈,并聲明一個(gè)布爾值,該布爾值記住要走的方向。每個(gè)循環(huán)首先延遲0.2秒,然后檢查方向是否需要更改。最終,它會(huì)沿給定的方向移動(dòng)光并重復(fù)循環(huán)。

就是這樣!

上一步:makefile自動(dòng)執(zhí)行編譯和刷新過(guò)程

第4步: Makefile

Make用于自動(dòng)生成程序。您可以設(shè)置一個(gè)makefile以使整個(gè)過(guò)程成為一個(gè)命令,即“ make program”。

使用make create宏可以輕松運(yùn)行與構(gòu)建項(xiàng)目有關(guān)的命令集合。

第一個(gè)命令是默認(rèn)調(diào)用的命令,因此首先擁有一個(gè)幫助宏可能會(huì)很有用。

help:

@echo ’Help details:‘

@echo ’hex: compile hex file‘

@echo ’flash: install hex file‘

@echo ’program: compile hex and install‘

這總是提醒您如何設(shè)置程序,而不需要

此makefile的下一部分是十六進(jìn)制。

hex:

avr-gcc -Os -DF_CPU=8000000 -mmcu=attiny85 -c led_flash.c

avr-gcc -DF_CPU=8000000 -mmcu=attiny85 -o led_flash.elf led_flash.o

avr-objcopy -O ihex led_flash.elf led_flash.hex

rm led_flash.o

rm led_flash.elf

這完成了編譯芯片的整個(gè)過(guò)程。為AVR編譯程序的過(guò)程有點(diǎn)困難且漫長(zhǎng),但是這部分使您無(wú)需記住過(guò)程的每個(gè)部分。該編譯過(guò)程中要記住的最重要的部分是--mmcu = attiny85和led_flash。這些將需要根據(jù)您自己的項(xiàng)目進(jìn)行更改。如果您使用不同的AVR芯片,只需將attiny85更改為您使用的類型。如果您的文件未命名為led_flash.c,則使用文件名更改led_flash的所有實(shí)例。

最后,DF_CPU = 8000000定義了微控制器中的時(shí)鐘速度。除非將其設(shè)置為正確的值,否則許多項(xiàng)目(例如延遲)將無(wú)法正常工作。如果您使用其他芯片,或以任何方式修改速度,請(qǐng)查閱AVR芯片的數(shù)據(jù)表。

flash:

avrdude -c arduino -p attiny85 -P /dev/tty.usbmodemfd121 -U flash:w:led_flash.hex

這會(huì)將程序安裝到AVR芯片上。請(qǐng)注意:

-c arduino -p attiny85 -P/dev/tty.usbmodemfd121

這將設(shè)置pro的類型

步驟5:刷新和編譯

現(xiàn)在您已經(jīng)有了makefile設(shè)置以及編程硬件設(shè)置,只需鍵入

make program

,這將編譯代碼并在AVR上安裝該程序。

恭喜!

步驟6:最終電路

最終電路使用許多電阻器和LED,但僅一步之遙,即可將芯片放入實(shí)際電路中。

只需將5V +連接到VCC引腳,將地連接到GND,然后將IO引腳連接到一排LED

將電路焊接到原型板并構(gòu)建一個(gè)一個(gè)有趣的容器,向您的朋友和同事展示您的新技能。

責(zé)任編輯:wv

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

    關(guān)注

    0

    文章

    4

    瀏覽量

    8738
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6509

    瀏覽量

    194949
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ?AVR-IoT蜂窩迷你開(kāi)發(fā)板技術(shù)解析與應(yīng)用指南

    Microchip Technology AVR-IoT蜂窩迷你開(kāi)發(fā)板 (EV70N78A) 是一個(gè)完整的平臺(tái),可用于評(píng)估和開(kāi)發(fā)物聯(lián)網(wǎng)解決方案。它采用AVR128DB48 avr?微控制器
    的頭像 發(fā)表于 10-14 14:57 ?186次閱讀
    ?<b class='flag-5'>AVR</b>-IoT蜂窩迷你開(kāi)發(fā)板技術(shù)解析與應(yīng)用指南

    探索AVR64DD32 Curiosity Nano:一款強(qiáng)大的AVR DD系列評(píng)估平臺(tái)

    AVR64DD32板可輕松訪問(wèn)AVR64DD32的特性,由MPLAB? X IDE和Microchip Studio提供支持,從而將該器件集成到定制設(shè)計(jì)中。Curiosity Nano評(píng)估板包括板載調(diào)試器,無(wú)需外部工具即可對(duì)AVR
    的頭像 發(fā)表于 10-13 15:45 ?147次閱讀
    探索<b class='flag-5'>AVR</b>64DD32 Curiosity Nano:一款強(qiáng)大的<b class='flag-5'>AVR</b> DD系列評(píng)估平臺(tái)

    Microchip AVR32DD/AVR16DD微控制器:高性能與低功耗的完美結(jié)合

    Microchip Technology AVR32DD和AVR16DD 8位微控制器基于AVR? CPU(帶硬件乘法器,在1.8V至5.5V整個(gè)電源電壓范圍內(nèi)運(yùn)行時(shí)鐘速度高達(dá)24MHz
    的頭像 發(fā)表于 10-13 13:44 ?168次閱讀

    Microchip AVR64DD14/20 微控制器:高集成度與低功耗的完美結(jié)合

    Microchip Technology AVR64DD14/20微控制器是avr? DD系列微控制器的一部分,使用avr? CPU和硬件乘法器。 Microchip Technology此款器件
    的頭像 發(fā)表于 10-13 11:38 ?170次閱讀
    Microchip <b class='flag-5'>AVR</b>64DD14/20 微控制器:高集成度與低功耗的完美結(jié)合

    AVR? DD微控制器系列技術(shù)解析:架構(gòu)與功能特性

    Microchip Technology AVR16/32DD28/32 avr? DD微控制器采用avr CPU,硬件乘數(shù)運(yùn)行時(shí)鐘速度高達(dá)24MHz,具有高達(dá)32KB的閃存,以及高達(dá)4KB的SRAM和256字節(jié)的EEPROM。
    的頭像 發(fā)表于 10-11 15:54 ?209次閱讀
    <b class='flag-5'>AVR</b>? DD微控制器系列技術(shù)解析:架構(gòu)與功能特性

    AVR64EA48 Curiosity Nano評(píng)估套件技術(shù)解析與應(yīng)用指南

    MPLAB? XIDE和Microchip Studio提供支持,可輕松訪問(wèn)AVR64EA48的特性,從而將該器件集成到定制設(shè)計(jì)中。Curiosity Nano系列評(píng)估板包括一個(gè)板載調(diào)試器。無(wú)需外部工具即可對(duì)AVR64EA48進(jìn)行
    的頭像 發(fā)表于 10-11 14:48 ?149次閱讀
    <b class='flag-5'>AVR</b>64EA48 Curiosity Nano評(píng)估套件技術(shù)解析與應(yīng)用指南

    Microchip AVR32EA 系列微控制器:高性能與低功耗的完美融合

    Microchip Technology AVR32EA28/32/48微控制器是 AVR? EA系列的一部分,采用帶硬件乘法器的AVR CPU,時(shí)鐘運(yùn)行速度達(dá)20MHz。AVR EA
    的頭像 發(fā)表于 10-10 15:16 ?192次閱讀
    Microchip <b class='flag-5'>AVR</b>32EA 系列微控制器:高性能與低功耗的完美融合

    AVR64EA微控制器:高性能與靈活性的完美結(jié)合

    Microchip Technology AVR64EA28/32/48 AVR? EA微控制器為AVR CPU配備了以高達(dá)20MHz的時(shí)鐘速度運(yùn)行的硬件乘法器。AVR EA系列具有靈
    的頭像 發(fā)表于 10-10 11:32 ?183次閱讀
    <b class='flag-5'>AVR</b>64EA微控制器:高性能與靈活性的完美結(jié)合

    AVR16EB32 Curiosity Nano評(píng)估套件技術(shù)解析與應(yīng)用指南

    Microchip Technology AVR16EB32 Curiosity Nano評(píng)估套件(EV73J36A)是一款硬件平臺(tái),用于評(píng)估AVR ? EB系列微控制器。 該板安裝有AVR16EB32微控制器(MCU),并包含
    的頭像 發(fā)表于 10-10 09:39 ?239次閱讀
    <b class='flag-5'>AVR</b>16EB32 Curiosity Nano評(píng)估套件技術(shù)解析與應(yīng)用指南

    AVR64DU32 Curiosity Nano評(píng)估套件技術(shù)解析與應(yīng)用指南

    Microchip Technology AVR64DU32 Curiosity Nano評(píng)估套件是一款用于評(píng)估AVR^?^ DU系列微控制器的硬件平臺(tái)。此評(píng)估套件配有完全集成的編程器和調(diào)試器,可
    的頭像 發(fā)表于 10-09 15:21 ?195次閱讀
    <b class='flag-5'>AVR</b>64DU32 Curiosity Nano評(píng)估套件技術(shù)解析與應(yīng)用指南

    Microchip Technology AVR? DU微控制器數(shù)據(jù)手冊(cè)

    Microchip Technology AVR^?^ DU微控制器采用AVR^?^ CPU,其硬件乘法器運(yùn)行時(shí)鐘速度高達(dá)24MHz。這些MCU具有16KB/32KB/64KB閃存、2KB/4KB
    的頭像 發(fā)表于 10-09 15:15 ?172次閱讀
    Microchip Technology <b class='flag-5'>AVR</b>? DU微控制器數(shù)據(jù)手冊(cè)

    AVR32SD20/28/32微控制器技術(shù)解析與應(yīng)用指南

    模擬功能和高級(jí)數(shù)字外設(shè)。AVR SD提供雙核鎖步CPU、閃存上的單錯(cuò)誤校正和雙錯(cuò)誤檢測(cè) (SECDED) ECC、EEPROM/SRAM、用于功能安全的錯(cuò)誤控制器以及用于安全的編程和調(diào)試接口禁用
    的頭像 發(fā)表于 09-29 09:58 ?270次閱讀
    <b class='flag-5'>AVR</b>32SD20/28/32微控制器技術(shù)解析與應(yīng)用指南

    《ESP32S3 Arduino開(kāi)發(fā)指南》第二章 Arduino基礎(chǔ)知識(shí)

    IDE開(kāi)發(fā),這對(duì)于開(kāi)發(fā)板來(lái)說(shuō)極易掌握,同時(shí)又有足夠的靈活性。Arduino語(yǔ)言是基于Wiring語(yǔ)言開(kāi)發(fā)的,是對(duì)AVR-GCC庫(kù)的二次封裝,并不需要太多的單片機(jī)基礎(chǔ)和編程基礎(chǔ),只要簡(jiǎn)單的學(xué)習(xí)后就可以快速
    發(fā)表于 05-13 09:28

    AVR單片機(jī)的優(yōu)勢(shì)與不足

    在當(dāng)今電子科技領(lǐng)域,AVR 單片機(jī)憑借諸多突出特性,在各類電子設(shè)備開(kāi)發(fā)中占據(jù)了一席之地,展現(xiàn)出獨(dú)特的魅力與價(jià)值。 其一,AVR 單片機(jī)最為亮眼的當(dāng)屬其卓越的性能表現(xiàn)。AVR 單片機(jī)的指令以字作為
    的頭像 發(fā)表于 02-04 17:41 ?974次閱讀

    AN4875-AVR DD系列單片機(jī)入門

    電子發(fā)燒友網(wǎng)站提供《AN4875-AVR DD系列單片機(jī)入門.pdf》資料免費(fèi)下載
    發(fā)表于 01-21 14:37 ?0次下載
    AN4875-<b class='flag-5'>AVR</b> DD系列單片機(jī)入門