AVR forritun: Difference between revisions
New page: == Tegundir AVR örgjörva == Hér eru bara taldar upp nokkrar gerðir: * '''ATTiny13''' (mjög ódýrir og vinsælir, sömu pinnar og ATTiny45 sem er öflugari) * '''ATTiny45''' (Til í... |
m adding Category:Tutorials tag |
||
(4 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
Forritun AVR örgjörva fer fram í nokkrum skrefum: | |||
# Búa til [[rafrásagerð|rafrásina]] | |||
# Skrifa forrit fyrir örgjörvann | |||
# Þýða forritið yfir í vélamál | |||
# Flytja forritið yfir á örgjörvann | |||
== Skref fyrir skref == | |||
=== Búa til rafrás === | |||
Sjá [[rafrásagerð]]. | |||
=== Skrifa forrit fyrir örgjörvann === | |||
Forrit fyrir örgjörvanna má skrifa í ótal málum. Örgjörvarnir sjálfir skilja í rauninni bara eitt mál, '''vélamál''', en það eru til önnur forrit, svokallaðir ''þýðendur'' sem ''þýða'' úr öðrum málum yfir í vélamál. Það er mjög erfitt að skrifa forrit á vélamáli og því kýs fólk að skrifa forrit frekar á öðru máli. Tvö mál eru algeng í þessu, og verða þau tekin fyrir hér: | |||
* Smalamál (''assembler'') | |||
* C | |||
==== Smalamál ==== | |||
Smalamál, eða ''assembler'' er misjafnt milli örgjörva. Allir AVR örgjörvar skilja þó í grunnatriðum sama málið. Hver skipun í smalamáli samsvarar nákvæmlega einni skipun á vélamáli. | |||
Það eru rúmlega 120 skipanir í smalamáli AVR örgjörva. Lista yfir þessar skipanir má finna í handbókum viðkomandi örgjörva - til dæmis, fyrir [http://www.atmel.com/dyn/resources/prod_documents/2586S.pdf ATTiny45]. Allir örgjörvarnir eru með svokallað ''Product Card'', en ATTiny45 product card má finna [http://www.atmel.com/dyn/products/Product_card.asp?part_id=3618 hér]. | |||
AVR örgjörvar hafa 32 ''almenn minnishólf'', nokkur sértækari minnihólf, og svo almennt vinnsluminni, flash minni og EEPROM minni. | |||
==== C ==== | |||
[[C]] forritunarmálið hefur þann kost umfram smalamál að vera eins allsstaðar. C forrit eru auk þess mun þægilegari í lestri fyrir menn heldur en smalamálsforrit. | |||
Til að forrita í C fyrir AVR örgjörva þarf þó C þýðanda sem skilur vélamál AVR. Einn mjög góður þýðandi er GCC en hann er til fyrir vel flesta örgjörva sem notaðir eru í dag. | |||
=== Þýða forritið yfir í vélamál === | |||
Til að þýða forritið yfir í vélamál þarf þýðanda. Góður og einfaldur þýðandi fyrir smalamál er '''[http://www.avr-asm-tutorial.net/gavrasm/GAVRASMI.html gavrasm]''', en svo eru öflugari þýðendur sem fylgja stærri pökkum eins og [http://www.atmel.com/dyn/Products/tools_card.asp?tool_id=2725 AVR Studio]. | |||
Fyrir C er GCC þýðandinn afskaplega góður. AVR útgáfu af GCC má nálgast [http://winavr.sourceforge.net/ hér fyrir Windows] og á Linux í gegnum pakkakerfið - ''gcc-avr'' í Ubuntu. Einnig þarf libc útgáfu fyrir AVR; það fylgir með WinAVR, en í pakkakerf Ubuntu fæst það sem ''avr-libc''. | |||
Önnur leið er að nota Arduino þróunarumhverfið, en góður C þýðandi fylgir með því. Til að geta notað það þarf þó að setja svokallaðan ''Arduino bootloader'' á örstýringuna fyrst. Nánar um það á [[Arduino]]. | |||
=== Flytja forritið yfir á örgjörvann === | |||
AVR örgjörvar bjóða upp á ISP, eða ''In-System Programming''. Þá eru notaðir fimm pinnar á örstýringunni (MISO, MOSI, SCK, RESET og GND) til að flytja forrit yfir á örstýringuna. Til að þetta sé hægt þarf að tengja þessa fimm pinna við tölvu á þannig hátt að tölvan geti sent boð. Ótal aðferðir eru til þess, en fyrst og fremst eru þrjú forrit sem geta séð um það fyrir mann: | |||
* '''avrdude''' er lítið en tiltölulega flókið forrit sem getur notað mjög margar aðferðir til að skrifa frá tölvunni. | |||
* '''AVR Studio''', sem minnst var á áðan, getur flutt forrit yfir. | |||
* '''Arduino''' umhverfið er líka með innbyggða aðferð til að flytja forrit yfir. | |||
== Tegundir AVR örgjörva == | == Tegundir AVR örgjörva == | ||
Hér eru bara taldar upp nokkrar gerðir: | Hér eru bara taldar upp nokkrar gerðir: | ||
* '''ATTiny13''' (mjög ódýrir og vinsælir, sömu pinnar og ATTiny45 sem er öflugari) | * '''ATTiny13''' (mjög ódýrir og vinsælir, sömu pinnar og ATTiny45 sem er öflugari. Víða á netinu eru leiðbeiningar um notkun ATTiny13, en þá má nota ATTiny45 í staðinn án breytinga.) | ||
* '''ATTiny45''' (Til í Fab Labinu. Dýrari en Tiny13 og með meira minni) | * '''ATTiny45''' (Til í Fab Labinu. Dýrari en Tiny13 og með meira minni) | ||
* '''ATTiny44''' (Til í Fab Labinu. Mun öflugari en Tiny45, meira minni, og með fleiri pinnum. Sömuleiðis dýrari) | * '''ATTiny44''' (Til í Fab Labinu. Mun öflugari en Tiny45, meira minni, og með fleiri pinnum. Sömuleiðis dýrari) | ||
* '''ATMega88''' (Til í Fab Labinu. 32 pinna pakkning, 20MHz, 8kb flash, 8kb SDRAM | * '''ATMega88''' (Til í Fab Labinu. 32 pinna pakkning, 20MHz, 8kb flash, 8kb SDRAM) | ||
* '''ATMega168''' (Notað í Arduino.) | * '''ATMega168''' (Notað í Arduino.) | ||
== Verkfæri == | |||
* [[GCC]] - Vinsæll C þýðandi | |||
* [[gavrasm]] - Smalamálsþýðandi fyrir AVR smalamálskóða | |||
* [[avrdude]] - Forritunarforrit fyrir AVR örgjörva; notað til að koma forritinu inn á kubbinn. | |||
* [[Forritunarkaplar]] | |||
== Bækur == | == Bækur == | ||
* [[Programming and Customizing the AVR Microcontroller]] eftir Dhananjay V. Gadre | * [[Programming and Customizing the AVR Microcontroller]] eftir Dhananjay V. Gadre | ||
* [[AVR: An Introductory Course]] eftir John Morton | * [[AVR: An Introductory Course]] eftir John Morton | ||
[[Category:Tutorials]] |
Latest revision as of 10:02, 30 August 2014
Forritun AVR örgjörva fer fram í nokkrum skrefum:
- Búa til rafrásina
- Skrifa forrit fyrir örgjörvann
- Þýða forritið yfir í vélamál
- Flytja forritið yfir á örgjörvann
Skref fyrir skref
Búa til rafrás
Sjá rafrásagerð.
Skrifa forrit fyrir örgjörvann
Forrit fyrir örgjörvanna má skrifa í ótal málum. Örgjörvarnir sjálfir skilja í rauninni bara eitt mál, vélamál, en það eru til önnur forrit, svokallaðir þýðendur sem þýða úr öðrum málum yfir í vélamál. Það er mjög erfitt að skrifa forrit á vélamáli og því kýs fólk að skrifa forrit frekar á öðru máli. Tvö mál eru algeng í þessu, og verða þau tekin fyrir hér:
- Smalamál (assembler)
- C
Smalamál
Smalamál, eða assembler er misjafnt milli örgjörva. Allir AVR örgjörvar skilja þó í grunnatriðum sama málið. Hver skipun í smalamáli samsvarar nákvæmlega einni skipun á vélamáli.
Það eru rúmlega 120 skipanir í smalamáli AVR örgjörva. Lista yfir þessar skipanir má finna í handbókum viðkomandi örgjörva - til dæmis, fyrir ATTiny45. Allir örgjörvarnir eru með svokallað Product Card, en ATTiny45 product card má finna hér.
AVR örgjörvar hafa 32 almenn minnishólf, nokkur sértækari minnihólf, og svo almennt vinnsluminni, flash minni og EEPROM minni.
C
C forritunarmálið hefur þann kost umfram smalamál að vera eins allsstaðar. C forrit eru auk þess mun þægilegari í lestri fyrir menn heldur en smalamálsforrit.
Til að forrita í C fyrir AVR örgjörva þarf þó C þýðanda sem skilur vélamál AVR. Einn mjög góður þýðandi er GCC en hann er til fyrir vel flesta örgjörva sem notaðir eru í dag.
Þýða forritið yfir í vélamál
Til að þýða forritið yfir í vélamál þarf þýðanda. Góður og einfaldur þýðandi fyrir smalamál er gavrasm, en svo eru öflugari þýðendur sem fylgja stærri pökkum eins og AVR Studio.
Fyrir C er GCC þýðandinn afskaplega góður. AVR útgáfu af GCC má nálgast hér fyrir Windows og á Linux í gegnum pakkakerfið - gcc-avr í Ubuntu. Einnig þarf libc útgáfu fyrir AVR; það fylgir með WinAVR, en í pakkakerf Ubuntu fæst það sem avr-libc.
Önnur leið er að nota Arduino þróunarumhverfið, en góður C þýðandi fylgir með því. Til að geta notað það þarf þó að setja svokallaðan Arduino bootloader á örstýringuna fyrst. Nánar um það á Arduino.
Flytja forritið yfir á örgjörvann
AVR örgjörvar bjóða upp á ISP, eða In-System Programming. Þá eru notaðir fimm pinnar á örstýringunni (MISO, MOSI, SCK, RESET og GND) til að flytja forrit yfir á örstýringuna. Til að þetta sé hægt þarf að tengja þessa fimm pinna við tölvu á þannig hátt að tölvan geti sent boð. Ótal aðferðir eru til þess, en fyrst og fremst eru þrjú forrit sem geta séð um það fyrir mann:
- avrdude er lítið en tiltölulega flókið forrit sem getur notað mjög margar aðferðir til að skrifa frá tölvunni.
- AVR Studio, sem minnst var á áðan, getur flutt forrit yfir.
- Arduino umhverfið er líka með innbyggða aðferð til að flytja forrit yfir.
Tegundir AVR örgjörva
Hér eru bara taldar upp nokkrar gerðir:
- ATTiny13 (mjög ódýrir og vinsælir, sömu pinnar og ATTiny45 sem er öflugari. Víða á netinu eru leiðbeiningar um notkun ATTiny13, en þá má nota ATTiny45 í staðinn án breytinga.)
- ATTiny45 (Til í Fab Labinu. Dýrari en Tiny13 og með meira minni)
- ATTiny44 (Til í Fab Labinu. Mun öflugari en Tiny45, meira minni, og með fleiri pinnum. Sömuleiðis dýrari)
- ATMega88 (Til í Fab Labinu. 32 pinna pakkning, 20MHz, 8kb flash, 8kb SDRAM)
- ATMega168 (Notað í Arduino.)
Verkfæri
- GCC - Vinsæll C þýðandi
- gavrasm - Smalamálsþýðandi fyrir AVR smalamálskóða
- avrdude - Forritunarforrit fyrir AVR örgjörva; notað til að koma forritinu inn á kubbinn.
- Forritunarkaplar
Bækur
- Programming and Customizing the AVR Microcontroller eftir Dhananjay V. Gadre
- AVR: An Introductory Course eftir John Morton