Satura rādītājs:

Darba sākšana ar Bascom AVR: 5 soļi
Darba sākšana ar Bascom AVR: 5 soļi

Video: Darba sākšana ar Bascom AVR: 5 soļi

Video: Darba sākšana ar Bascom AVR: 5 soļi
Video: Darba sākšana ar ķēdes motorzāģi 2024, Jūnijs
Anonim
Darba sākšana ar Bascom AVR
Darba sākšana ar Bascom AVR

Šis ir sērijas sākums, lai iemācītu jums programmēt savu AVR mikrokontrolleri, izmantojot Bascom AVR.

Kāpēc es to daru.

Lielāko daļu šīs sērijas programmu paraugu var izgatavot, izmantojot Arduino.

Daži vieglāk un daži grūtāk, bet beigās abi darbosies ar vienu un to pašu kontrolieri.

Bet programmēšanas veids katrā attīstības vidē ir atšķirīgs. Arduino ir nepieciešama bibliotēka visam, izņemot pamatfunkcijas. Bascom strādā arī ar bibliotēkām, bet man tā reti jāiekļauj. Izmantojot Arduino, visi aparatūras iestatījumi tiek veikti, izmantojot bibliotēkas. jums ir ļoti maza ietekme uz mikrokontrollera faktisko jaudu. Sākot ar kontrollera taimeriem. ar arduino jums atkal vajag bibliotēku. ja jums ir taimeris, līdz tas darbojas, iespējams, cita bibliotēka saduras ar jūsu iestatījumiem. Vietnē bascom jums ir bezmaksas piekļuve visai aparatūrai, ieskaitot sāknēšanas sektoru, kuru aizņem arduino. piemēram, dažas bascom bibliotēkas jautā, kuru taimeri vēlaties izmantot. no otras puses, tā kā arduino ļauj ļoti viegli izveidot bibliotēku pašam, tas, protams, padara to par platformu, kur jaunai aparatūrai un sensoriem parasti ir bibliotēka. Tas, kas bieži vien ir saistīts ar daudziem pētījumiem Bascom un funkcijām, kuras bibliotēka parasti uzņemtos, ir rūpīgi jāiekļauj programmas kodā. bet labas ziņas, ka bascom kopiena ir arī ļoti liela, tāpēc katrai idejai ir risinājums.

Tātad tas daļēji ir atkarīgs no projekta, kas tiek izmantots attīstības videi, un daļēji no programmēšanas personas zinātības.

bet kāpēc es daru šo sēriju? no vienas puses, tas ietaupa daudz naudas. Man nav jāpērk arduino dēlis katram projektam. Piemēram: noname Arduino uno maksā apmēram 12 €, kontrolieris, kas atrodas uz tā, maksā tikai 2,5 € ar minimālo shēmu, kas nepieciešama stabilai funkcijai, tā maksā aptuveni 4 €. no otras puses, jums ir pieejama pilnīga atbalstīto avr mikroshēmu izvēle. atmegas 8 līdz 256 un attiny 8 līdz 2313 un daudzi xmega veidi, par kuriem man nav pieredzes. Ja vēlaties vienkārši izmantot servo un ultraskaņas sensoru, kas var atpazīt, piemēram, roku, un pēc tam atvērt miskastes vāku, varat izmantot pēc iespējas mazāku mikroshēmu. Tāpēc ir daudz iemeslu mācīties otro valodu.

Tātad sāksim darbu

Piegādes

Šis ir minimālo nepieciešamo detaļu saraksts mikroshēmas stabilai darbībai un programmēšanai.

Maizes dēlis testēšanai

Atmega 8-16PU (labāk pirkt 2 vai 3, ja nogalināt tos kļūdas dēļ)

7805 5V sprieguma regulators

10Kohm rezistors

100nF plēves kondensators

10µF elektrolītiskais kondensators

100µF elektrolītiskais kondensators

daži vadi maizei

Windows PC 7/8/8.1/10

ISP programmētājs (es šeit izmantošu USB, kuru jūs varat iegādāties Amazon par nelielu naudu)

Bascom AVR (šeit varat lejupielādēt DEMO. Visas funkcijas ir atbloķētas, bet jūs varat rakstīt kodu tikai līdz 4Kb izmēram, kas ir pietiekami daudz koda).

Izvēles daļas:

Gaismas diodes ar rezistoriem

spiediet slēdžus

projekta specifiskās daļas

1. darbība: Bascom instalēšana un iestatīšana

Bascom instalēšana un iestatīšana
Bascom instalēšana un iestatīšana
Bascom instalēšana un iestatīšana
Bascom instalēšana un iestatīšana
Bascom instalēšana un iestatīšana
Bascom instalēšana un iestatīšana

Lejupielādējiet failu un instalējiet Bascom AVR. Instalējiet visas tā daļas, ieskaitot pēdējo izvēles rūtiņu pēc instalēšanas.

Pēc tam restartējiet datoru, pretējā gadījumā bascom netiks startēts.

Pēc pārstartēšanas sāciet bascom.

Dodieties uz Opcijas -> Programmētājs un sarakstā izvēlieties USBasp, saglabājiet iestatījumus un aizveriet Bascom.

Izmantojiet šo programmu, lai instalētu usbasp. Pēc tam vēlreiz restartējiet datoru. Tagad pievienojiet USBasp datoram un palaidiet ierīces pārvaldnieku. USBasp vajadzētu parādīties libusb ierīcēs.

Atkal iestatiet Bascom un izveidojiet jaunu failu. Saglabājiet to savā datorā un nospiediet tastatūras pogu F7.

Sastādītājs sāk un apkopo tukšo programmu. Tagad jūs varat pārbaudīt programmētāja funkcionalitāti.

Lai sāktu programmētāja logu, nospiediet tastatūras pogu F4. Tagad dodieties uz mikroshēmu -> identificējiet, lai sāktu mijiedarbību. Tagad USBasp gaismas diodēm vajadzētu īslaicīgi mirgot. Jums vajadzētu saņemt ziņojumu, piemēram, mikroshēmas ID FFFFFF nevarēja nolasīt ierīci. Tā ir laba zīme, ka programmētājs strādā, bet neatrada mikroshēmu.

Tagad mēs varam sākt veidot pirmo ķēdi.

2. darbība. Apskatīsim mikroshēmu tuvāk

Apskatīsim mikroshēmu tuvāk
Apskatīsim mikroshēmu tuvāk

Ja paskatās uz mikroshēmas pinout, šķiet, ka mikroshēmai nav nekādas līdzības ar arino paneli. Protams, mēs izmantojam Atmega8, un Arduino uno ir Atmega328. Bet Pinout ir gandrīz tāds pats, taču Arduino Uno plates mikroshēmai ir vairāk funkciju. Šeit ir tapas nosaukumi. VCC un GND ir strāvas padeves tapas.

AREF un AVCC ir tapas atskaites spriegumam un barošanas avotam analogam digitālajam pārveidotājam.

PB 0-7 PC 0-6 PD 0-7 ir universālas ieejas izejas tapas ar vairākām noslodzēm.

nosaukums atiestatīt ir tas, ko saka nosaukums. Lai restartētu mikroshēmu. Līnija virs atiestatīšanas nosaukuma nozīmē noliegumu. Tas nozīmē, ka, lai atiestatītu mikroshēmu, tā ir jānolaiž līdz 0 V.

Šīm tapām drīzumā būs pieejamas atsevišķas pamācības.

RXD TXD ir aparatūras tapas UART sērijas sakariem.

INT0 INT1 ir aparatūras pārtraukšanas tapas

XCK /T0 UART Pulksteņa avots /taimeris /skaitītājs0 Pulksteņa avots

XTAL /TOSC tapas ir paredzētas ārējam kristālam līdz 16 MHz (dažādi modeļi līdz 20 MHz) /kristāla tapas iekšējam RTC

T1 ir līdzīgs T0

AIN tapas ir paredzētas analogam salīdzinājumam

ICP1 ir līdzīgs T0/T1

OC1A ir aparatūras izejas tapa pwm timer1 A kanālam

SS / OC2 mikroshēmas atlases tapa SPI / līdzīgam OC1B, bet kanālam B

MOSI MISO SCK / OC2 ir aparatūras SPI tapas un tapas programmēšanai / PWM izejas taimeris2

ADC0 līdz ADC5 ir analogās ieejas

SDA SCL ir tapas aparatūrai I2C

Parastā mikroshēma var darboties no 4, 5V līdz 5, 5V, Atmega 8L var strādāt ar daudz zemāku spriegumu.

Jūs redzat, ka pat šī mikroshēma var darīt vairāk, nekā šķiet, ka Arduino Uno nevar. Bet arī Arduino to var izdarīt, jums tas tikai jāprogrammē.

3. solis: pirmā shēma

Pirmā ķēde
Pirmā ķēde
Pirmā ķēde
Pirmā ķēde

Tagad ir pienācis laiks izveidot savu pirmo ķēdi.

Kas parasti ir pirmā ķēde? Taisnība! Mirgo LED.

LED ir savienots ar PB0. Rezistors blakus mikroshēmai ir 10k omi.

Rezistors blakus LED ir 470 omi.

Tagad jūs varat savienot USBasp ar Atmega, kā parādīts attēlā.

Bet pirms ieslēdzat barošanu, uzrakstīsim programmu.

4. solis: uzrakstiet pirmo programmu

Uzrakstiet pirmo programmu
Uzrakstiet pirmo programmu

Izveidojiet jaunu failu Bascom un ierakstiet sekojošo tekstu.

$ regfile "m8def.dat"

$ kristāls = 1000000 konfigurācijas ports.0.0 = izvads no portb.0 = 1 jāgaida 1 ports b.0 = 0 jāgaida 1 cilpa

pēc tam apkopojiet to, nospiežot tastatūras taustiņu F7.

Tagad mēs varam ieprogrammēt mikroshēmu, nospiežot F4. Parādās programmētāja logs. Tagad ir pienācis laiks ieslēgt barošanu no maizes dēļa. Jums vajadzētu izmantot kaut ko no 6 līdz 12 voltiem.

Tagad dodieties uz mikroshēmu -> autoprogrammu. Ja programmētāja logs automātiski aizveras, programmēšana bija veiksmīga.

Gaismas diodei vajadzētu mirgot vienas sekundes frekvencē.

Tagad tuvāk apskatiet programmu, lai izprastu sintaksi.

$ regfile "m8def.dat"

$ kristāls = 1000000

ar $ regfile mēs sakām kompilatoram izmantotās mikroshēmas veidu, Arduino mikroshēmas nosaukums būtu "m328pdef.dat"

ar $ kristālu mēs viņam sakām CPU ātrumu aptuveni 1MHz.

config portb.0 = Izeja

tas nozīmē, ka PB0 jādarbojas kā izejai.

Starp citu, saīsinājums PB0 nozīmē portu B bitu 0. Mikroshēma ir sadalīta vairākās ostās. Katrai ostai ir piešķirts burts skaidrai identifikācijai. un katrs portpins mazliet no 0 līdz 7. Piemēram, es varu ierakstīt pilnu baitu ostas izvades reģistrā, kas tiks izvadīts, izmantojot atsevišķas ostas tapas.

darīt

cilpa

Tas ir tas, ko Arduino nozīmē tukšuma cilpas paziņojums. Viss starp šīm divām komandām atkārtosies mūžīgi. (ar dažiem izņēmumiem, bet vēlāk par to sīkāk)

Portb.0 = 1

gaidīt 1 portb.0 = 0 gaidīt 1

Šeit mēs dīgstam LED mirgošanu.

Portb.0 = 1 norāda mikroshēmai pārslēgt izeju PB0 uz 5V

komanda gaidīt 1 ļauj mikroshēmai gaidīt vienu sekundi. Ja vēlaties ātrāk pārslēgt LED, pagaidīšanas komanda jāaizstāj ar gaidīšanas režīmu, tagad varat ievadīt kādu laiku milisekundēs, piem. waits 500. (waitus nozīmē gaidīt nanosekundēs)

Portb.0 = 0 norāda mikroshēmai pārslēgt izeju PB0 uz 0V.

5. darbība: pievienojiet pogu, lai izmantotu ievadi

Pievienojiet pogu, lai izmantotu ievadi
Pievienojiet pogu, lai izmantotu ievadi

Tagad mēs pievienojam pogu, lai iedegtos LED, ja poga tiek nospiesta.

Ievietojiet pogu, kā parādīts attēlā.

tagad ierakstiet sekojošo programmu.

$ regfile "m8def.dat"

$ crystal = 1000000 config portb.0 = izejas konfigurācijas ports.7 = ievades ports.7 = 1 dariet, ja pind.7 = 0, tad portb.0 = 1 cits portb.0 = 0 cilpa

Ja augšupielādējat šo programmu mikroshēmā, gaismas diode iedegas tikai tad, kad tiek nospiesta poga. Bet kāpēc?

programma sākas tāpat kā iepriekšējā līdz

config portd.7 = ievade. Tas nozīmē, ka PIN7 tapa, kas savienota ar pogu, darbojas kā ieeja.

Portd.7 = 1 nepārslēdz tapu uz augstu, bet aktivizē Atmega iekšējo pievilkšanas rezistoru.

Ja statemend izskatās mazliet dīvaināks, ja esat pieradis pie arduino.

ja izmantojat paziņojumu if, jāizmanto paziņojums "tad". Šajā paraugā if paziņojums tiek izmantots vienas komandas darbībām. Ja vēlaties izmantot vairāk komandu, jums tas jāraksta šādi.

ja pind.7 = 0 tad

portb.0 = 1 kāds kods kāds kods kāds kods cits portb.0 = 0 beigas, ja

lai izmantotu šo paziņojumu if, beigās jāizmanto paziņojums "end if".

kas vēl ir svarīgs. Varbūt jūs to jau esat redzējis. ievades netiek vaicātas ar portx.x, bet gan ar pinx.x. To var viegli atcerēties. Izejās vārdā ir “o” (ports), bet ievadēm - “i” (tapa).

Tagad ir jūsu kārta mazliet paspēlēties.

Mans nākamais pamācības būs drīzumā (standarta paziņojumi, piemēram, kamēr, atlasīt reģistru, attiecībā uz un mainīgie.)

Ja jums patīk mana pamācība un vēlaties vairāk, pastāstiet man komentāros.

Ieteicams: