Sisällysluettelo:

Bascom AVR: n käytön aloittaminen: 5 vaihetta
Bascom AVR: n käytön aloittaminen: 5 vaihetta

Video: Bascom AVR: n käytön aloittaminen: 5 vaihetta

Video: Bascom AVR: n käytön aloittaminen: 5 vaihetta
Video: Работа с АЦП на примере ATtiny13 в BASCOM-AVR 2024, Marraskuu
Anonim
Bascom AVR: n käytön aloittaminen
Bascom AVR: n käytön aloittaminen

Tämä on sarjan alku, joka opettaa sinulle AVR -mikrokontrollerin ohjelmoinnin Bascom AVR: n avulla.

Miksi teen tämän.

Useimmat tämän sarjan ohjelmamallit voidaan tehdä Arduinolla.

Jotkut helpompia ja toiset vaikeampia, mutta lopulta molemmat toimivat samalla ohjaimella.

Ohjelmointitapa on kuitenkin erilainen kaikissa kehitysympäristöissä. Arduino tarvitsee kirjaston kaikkeen paitsi perustoimintoihin. Bascom toimii myös kirjastojen kanssa, mutta minun on harvoin sisällytettävä se. Arduinolla kaikki laitteistokohtaiset asetukset tehdään kirjastojen kautta. sinulla on hyvin vähän vaikutusta mikrokontrollerin todelliseen tehoon. Aloita ohjaimen ajastimista. arduinon kanssa tarvitset kirjaston uudelleen. Jos sinulla on ajastin, kunnes se toimii, se voi olla toinen kirjasto, joka törmää asetuksiisi. Bascomilla on ilmainen pääsy täydelliseen laitteistoon, mukaan lukien arduinon käytössä oleva käynnistyssektori. esimerkiksi jotkut bascomin kirjastot kysyvät, mitä ajastinta haluat käyttää. toisaalta, koska arduinon avulla on erittäin helppoa luoda kirjasto itse, se tekee siitä luonnollisesti alustan, jossa uusilla laitteistoilla ja antureilla on yleensä kirjasto suoraan. mikä usein liittyy moniin tutkimuksiin bascomissa ja toiminnot, jotka kirjasto normaalisti ottaisi, on sitten sisällytettävä huolellisesti ohjelmakoodiin. mutta hyvä uutinen, bascom -yhteisö on myös erittäin suuri, joten jokaiselle idealle on ratkaisu.

Joten se riippuu osittain projektista, mitä käytetään kehitysympäristöön, ja osittain ohjelmointihenkilön osaamisesta.

mutta miksi teen tätä sarjaa. toisaalta se säästää paljon rahaa. Minun ei tarvitse ostaa arduino -korttia jokaiseen projektiin. Esimerkiksi: Noname Arduino uno maksaa noin 12 €, sen päällä oleva ohjain maksaa vain 2,5 € ja vakaan toiminnan edellyttämät vähimmäispiirit, se maksaa noin 4 €. toisaalta sinulla on täydellinen valikoima tuettuja avr -siruja. atmegas 8-256 ja attiny 8-2313 ja monet xmega -tyypit, joista minulla ei ole kokemusta. Jos haluat käyttää vain servoa ja ultraäänianturia, joka tunnistaa esimerkiksi käden, ja avaa sitten roskakorin kansi, voit käyttää pienintä mahdollista sirua. Joten on monia syitä oppia toinen kieli.

Aloitetaan siis

Tarvikkeet

Tämä on luettelo tarvittavista vähimmäisosista sirun vakaalle toiminnalle ja ohjelmoinnille.

Leipälevy testausta varten

Atmega 8-16PU (parempi ostaa 2 tai 3, jos tapat ne vahingossa)

7805 5V jännitesäädin

10Kohm vastus

100nF kalvokondensaattori

10µF elektrolyyttikondensaattori

100µF elektrolyyttikondensaattori

joitakin johtoja leipälevylle

Windows PC 7/8/8.1/10

Internet -palveluntarjoajan ohjelmoija (käytän täällä USBasp -laitetta, jonka voit ostaa Amazonilta pienellä rahalla)

Bascom AVR (voit ladata täältä demon. Kaikki toiminnot ovat lukitsemattomia, mutta voit kirjoittaa koodia vain 4Kb -kokoon asti, mikä riittää monelle koodille).

Valinnaiset osat:

LEDit vastuksilla

paina kytkimiä

projektikohtaiset osat

Vaihe 1: Bascomin asennus ja asennus

Bascomin asennus ja asennus
Bascomin asennus ja asennus
Bascomin asennus ja asennus
Bascomin asennus ja asennus
Bascomin asennus ja asennus
Bascomin asennus ja asennus

Lataa tiedosto ja asenna Bascom AVR. Asenna kaikki osat, mukaan lukien viimeinen valintaruutu asennuksen jälkeen.

Käynnistä sitten tietokone uudelleen, muuten bascom ei käynnisty.

Käynnistä bascom uudelleenkäynnistyksen jälkeen.

Valitse Asetukset -> Ohjelmoija ja valitse luettelosta USBasp, tallenna asetukset ja sulje Bascom.

Asenna usbasp tämän ohjelman avulla. Käynnistä sitten tietokone uudelleen. Liitä nyt USBasp tietokoneeseen ja käynnistä laitehallinta. USBasp pitäisi näkyä libusb -laitteissa.

Stat Bascom uudelleen ja luo uusi tiedosto. Tallenna se tietokoneellesi ja paina näppäimistön F7 -painiketta.

Kääntäjä käynnistää ja kääntää tyhjän ohjelman. Nyt voit testata ohjelmoijan toimivuutta.

Käynnistä ohjelmointi -ikkuna painamalla näppäimistön F4 -painiketta. Siirry nyt siruun -> tunnista aloittaaksesi vuorovaikutus. USBasp: n merkkivalojen pitäisi nyt vilkkua lyhyesti. Sinun pitäisi saada viesti, kuten sirun tunnus FFFFFF ei voinut lukea laitetta. Se on hyvä merkki, että ohjelmoija toimii, mutta se ei löytänyt sirua.

Nyt voimme aloittaa ensimmäisen piirin rakentamisen.

Vaihe 2: Katsotaanpa lähemmin sirua

Katsotaanpa lähemmin sirua
Katsotaanpa lähemmin sirua

Jos katsot sirun pinoutia, näyttää siltä, että sirulla ei ole mitään samankaltaisuutta arduino -kortin kanssa. Toki, käytämme Atmega8 ja Arduino uno on Atmega328. Mutta Pinout on lähes sama, mutta Arduino Uno -levyn sirulla on enemmän toimintoja. Tässä nastojen nimet. VCC ja GND ovat virtalähteen nastat.

AREF ja AVCC ovat vertailujännitteen ja virtalähteen nastoja analogisesta digitaalimuuntimeen.

PB 0-7 PC 0-6 PD 0-7 ovat yleiskäyttöisiä sisääntulonappeja, joissa on useita henkilöitä.

Reset pin on se mitä nimi sanoo. Sirun käynnistäminen uudelleen. Nollauksen nimen yläpuolella oleva rivi tarkoittaa kieltämistä. Tämä tarkoittaa, että palauttaaksesi sirun sinun on vedettävä se 0V: iin.

Seuraavien nastojen osalta erilliset ohjeet tulevat pian.

RXD TXD ovat UART -sarjaviestinnän laitteistotappeja.

INT0 INT1 ovat laitteiston keskeytys nastoja

XCK /T0 UART Kellolähde /ajastin /laskuri0 Kellolähde

XTAL /TOSC -nastat ovat ulkoiselle kristallille jopa 16 MHz (eri mallit jopa 20 MHz) /kristallinastat sisäiselle RTC: lle

T1 on samanlainen kuin T0

AIN -nastat ovat analogista vertailua varten

ICP1 on samanlainen kuin T0/T1

OC1A on laitteiston ulostulonappi pwm timer1 -kanavalle A

SS / OC2 -sirunvalintatappi SPI / kuten OC1B: lle, mutta kanava B

MOSI MISO SCK / OC2 ovat laitteiston SPI -nastat ja ohjelmointi- / PWM -lähtöajastimen nastat2

ADC0 - ADC5 ovat analogisia tuloja

SDA SCL ovat laitteiston I2C nastat

Normaali siru voi toimia 4, 5 V - 5, 5 V, Atmega 8L voi toimia paljon pienemmällä jännitteellä.

Näet, että jopa tämä siru voi tehdä enemmän kuin Arduino Uno ei näytä pystyvän. Mutta Arduino voi tehdä sen myös, sinun tarvitsee vain ohjelmoida se.

Vaihe 3: Ensimmäinen piiri

Ensimmäinen piiri
Ensimmäinen piiri
Ensimmäinen piiri
Ensimmäinen piiri

Nyt on aika rakentaa ensimmäinen piiri.

Mikä on yleensä ensimmäinen piiri? Oikein! Vilkataan LED.

LED on kytketty PB0: een. Sirun vieressä olevassa vastuksessa on 10 k ohmia.

LEDin vieressä olevassa vastuksessa on 470 ohmia.

Nyt voit liittää USBasp: n Atmega -laitteeseen kuvan osoittamalla tavalla.

Mutta ennen kuin kytket virran päälle, kirjoita ohjelma.

Vaihe 4: Kirjoita ensimmäinen ohjelma

Kirjoita ensimmäinen ohjelma
Kirjoita ensimmäinen ohjelma

Luo uusi tiedosto Bascomissa ja kirjoita seuraava teksti.

$ regfile "m8def.dat"

$ crystal = 1000000 config portb.0.0 = output do portb.0 = 1 odota 1 portti b.0 = 0 odota 1 silmukka

koota se sen jälkeen painamalla näppäimistön F7 -näppäintä.

Nyt voimme ohjelmoida sirun painamalla F4. Ohjelmointi -ikkuna tulee näkyviin. Nyt on aika kytkeä virta päälle leipälevyltä. Sinun pitäisi käyttää jotain 6 ja 12 voltin välillä.

Siirry nyt siruun -> autoprogram. Jos ohjelmoija -ikkuna sulkeutuu automaattisesti, ohjelmointi onnistui.

LEDin pitäisi vilkkua sekunnin taajuudella.

Katso nyt tarkemmin ohjelmaa, jotta voit ymmärtää syntaksin.

$ regfile "m8def.dat"

$ crystal = 1000000

$ regfile: llä kerromme kääntäjälle käytetyn sirun tyypin, Arduino -sirun nimi olisi "m328pdef.dat"

$ kristallilla kerromme hänelle suorittimen nopeuden noin 1 MHz.

config portb.0 = Lähtö

se tarkoittaa, että PB0: n pitäisi toimia ulostulona.

Muuten lyhenne PB0 tarkoittaa porttia B bitti 0. Siru on jaettu useisiin portteihin. Jokaiselle portille annetaan kirjain selkeää tunnistamista varten. ja jokainen portti hieman 0-7. Esimerkiksi voin kirjoittaa kokonaisen tavun portin lähtörekisteriin, joka tulostetaan yksittäisten porttien nastojen kautta.

tehdä

silmukka

Tätä Arduinossa tarkoittaa mitätön silmukka -lauseke. Kaikki näiden kahden käskyn välissä toistuvat ikuisesti. (joitakin poikkeuksia lukuun ottamatta, mutta siitä lisää myöhemmin)

Portb.0 = 1

odota 1 portti.0 = 0 odota 1

Täällä itämme ledin vilkkumisen.

Portb.0 = 1 käskee sirun vaihtamaan lähdön PB0 5V: ksi

odota 1 -komento antaa sirun odottaa yhden sekunnin. Jos haluat vaihtaa lediä nopeammin, sinun on korvattava odotuskomento odotuksilla nyt, voit syöttää jonkin aikaa nyt millisekunteina, esim. odottaa 500. (waitus tarkoittaa odottamista nanosekunneissa)

Portb.0 = 0 käskee sirun vaihtamaan lähdön PB0 0V: ksi.

Vaihe 5: Lisää painike tulojen käyttämiseksi

Lisää painike tulojen käyttämiseksi
Lisää painike tulojen käyttämiseksi

Nyt lisäämme painikkeen sytyttämään ledin, jos painiketta painetaan.

Aseta painike kuvan mukaisesti.

kirjoita nyt seuraava ohjelma.

$ regfile "m8def.dat"

$ crystal = 1000000 config portb.0.0 = output config portd.7 = input Portd.7 = 1 do if pind.7 = 0 then portb.0 = 1 else portb.0 = 0 loop

Jos lataat ohjelman sirulle, LED -valo syttyy vain, kun painiketta painetaan. Mutta miksi?

ohjelma käynnistyy samalla tavalla kuin edellinen asti

config portd.7 = tulo. Tämä tarkoittaa, että näppäimellä PD7 toiminut tulo toimii tulona.

Portd.7 = 1 ei vaihda tappia korkeaksi, mutta aktivoi Atmegan sisäisen vetovastus.

Jos statemend näyttää hieman oudolta, jos olet tottunut arduinoon.

Jos käytät if -lausetta, sinun on käytettävä "sitten" -lausetta. Tässä esimerkissä if -lausetta käytetään yksittäisiin komentoihin. Jos haluat käyttää enemmän komentoja, sinun on kirjoitettava se näin.

jos pind.7 = 0 sitten

portb.0 = 1 jokin koodi jokin koodi jokin koodi jokin muu portb.0 = 0 loppu jos

tätä if -lauseen käyttöä varten on käytettävä "end if" -lausetta lopussa.

mikä on vielä tärkeää. Ehkä olet jo nähnyt sen. Tuloja ei haeta portx.x: llä, vaan pinx.x: llä. Voit helposti muistaa sen. Lähdöissä on "o" (portti) sanassa ja tuloissa "i" (nasta).

Nyt on sinun vuorosi leikkiä hieman.

Seuraava ohjeeni tulee pian (vakiolausunnot, kuten while, select case, for ja muuttujat.)

Jos pidät ohjeistustani ja haluat lisää, kerro minulle kommenteissa.

Suositeltava: