Sisukord:
- Tarvikud
- Samm: Bascomi installimine ja seadistamine
- 2. samm: vaatame kiipi lähemalt
- 3. samm: esimene vooluring
- Samm: kirjutage esimene programm
- Samm: lisage sisendite kasutamiseks nupp
Video: Alustamine Bascom AVR -iga: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
See on sarja algus, mis õpetab teid programmeerima oma AVR -i mikrokontrollerit Bascom AVR -iga.
Miks ma seda teen.
Enamikku selle sarja programminäidetest saate teha Arduino abil.
Mõni lihtsam ja mõni raskem, kuid lõpuks töötavad mõlemad samal kontrolleril.
Kuid programmeerimisviis on igas arenduskeskkonnas erinev. Arduino vajab raamatukogu kõigeks, välja arvatud põhifunktsioonide jaoks. Bascom töötab ka raamatukogudega, kuid ma pean seda harva kaasama. Arduino abil tehakse kõik riistvarapõhised seaded raamatukogude kaudu. teil on väga väike mõju mikrokontrolleri tegelikule võimsusele. Alustades kontrollerite taimeritega. arduinoga vajate uuesti raamatukogu. Kui teil on taimer selle töötamiseni, võib teie seadetega vastuollu minna mõni teine teek. Bascomis on teil tasuta juurdepääs kogu riistvarale, sealhulgas arduino hõivatud alglaadimissektorile. näiteks mõned bascomi teegid küsivad teilt, millist taimerit soovite kasutada. teisest küljest, kuna arduino teeb raamatukogu loomise ise väga lihtsaks, muudab see loomulikult platvormiks, kus uuel riistvaral ja anduritel on tavaliselt raamatukogu otse. see, mis on sageli seotud bascomi paljude uuringutega ja funktsioonidega, mida raamatukogu tavaliselt omaks võtaks, tuleb seejärel programmi koodis hoolikalt sisse lülitada. kuid hea uudis on ka bascomi kogukond väga suur, mistõttu on igale ideele lahendus.
Seega sõltub see osaliselt projektist, mida arenduskeskkonna jaoks kasutatakse, ja osaliselt programmeerija oskusteabest.
aga miks ma seda sarja teen? ühelt poolt säästab see palju raha. Ma ei pea iga projekti jaoks arduino plaati ostma. Näiteks: noname Arduino uno maksab umbes 12 eurot, selle peal olev kontroller maksab vaid 2,5 eurot, minimaalse vooluahelaga, mis on vajalik stabiilseks funktsiooniks, see maksab umbes 4 eurot. teisest küljest on saadaval täielik valik toetatud avr -kiipe. atmegas 8 kuni 256 ja attiny 8 kuni 2313 ja paljud xmega tüübid, mille kohta mul puudub kogemus. Kui soovite lihtsalt kasutada servot ja ultraheliandurit, mis näiteks käe ära tunneb, ja seejärel prügikasti kaane avada, võite kasutada võimalikult väikest kiipi. Seega on teise keele õppimiseks palju põhjuseid.
Nii et alustame
Tarvikud
See on kiibi stabiilseks toimimiseks ja programmeerimiseks vajalike minimaalsete osade loend.
Leivaplaat testimiseks
Atmega 8-16PU (parem osta 2 või 3, kui tapad nad kogemata)
7805 5V pingeregulaator
10Kohm takisti
100nF kilekondensaator
10 µF elektrolüütkondensaator
100µF elektrolüütkondensaator
mõned juhtmed leivalaua jaoks
Windows PC 7/8/8.1/10
ISP programmeerija (ma kasutan siin USBaspi, mille saate Amazonist väikese raha eest osta)
Bascom AVR (siit saate alla laadida demo. Kõik funktsioonid on lukustamata, kuid koodi saate kirjutada ainult kuni 4Kb suurusele, millest piisab paljude koodide jaoks).
Valikulised osad:
LED -id takistitega
vajutage lülitid
projektipõhised osad
Samm: Bascomi installimine ja seadistamine
Laadige fail alla ja installige Bascom AVR. Installige selle kõik osad, sealhulgas viimane märkeruut pärast installimist.
Pärast seda taaskäivitage arvuti, vastasel juhul bascom ei käivitu.
Pärast taaskäivitamist käivitage bascom.
Avage Valikud -> Programmeerija ja valige loendist USBasp, salvestage seaded ja sulgege Bascom.
Kasutage seda programmi usbaspi installimiseks. Pärast seda taaskäivitage arvuti uuesti. Nüüd ühendage USBasp arvutiga ja käivitage seadmehaldur. USBasp peaks ilmuma libusb -seadmetele.
Stat Bascom uuesti ja looge uus fail. Salvestage see oma arvutisse ja vajutage klaviatuuri nuppu F7.
Kompilaator käivitab ja kompileerib tühja programmi. Nüüd saate testida programmeerija funktsionaalsust.
Programmeerija akna käivitamiseks vajutage klaviatuuri nuppu F4. Nüüd minge interaktsiooni alustamiseks kiibile -> identifitseerige. USB -seadme LED -id peaksid nüüd lühidalt vilkuma. Peaksite nägema sellist teadet nagu kiibi ID FFFFFF ei suutnud seadet lugeda. See on hea märk, et programmeerija töötab, kuid ei leidnud kiipi.
Nüüd saame hakata ehitama esimest vooluringi.
2. samm: vaatame kiipi lähemalt
Kui vaatate kiibi pistikut, tundub, et kiibil pole arduino plaadiga sarnasust. Muidugi, me kasutame Atmega8 ja Arduino uno on Atmega328. Kuid Pinout on peaaegu sama, kuid Arduino Uno plaadi kiibil on rohkem funktsioone. Siin on tihvtide nimed. VCC ja GND on toiteplokid.
AREF ja AVCC on analoog -digitaalmuunduri võrdluspinge ja toiteallika tihvtid.
PB 0-7 PC 0-6 PD 0-7 on mitmeotstarbelised üldotstarbelised sisendväljundpoldid.
nööpnõel on see, mida nimi ütleb. Kiibi taaskäivitamiseks. Lähtestamisnime kohal olev rida tähendab eitust. See tähendab, et kiibi lähtestamiseks peate selle alla tõmbama 0 V -ni.
Järgmiste tihvtide jaoks eraldage peagi saabuvad juhendid.
RXD TXD on riistvaralised kontaktid UART jadaühenduseks.
INT0 INT1 on riistvara katkestamise tihvtid
XCK /T0 UART Kellaallikas /Taimer /Loendur0 Kella allikas
XTAL /TOSC tihvtid on välise kristalli jaoks kuni 16MHz (erinevad mudelid kuni 20MHz) /Kristallpoldid sisemise RTC jaoks
T1 on sarnane T0 -ga
AIN -tihvtid on mõeldud analoogvõrdlejale
ICP1 on sarnane T0/T1 -ga
OC1A on pwm taimer1 kanali A riistvara väljundtipp
SSI / OC2 kiibi valimise tihvt SPI / sarnase OC1B jaoks, kuid kanal B
MOSI MISO SCK / OC2 on riistvara SPI -tihvtid ja programmeerimis- / PWM -väljundtaimeri tihvtid2
ADC0 kuni ADC5 on analoogsisendid
SDA SCL on riistvara I2C tihvtid
Tavaline kiip võib töötada vahemikus 4, 5 V kuni 5, 5 V, Atmega 8L võib töötada palju madalama pingega.
Näete, et isegi see kiip suudab teha rohkem, kui Arduino Uno näib olevat võimatu. Kuid Arduino saab seda ka teha, peate selle ainult programmeerima.
3. samm: esimene vooluring
Nüüd on aeg luua oma esimene ring.
Mis on tavaliselt esimene ahel? Õige! Vilgutame LED -i.
LED on ühendatud PB0 -ga. Kiibi kõrval oleval takistil on 10k oomi.
LED -i kõrval oleval takistil on 470 oomi.
Nüüd saate USBaspi Atmegaga ühendada, nagu pildil näidatud.
Kuid enne toite sisselülitamist kirjutage programm.
Samm: kirjutage esimene programm
Looge Bascomis uus fail ja tippige järgmine tekst.
$ regfile "m8def.dat"
$ crystal = 1000000 konfiguratsiooni portb.0 = väljund porti.0b = 1 oota 1 portb.0 = 0 oota 1 silmus
seejärel kompileerige see, vajutades klaviatuuril klahvi F7.
Nüüd saame kiibi programmeerida, vajutades klahvi F4. Ilmub programmeerija aken. Nüüd on aeg leivaplaadilt toide sisse lülitada. Peaksite rakendama midagi vahemikus 6 kuni 12 volti.
Nüüd minge kiibile -> autoprogramm. Kui programmeerija aken sulgub automaatselt, oli programmeerimine edukas.
LED peaks vilkuma ühe sekundi sagedusel.
Nüüd vaadake programmi lähemalt, et lahti saada süntaks.
$ regfile "m8def.dat"
$ kristall = 1000000
$ regfile abil ütleme kompilaatorile kasutatud kiibi tüübi, Arduino kiibi nimi oleks "m328pdef.dat"
$ kristalliga ütleme talle protsessori kiiruseks umbes 1MHz.
config portb.0 = Väljund
see tähendab, et PB0 peaks toimima väljundina.
Muide, lühend PB0 tähendab pordi B bitti 0. Kiip on jagatud mitmeks pordiks. Igale sadamale antakse selge identifitseerimiseks täht. ja iga porti natuke vahemikus 0 kuni 7. Näiteks võin kirjutada pordi väljundregistrisse täieliku baidi, mis väljastatakse üksikute pordi tihvtide kaudu.
teha
silmus
Seda tähendab Arduino keeles tühisilmuse avaldus. Kõik selle kahe käsu vahel kordub igavesti. (välja arvatud mõned erandid, kuid sellest hiljem)
Portb.0 = 1
oota 1 portb.0 = 0 oota 1
Siin idandame ledi vilkumist.
Portb.0 = 1 käsib kiibil lülitada väljund PB0 5V -le
käsk ootab 1 laseb kiibil ühe sekundi oodata. Kui soovite LED -i kiiremini vahetada, peate ootekäsu asendama ootustega, mille saate nüüd sisestada millisekundites, nt. ootab 500. (waitus tähendab ootamist nanosekundites)
Portb.0 = 0 käsib kiibil lülitada väljund PB0 0V -le.
Samm: lisage sisendite kasutamiseks nupp
Nüüd lisame nupule LED -i süttimiseks nupu vajutamisel.
Sisestage nupp, nagu pildil näidatud.
sisestage nüüd järgnev programm.
$ regfile "m8def.dat"
$ crystal = 1000000 konfiguratsiooni portb.0 = väljundkonfiguratsiooni port.7 = sisendport.7 = 1 tehke, kui pind.7 = 0, seejärel portb.0 = 1 muu portb.0 = 0 silmus
Kui laadite selle programmi kiibile, süttib LED ainult nupu vajutamisel. Aga miks?
programm käivitub samamoodi nagu eelmine
config portd.7 = sisend. See tähendab, et nupuga ühendatud tihvt PD7 toimib sisendina.
Portd.7 = 1 ei lülita tihvti kõrgele, kuid aktiveerib Atmega sisemise tõmbetakistuse.
Kui statemend näeb arduinoga harjunud välja, tundub see natuke kummaline.
kui kasutate lauset if, peate kasutama lauset "siis". Selles näidises kasutatakse lauset if üksikute käsutoimingute jaoks. Kui soovite kasutada rohkem käske, peate selle nii kirjutama.
kui pind.7 = 0 siis
portb.0 = 1 mõni kood mõni kood mõni kood teine portb.0 = 0 lõpp if
if -lause kasutamiseks peate selle lõpus kasutama lauset "end if".
mis on ikkagi oluline. Võib -olla olete seda juba näinud. sisendeid ei küsita portx.x, vaid pinx.x abil. Seda saate hõlpsalt meeles pidada. Väljunditel on sõnas "o" (port) ja sisenditel "i" (tihvt).
Nüüd on teie kord natuke ringi mängida.
Minu järgmine juhendatav on varsti saadaval (tavalised avaldused, nagu näiteks, valitud, suurtäht, ja muutujad.)
Kui teile meeldib minu juhendatav ja soovite rohkem, rääkige sellest kommentaarides.
Soovitan:
Traadita temperatuuri- ja vibratsioonisensorite kasutamise alustamine: 7 sammu
Traadita temperatuuri- ja vibratsioonisensorite kasutamisega alustamine: Mõnikord põhjustab vibratsioon paljudes rakendustes tõsiseid probleeme. Alates masina võllidest ja laagritest kuni kõvaketta jõudluseni põhjustab vibratsioon masina kahjustusi, varajast väljavahetamist, madalat jõudlust ja mõjutab oluliselt täpsust. Jälgimine
STM32f767zi Cube IDE alustamine ja kohandatud visandi üleslaadimine: 3 sammu
STM32f767zi Cube IDE -ga alustamine ja teie üleslaadimise kohandatud visand: OSTA (veebilehe ostmiseks/külastamiseks klõpsake testi) STM32F767ZISUPPORTED TARKVARA · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORKOW kasutatakse STM -i mikrokontrollerite programmeerimiseks
Raspberry Pi seadistamine ja selle kasutamise alustamine: 4 sammu
Kuidas seadistada Raspberry Pi ja hakata seda kasutama: Tuleviku lugejate jaoks oleme aastal 2020. Aasta, kui teil veab, et olete terve ja ei ole Covid-19 nakatunud, ootamatult , sai palju rohkem vaba aega kui oskasite arvata. Niisiis, kuidas ma saan end mitte liiga rumalalt hõivata? Oh jah
Flipboardiga alustamine: 9 sammu
Flipboardiga alustamine: selle lühikese õpetuse eesmärk on aidata teil Flipboardi mobiilirakendusega alustada. See on lihtsalt sissejuhatav, kuna Flipboardil on palju kohandatavaid funktsioone. Kui olete selle õpetuse lõpetanud, on teil Flipboardi põhiteadmised
WeMos ESP8266 alustamine: 6 sammu
WeMos ESP8266 alustamine