Vsak inženir elektronike rad lomi elektronske stvari in raziskuje, kaj je v njem. Pred kratkim sem odprl LED televizor in v njem našel čip ARM. Mikrokrmilniki na osnovi ARM se pogosto uporabljajo v različnih vrstah vgrajenih izdelkov in sistemov. Vsebujejo številne napredne funkcije, zaradi katerih so zmogljivi in boljši od drugih mikrokrmilnikov, kot so 8051, AVR in PIC. LPC2148 je eden najpogosteje uporabljenih mikrokrmilnikov na osnovi ARM, zato bomo ustvarili vrsto vadnic in projektov LPC2148 ter jih delili v prihodnjih člankih. Tu je prva vadnica v tej seriji, ki zajema Uvod v LPC2148 in jo programirajte tako, da utripa LED.
V tej vadnici bomo torej spoznali ARM7 Stick - LPC2148 in se naučili, kako ga programirati s programsko opremo Keil uVision in Flash magic. Naš LPC2148 bomo programirali tako, da utripa LED.
Mikrokrmilnik ARM
17. korak: Sedaj zavihku izhodne klopi ustvariti Hex datoteko in nato kliknite 'V redu'
Korak 18: Zdaj kliknite ikono BUILD ali pritisnite F7, da ustvarite šestnajstiško datoteko.
19. korak: Zdaj je ustvarjena šestnajstiška datoteka, ki jo lahko zapišemo na dnu. Tako kot na spodnji sliki pomeni, da je ustvarjena šestnajstiška datoteka
20. korak: Zdaj je čas, da hex datoteko preklopite na ARM7 Stick. Odprite Flash Magic
Prikaže se orodje Flash magic, kot zgoraj.
Spodaj so navedeni koraki za utripanje ARM LPC2148:
- Izberite LPC2148
- Vnesite številko vrat COM glede na Device Manager (Moja je bila COM7)
- Navedite hitrost prenosa kot 38400
- Oscilator kot 12 MHz
- Označite »Izbriši bloke, ki jih uporablja vdelana programska oprema«
- Zdaj izberite pot do šestnajstiške datoteke
- Potrdite polje za preverjanje po programiranju.
- In kliknite START
Po uspešnem utripanju v nekaj sekundah se na dnu prikaže Finished (v zeleni barvi), kot je prikazano na spodnji sliki
Zdaj lahko vidite, da lučka začne utripati na plošči
Pojasnilo kodiranja
Popolna koda za utripajočo LED z LPC2148 je navedena spodaj. Koda je preprosta in jo je mogoče enostavno razumeti.
Ta datoteka glave vključuje vse datoteke za mikrokrmilnike serije LPC214x.
#include
Ker smo izhod priključili na P0.10, uporablja register IODIR in za izhod naredi pin 0 Port 10 Pin.
IO0DIR = (1 << 10);
Ta register nastavi P0.10 na HIGH, tako da LED VKLOPI.
IO0SET = (1 << 10);
Ta register počisti P0.10 na LOW, tako da LED IZKLOPI
IO0CLR = (1 << 10);
Spodnji stavki so prisotni v zanki while za neprekinjeno izvajanje kode
medtem ko (1) { IO0SET = (1 << 10); zamuda_ms (1000); IO0CLR = (1 << 10); zamuda_ms (1000); }
Funkcije delay_ms se uporablja za ustvarjanje časa zakasnitve med SET in CLR za utripanje LED v intervalu 1 sekunde.
Celotna koda z demonstracijskim videoposnetkom je navedena spodaj.