Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Installation af Bascom og opsætning
- Trin 2: Lad os se nærmere på chippen
- Trin 3: Det første kredsløb
- Trin 4: Skriv det første program
- Trin 5: Tilføj en knap til brug af input
![Kom godt i gang med Bascom AVR: 5 trin Kom godt i gang med Bascom AVR: 5 trin](https://i.howwhatproduce.com/images/002/image-5332-j.webp)
Video: Kom godt i gang med Bascom AVR: 5 trin
![Video: Kom godt i gang med Bascom AVR: 5 trin Video: Kom godt i gang med Bascom AVR: 5 trin](https://i.ytimg.com/vi/-qBxjyceiTI/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
![Kom godt i gang med Bascom AVR Kom godt i gang med Bascom AVR](https://i.howwhatproduce.com/images/002/image-5332-1-j.webp)
Dette er begyndelsen på en serie for at lære dig at programmere din AVR -mikrokontroller med Bascom AVR.
Hvorfor gør jeg dette.
De fleste programprøver i denne serie kan du lave med Arduino.
Nogle lettere og nogle vanskeligere, men i slutningen kører begge på den samme controller.
Men måden at programmere på er anderledes i alle udviklingsmiljøer. Arduino har brug for et bibliotek til alt undtagen de grundlæggende funktioner. Bascom arbejder også med biblioteker, men jeg skal sjældent inkludere et. Med Arduino foretages alle hardwarespecifikke indstillinger via bibliotekerne. du har meget lille indflydelse på mikrokontrollerens faktiske effekt. Startende med de timere, som controlleren har. med arduino har du brug for et bibliotek igen. hvis du har timeren, indtil den virker, kan det være, at et andet bibliotek kolliderer med dine indstillinger. På bascom har du gratis adgang til den komplette hardware inklusive boot -sektoren, der er besat af arduino. for eksempel spørger nogle biblioteker på bascom dig, hvilken timer du vil bruge. på den anden side, da arduino gør det meget let at oprette et bibliotek selv, gør det det naturligvis til en platform, hvor ny hardware og sensorer normalt har et bibliotek direkte. hvad der ofte er forbundet med meget forskning på bascom og de funktioner, som et bibliotek normalt ville varetage, skal derefter omhyggeligt indarbejdes i programkoden. men gode nyheder bascom -fællesskabet er også meget stort, hvorfor der er en løsning til enhver idé.
Så det afhænger dels af projektet, hvad der bruges til et udviklingsmiljø og dels af programmeringspersonens knowhow.
men hvorfor laver jeg denne serie. på den ene side sparer det mange penge. Jeg behøver ikke købe et arduino -bord til hvert projekt. For eksempel: En noname Arduino uno koster ca. på den anden side har du det komplette udvalg af avr -chips, der understøttes. atmegas 8 til 256 og attiny 8 til 2313 og mange xmega -typer, som jeg ikke har erfaring med. Hvis du bare vil bruge en servo og en ultralydssensor, der f.eks. Kan genkende en hånd og derefter åbne et låg på en skraldespand, kan du bruge den mindst mulige chip. Så der er mange grunde til at lære et andet sprog.
Så lad os komme i gang
Forbrugsvarer
Dette er en liste over minimum krævede dele til stabil drift af chippen og programmering.
Brødbræt til test
Atmega 8-16PU (bedre du køber 2 eller 3, hvis du dræber dem ved en fejl)
7805 5V spændingsregulator
10Kohm modstand
100nF filmkondensator
10µF elektrolytkondensator
100µF elektrolytkondensator
nogle ledninger til brødbræt
Windows PC 7/8/8.1/10
ISP -programmerer (jeg vil her bruge USBasp, du kan købe det på amazon for få penge)
Bascom AVR (du kan downloade en DEMO her. Alle funktioner er låst op, men du kan kun skrive kode til 4Kb -størrelse, der er nok til masser af kode).
Valgfri dele:
LED'er med modstande
skubkontakter
projektspecifikke dele
Trin 1: Installation af Bascom og opsætning
![Installation af Bascom og opsætning Installation af Bascom og opsætning](https://i.howwhatproduce.com/images/002/image-5332-2-j.webp)
![Installation af Bascom og opsætning Installation af Bascom og opsætning](https://i.howwhatproduce.com/images/002/image-5332-3-j.webp)
![Installation af Bascom og opsætning Installation af Bascom og opsætning](https://i.howwhatproduce.com/images/002/image-5332-4-j.webp)
Download filen og installer Bascom AVR. Installer alle dele af det inklusive det sidste afkrydsningsfelt efter installationen.
Efter det genstart din pc ellers starter bascom ikke.
Efter genstart starter bascom.
Gå til Valg -> Programmer og vælg USBasp fra listen, gem indstillingerne og luk Bascom.
Brug dette program til at installere usbasp. Efter det skal du genstarte din pc igen. Tilslut nu USBasp med din pc, og start enhedshåndteringen. USBasp skal vises på libusb -enhederne.
Stat Bascom igen og opret en ny fil. Gem det på din pc, og tryk på F7 -knappen på dit tastatur.
Kompilatoren starter og kompilerer det tomme program. Nu kan du teste programmørens funktionalitet.
Tryk på F4 -knappen på dit tastatur for at starte programmeringsvinduet. Gå nu til chip -> identificer for at starte en interaktion. LED'erne fra USBasp skal nu blinke kort. Du skulle få en besked som chip Id FFFFFF kunne ikke læse enheden. Det er et godt tegn, at programmereren fungerer, men den fandt ingen chip.
Nu kan vi begynde at bygge det første kredsløb.
Trin 2: Lad os se nærmere på chippen
![Lad os se nærmere på chippen Lad os se nærmere på chippen](https://i.howwhatproduce.com/images/002/image-5332-5-j.webp)
Hvis du ser på chipoutens pinout, ser det ud til, at chippen ikke har nogen lighed med arduino -kortet. Nok bruger vi en Atmega8, og på Arduino uno er en Atmega328. Men Pinout er næsten den samme, men han -chippen i Arduino Uno -kortet har flere funktioner. Her er benene på stifterne. VCC og GND er stifterne til strømforsyning.
AREF og AVCC er ben til referencespændingen og strømforsyningen til den analoge til digitale omformer.
PB 0-7 PC 0-6 PD 0-7 er generelle input-udgangsstifter med flere belægninger.
reset pin er, hvad navnet siger. For at genstarte chippen. Linjen over nulstillingsnavnet betyder negation. Det betyder, at for at nulstille chippen skal du trække den ned til 0V.
For de følgende pins kommer separate instruktører snart.
RXD TXD er hardware pins til seriel kommunikation UART.
INT0 INT1 er Hardware Interrupt -ben
XCK /T0 UART Urkilde /Timer /Tæller0 Urkilde
XTAL /TOSC ben er til en ekstern krystal op til 16MHz (forskellige modeller op til 20MHz) /Krystal ben til en intern RTC
T1 ligner T0
AIN -ben er til den analoge komparator
ICP1 ligner T0/T1
OC1A er hardware output pin til pwm timer1 kanal A
SS / OC2 chip vælg pin til SPI / lignende OC1B men kanal B
MOSI MISO SCK / OC2 er hardware SPI -benene og benene til programmering / PWM -udgangstimer2
ADC0 til ADC5 er de analoge indgange
SDA SCL er pins til hardware I2C
Den normale chip kan arbejde fra 4, 5V til 5, 5V Atmega 8L kan arbejde med meget lavere spænding.
Du kan se, at selv denne chip kan mere end en Arduino Uno synes ikke kan. Men Arduino kan også gøre det, du skal kun programmere det.
Trin 3: Det første kredsløb
![Det første kredsløb Det første kredsløb](https://i.howwhatproduce.com/images/002/image-5332-6-j.webp)
![Det første kredsløb Det første kredsløb](https://i.howwhatproduce.com/images/002/image-5332-7-j.webp)
Nu er det tid til at bygge dit første kredsløb.
Hvad er typisk det første kredsløb? Ret! Lad os blinke en LED.
LED'en er forbundet med PB0. Modstanden ved siden af chippen har 10k ohm.
Modstanden ved siden af LED'en har 470 Ohm.
Nu kan du forbinde USBasp med Atmega som vist på billedet.
Men før du tænder for strømmen, lad os skrive programmet.
Trin 4: Skriv det første program
![Skriv det første program Skriv det første program](https://i.howwhatproduce.com/images/002/image-5332-8-j.webp)
Opret en ny fil i Bascom, og indtast følgende tekst.
$ regfile "m8def.dat"
$ crystal = 1000000 config portb.0 = output gør portb.0 = 1 vent 1 portb.0 = 0 vent 1 loop
derefter kompilere det ved at trykke på F7 på dit tastatur.
Nu kan vi programmere chippen ved at trykke på F4. Programmeringsvinduet vises. Nu er det tid til at tænde for strømmen fra brødbrættet. Du skal anvende noget mellem 6 og 12 volt.
Gå nu til chip -> autoprogram. Hvis programmeringsvinduet lukker automatisk, var programmeringen vellykket.
LED'en skal blinke med et sekund.
Se nu nærmere på programmet for at forstå syntaksen.
$ regfile "m8def.dat"
$ krystal = 1000000
med $ regfile fortæller vi kompilatoren typen af den brugte chip, navnet på Arduino -chippen ville være "m328pdef.dat"
med $ crystal fortæller vi ham cpu -hastigheden omkring 1MHz.
config portb.0 = Output
det betyder, at PB0 skal fungere som output.
Forresten betyder forkortelsen PB0 port B bit 0. Chippen er opdelt i flere porte. Hver port får et bogstav for tydelig identifikation. og hver portpin lidt fra 0 til 7. For eksempel kan jeg skrive en komplet byte i portoutputregistret, som vil blive udsendt via de enkelte portstifter.
gøre
sløjfe
Dette er, hvad i Arduino betyder void loop -sætningen. Mellem disse to kommandoer vil gentage sig for evigt. (med nogle undtagelser, men senere mere om det)
Portb.0 = 1
vent 1 portb.0 = 0 vent 1
Her kniber vi med at LED'en blinker.
Portb.0 = 1 fortæller chippen at skifte output PB0 til 5V
vent 1 -kommandoen lad chippen vente i et sekund. Hvis du vil skifte LED hurtigere, skal du udskifte ventekommandoen med waitms nu kan du indtaste et stykke tid nu i millisekunder f.eks. waitms 500. (waitus betyder vent i nanosekunder)
Portb.0 = 0 fortæller chippen at skifte output PB0 til 0V.
Trin 5: Tilføj en knap til brug af input
![Tilføj en knap til brug af input Tilføj en knap til brug af input](https://i.howwhatproduce.com/images/002/image-5332-9-j.webp)
Nu tilføjer vi en knap for at tænde lysdioden, hvis der trykkes på knappen.
Indsæt knappen som vist på billedet.
indtast nu følgende program.
$ regfile "m8def.dat"
$ crystal = 1000000 config portb.0 = output config portd.7 = input Portd.7 = 1 gør hvis pind.7 = 0 derefter portb.0 = 1 anden portb.0 = 0 loop
Hvis du uploader det program til chippen, lyser LED'en kun, når der trykkes på knappen. Men hvorfor?
programmet starter identisk som den sidste indtil
config portd.7 = input. Det betyder, at stiften PD7, der er forbundet med knappen, fungerer som et input.
Portd.7 = 1 skifter ikke stiften til høj, men den aktiverer den interne pull -up -modstand på Atmega.
Hvis statemend ser lidt mærkeligt ud, hvis du er vant til arduino.
hvis du bruger if -sætningen, skal du bruge "derefter" -udsagnet. I denne prøve bruges if -sætningen til enkeltkommandooperationer. Hvis du vil bruge flere kommandoer, skal du skrive det sådan.
hvis pind.7 = 0 så
portb.0 = 1 nogle kode nogle kode nogle kode andet portb.0 = 0 ende hvis
til denne brug af if -sætningen skal du bruge "slut hvis" -udsætningen i slutningen.
hvad der stadig er vigtigt. Måske har du allerede set det. input er ikke forespurgt med portx.x, men med pinx.x. Det kan du let huske. Outputs har "o" (port) i ordet, og input har "i" (pin).
Nu er det din tur til at lege lidt.
Min næste instruerbare kommer snart (standardudtalelser som while, select case, for og variabler.)
Hvis du kan lide min instruerbare og vil have mere, fortæl mig det i kommentarerne.
Anbefalede:
Kom godt i gang med trådløse temperatur- og vibrationssensorer med lang rækkevidde: 7 trin
![Kom godt i gang med trådløse temperatur- og vibrationssensorer med lang rækkevidde: 7 trin Kom godt i gang med trådløse temperatur- og vibrationssensorer med lang rækkevidde: 7 trin](https://i.howwhatproduce.com/images/001/image-149-j.webp)
Kom godt i gang med trådløse temperatur- og vibrationssensorer med lang rækkevidde: Nogle gange er vibration årsag til alvorlige problemer i mange applikationer. Fra maskinaksler og lejer til harddiskydelse, vibrationer forårsager maskinskader, tidlig udskiftning, lav ydeevne og påfører et stort hit på nøjagtigheden. Overvågning
Kom godt i gang med skinkeradio: 5 trin (med billeder)
![Kom godt i gang med skinkeradio: 5 trin (med billeder) Kom godt i gang med skinkeradio: 5 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-2957-7-j.webp)
Kom godt i gang med skinkeradio: Som en nyligt præget skinke -licenshaver vil jeg viderebringe den proces, jeg tog for at komme ind i skinkeradio. Jeg blev lokket af hobbyens selvhjulpenhed, hvilket gav folk en måde at kommunikere på, når andre metoder forstyrres. Men det er også givende at
Kom godt i gang med M5StickV AI + IOT -kameraet: 6 trin (med billeder)
![Kom godt i gang med M5StickV AI + IOT -kameraet: 6 trin (med billeder) Kom godt i gang med M5StickV AI + IOT -kameraet: 6 trin (med billeder)](https://i.howwhatproduce.com/images/011/image-32027-j.webp)
Kom godt i gang med M5StickV AI + IOT kameraet: Kort oversigt anstændige specifikationer. Kameraet drives af utrolige
Kom godt i gang med Python: 7 trin (med billeder)
![Kom godt i gang med Python: 7 trin (med billeder) Kom godt i gang med Python: 7 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-1010-39-j.webp)
Kom godt i gang med Python: Programmering er fantastisk! Det er kreativt, sjovt og giver din hjerne en mental træning. Mange af os ønsker at lære mere om programmering, men overbeviser os selv om, at vi ikke kan. Måske har den for meget matematik, måske skræmmer den jargon, der kastes rundt
Installation af Raspbian Buster på Raspberry Pi 3. Kom godt i gang med Raspbian Buster Med Raspberry Pi 3b / 3b+: 4 trin
![Installation af Raspbian Buster på Raspberry Pi 3. Kom godt i gang med Raspbian Buster Med Raspberry Pi 3b / 3b+: 4 trin Installation af Raspbian Buster på Raspberry Pi 3. Kom godt i gang med Raspbian Buster Med Raspberry Pi 3b / 3b+: 4 trin](https://i.howwhatproduce.com/images/001/image-2658-16-j.webp)
Installation af Raspbian Buster på Raspberry Pi 3. Kom godt i gang med Raspbian Buster Med Raspberry Pi 3b / 3b+: Hej fyre, for nylig lancerede Raspberry pi -organisationen nyt Raspbian OS kaldet Raspbian Buster. Det er en ny version af Raspbian til Raspberry pi's. Så i dag vil vi i denne instruktør lære at installere Raspbian Buster OS på din Raspberry pi 3