Kazalo:

Začetek uporabe Bascom AVR: 5 korakov
Začetek uporabe Bascom AVR: 5 korakov

Video: Začetek uporabe Bascom AVR: 5 korakov

Video: Začetek uporabe Bascom AVR: 5 korakov
Video: Votre Gestion de l'Univers - Livre Audio - Auteur: Firas Al Moneer - Traductrice: Siham Lafri. 2024, Julij
Anonim
Začetek z Bascom AVR
Začetek z Bascom AVR

To je začetek serije, ki vas bo naučila programirati mikrokontroler AVR z Bascom AVR.

Zakaj to počnem.

Večino vzorcev programov v tej seriji lahko naredite z Arduinom.

Nekatere lažje in nekatere težje, a na koncu bosta oba delovala na istem krmilniku.

Toda način programiranja je v vsakem razvojnem okolju drugačen. Arduino potrebuje knjižnico za vse, razen za osnovne funkcije. Bascom deluje tudi s knjižnicami, le redko jih moram vključiti. Z Arduinom se vse nastavitve, povezane s strojno opremo, izvedejo prek knjižnic. imate zelo majhen vpliv na dejansko moč mikrokrmilnika. Začenši s časovniki, ki jih ima krmilnik. z arduinom znova potrebujete knjižnico. če imate časovnik, dokler ne deluje, je morda druga knjižnica v nasprotju z vašimi nastavitvami. V bascomu imate prost dostop do celotne strojne opreme, vključno z zagonskim sektorjem, ki ga zaseda arduino. na primer, nekatere knjižnice v bascomu vas vprašajo, kateri časovnik želite uporabiti. Po drugi strani pa ker arduino zelo preprosto ustvari knjižnico, je seveda platforma, kjer ima nova strojna oprema in senzorji običajno neposredno knjižnico. kar je pogosto povezano z veliko raziskavami na bascomu in funkcijami, ki bi jih knjižnica običajno prevzela, je treba nato skrbno vključiti v programsko kodo. dobra novica pa je, da je tudi skupnost bascom zelo velika, zato obstaja rešitev za vsako idejo.

Tako je deloma odvisno od projekta, kaj se uporablja za razvojno okolje, deloma pa od znanja programerja.

ampak zakaj delam to serijo po eni strani prihrani veliko denarja. Za vsak projekt mi ni treba kupiti arduino plošče. Na primer: A noname Arduino uno stane približno 12 €, krmilnik, ki je na njem, pa stane le 2,5 € z minimalnim vezjem, potrebnim za stabilno delovanje, stane okoli 4 €. po drugi strani pa imate na voljo celoten izbor podprtih čipov avr. atmegas 8 do 256 in attiny 8 do 2313 ter številne vrste xmega o katerih nimam izkušenj. Če želite uporabiti na primer servo in ultrazvočni senzor, ki lahko na primer prepozna roko in nato odpre pokrov koša za smeti, lahko uporabite najmanjši možni čip. Zato obstaja veliko razlogov za učenje drugega jezika.

Pa začnimo

Zaloge

To je seznam minimalno potrebnih delov za stabilno delovanje čipa in programiranje.

Plošča za testiranje

Atmega 8-16PU (bolje je, če kupite 2 ali 3, če jih pomotoma ubijete)

7805 5V regulator napetosti

10Kohm upor

100nF filmski kondenzator

10 μF elektrolitski kondenzator

100 µF elektrolitski kondenzator

nekaj žic za mizo

Windows PC 7/8/8.1/10

ISP Programmer (tukaj bom uporabil USBasp, ki ga lahko kupite na Amazonu za majhen denar)

Bascom AVR (tukaj lahko prenesete DEMO. Vse funkcije so odklenjene, lahko pa napišete kodo le do velikosti 4Kb, kar zadostuje za veliko kode).

Neobvezni deli:

LED z upori

potisna stikala

deli, značilni za projekt

1. korak: Namestitev Bascoma in nastavitev

Namestitev Bascoma in nastavitev
Namestitev Bascoma in nastavitev
Namestitev Bascoma in nastavitev
Namestitev Bascoma in nastavitev
Namestitev Bascoma in nastavitev
Namestitev Bascoma in nastavitev

Prenesite datoteko in namestite Bascom AVR. Namestite vse njegove dele, vključno z zadnjim potrditvenim poljem po namestitvi.

Po tem znova zaženite računalnik, sicer se bascom ne zažene.

Po ponovnem zagonu zaženite bascom.

Pojdite na Možnosti -> Programer in na seznamu izberite USBasp, shranite nastavitve in zaprite Bascom.

S tem programom namestite usbasp. Po tem znova zaženite računalnik. Zdaj povežite USBasp z računalnikom in zaženite upravitelja naprav. USBasp se mora pojaviti na napravah libusb.

Stat Bascom znova in ustvarite novo datoteko. Shranite ga v računalnik in pritisnite tipko F7 na tipkovnici.

Prevajalnik se zažene in prevede prazen program. Zdaj lahko preizkusite funkcionalnost programerja.

Pritisnite tipko F4 na tipkovnici, da odprete okno programerja. Zdaj pojdite na čip -> identificirajte, da začnete interakcijo. LED diode USBasp naj bi zdaj kratko utripale. Morali bi dobiti sporočilo, na primer čip ID FFFFFF ne more prebrati naprave. To je dober znak, da programer deluje, vendar ni našel čipa.

Zdaj lahko začnemo graditi prvo vezje.

2. korak: Podrobneje si oglejte čip

Podrobneje si oglejmo čip
Podrobneje si oglejmo čip

Če pogledate pinout čipa, se zdi, da čip nima podobnosti s ploščo arduino. Seveda uporabljamo Atmega8, na Arduinu uno pa Atmega328. Toda Pinout je skoraj enak, vendar ima čip plošče Arduino Uno več funkcij. Tu so imena zatičev. VCC in GND sta nožici za napajanje.

AREF in AVCC sta nožici za referenčno napetost in napajanje za analogno -digitalni pretvornik.

PB 0-7 PC 0-6 PD 0-7 so vhodni izhodni zatiči za splošno uporabo z več zasedenostjo.

pin za ponastavitev pove že ime. Za ponovni zagon čipa. Vrstica nad imenom ponastavitve pomeni negacijo. To pomeni, da morate čip ponastaviti na 0V.

Za naslednje zatiče kmalu prihajajo ločena navodila.

RXD TXD so strojni zatiči za serijsko komunikacijo UART.

INT0 INT1 so strojni prekinitveni zatiči

XCK /T0 UART vir ure /časovnik /števec0 Vir ure

Zatiči XTAL /TOSC so za zunanji kristal do 16 MHz (različni modeli do 20 MHz) /kristalni zatiči za notranji RTC

T1 je podoben T0

Zatiči AIN so za analogni primerjalnik

ICP1 je podoben T0/T1

OC1A je strojni izhodni pin za pwm timer1 kanal A

Izbirni čip SS / OC2 čipa za SPI / kot OC1B, vendar kanal B

MOSI MISO SCK / OC2 so strojni SPI zatiči in zatiči za programiranje / izhodni časovnik PWM2

ADC0 do ADC5 so analogni vhodi

SDA SCL so zatiči za strojno opremo I2C

Običajen čip lahko deluje od 4, 5V do 5, 5V, Atmega 8L lahko deluje z veliko nižjo napetostjo.

Vidite, da tudi ta čip zmore več, kot se zdi Arduino Uno. Toda Arduino lahko tudi to stori, samo programirati ga morate.

3. korak: prvo vezje

Prvo vezje
Prvo vezje
Prvo vezje
Prvo vezje

Zdaj je čas, da zgradite prvo vezje.

Kaj je običajno prvo vezje? Prav! Utripajmo LED.

LED je priključen na PB0. Upor poleg čipa ima 10k ohmov.

Upor poleg LED ima 470 ohmov.

Zdaj lahko priključite USBasp z Atmego, kot je prikazano na sliki.

Toda preden vklopite napajanje, nam napišite program.

4. korak: Napišite prvi program

Napišite prvi program
Napišite prvi program

Ustvarite novo datoteko v Bascomu in vnesite naslednje besedilo.

$ regfile "m8def.dat"

$ crystal = 1000000 config portb.0 = output do portb.0 = 1 wait 1 portb.0 = 0 wait 1 loop

po tem sestavite tako, da pritisnete F7 na tipkovnici.

Zdaj lahko programiramo čip s pritiskom na F4. Pojavi se okno programatorja. Zdaj je čas, da vklopite napajanje iz plošče. Uporabiti morate nekaj med 6 in 12 voltov.

Zdaj pojdite na čip -> avtoprogram. Če se okno programerja samodejno zapre, je bilo programiranje uspešno.

LED mora utripati v eni sekundi.

Zdaj si pobližje oglejte program, da razumete sintakso.

$ regfile "m8def.dat"

$ kristal = 1000000

z $ regfile povemo prevajalniku vrsto uporabljenega čipa, ime čipa Arduino bi bilo "m328pdef.dat"

s $ crystal mu povemo hitrost procesorja približno 1MHz.

config portb.0 = Izhod

to pomeni, da bi moral PB0 delovati kot izhod.

Mimogrede, okrajšava PB0 pomeni vrata B bit 0. Čip je razdeljen na več vrat. Vsako pristanišče dobi črko za jasno identifikacijo. in vsak portpin nekoliko od 0 do 7. Na primer, lahko vpišem celoten bajt v izhodni register vrat, ki bo izdan prek posameznih zatičev vrat.

naredi

zanka

To v Arduinu pomeni izjava void loop. Vsi ti ukazi se bodo ponavljali večno. (z nekaj izjemami, kasneje pa več o tem)

Portb.0 = 1

počakaj 1 portb.0 = 0 počakaj 1

Tu sprožimo utripanje LED.

Portb.0 = 1 pove čipu, naj preklopi izhod PB0 na 5V

ukaz wait 1 naj čip počaka eno sekundo. Če želite hitreje zamenjati LED, morate ukaz wait zamenjati z waitms. Zdaj lahko vnesete nekaj časa v milisekundah, npr. waitms 500. (waitus pomeni čakanje v nanosekundah)

Portb.0 = 0 pove čipu, naj preklopi izhod PB0 na 0V.

5. korak: Dodajte gumb za uporabo vnosov

Dodajte gumb za uporabo vnosov
Dodajte gumb za uporabo vnosov

Zdaj dodamo gumb, da zasveti LED, če je gumb pritisnjen.

Vstavite gumb, kot je prikazano na sliki.

zdaj vnesite naslednji program.

$ regfile "m8def.dat"

$ crystal = 1000000 config portb.0 = output config portd.7 = input portd.7 = 1 do if pind.7 = 0 potem portb.0 = 1 else portb.0 = 0 zanka

Če ta program naložite na čip, LED zasveti le, ko pritisnete gumb. Ampak zakaj?

program se zažene enako kot zadnji do

config portd.7 = vhod. To pomeni, da pin PD7, ki je povezan z gumbom, deluje kot vhod.

Portd.7 = 1 ne preklopi zatiča na visoko, vendar aktivira notranji upor za dvig Atmega.

Če je navajen arduina, je stanje state videti nekoliko čudno.

če uporabljate stavek if, morate uporabiti stavek "then". V tem vzorcu se stavek if uporablja za operacije enega ukaza. Če želite uporabiti več ukazov, ga morate napisati tako.

če je pind.7 = 0, potem

portb.0 = 1 nekaj kode nekaj kode nekaj kode drugo portb.0 = 0 konec if

za to uporabo stavka if morate na koncu uporabiti stavek "end if".

kar je še pomembno. Morda ste ga že videli. vhodi se ne sprašujejo s portx.x, ampak s pinx.x. To se zlahka spomnite. Izhodi imajo v besedi "o" (vrata), vhodi pa "i" (pin).

Zdaj ste na vrsti, da se malo poigrate.

Moja naslednja navodila bodo kmalu na voljo (standardne izjave, kot so while, izberite primer za, in spremenljivke.)

Če vam je moj pouk všeč in želite več, mi to povejte v komentarjih.

Priporočena: