| Led blink sa ATmega48/88/168 |
|
Led blink je jednostavan program kojim se pali i gasi led dioda povezana na mikrokontroler. Program je napisan koristeći C programski jezik. Za pisanje i prevođenje programa koristi se AVR studio. Prevođenjem programskog koda dobija se odgovarajuća hex datoteka koja se pomoću programatora prenosi u mikrokontroler. Šema spajanja mikrokontrolera i led diode prikazana je na sljedećoj slici:
Sa šeme se vidi da je led dioda povezana na PORTD, pin P4 preko otpornika od 330 ohm. U praktičnom primjeru na mikrokontroler je priključen kvarc kristal od 10 MHz. Potrebno je obratiti pažnju da se mikrokontroleri ATmega48, ATmega88 i ATmega168 isporučuju podešeni tako da rade koristeći interni RC oscilator podešen na frekvenciju rada od 1 MHz. Ukoliko se koristi interni oscilator, tada se mogu izostaviti elektronske komponente C6, C7 i kristal Q, čime se dobija još jednostavnija šema. Bez obzira koji se oscilator koristi i koja je frekvencija rada u pitanju, prije prevođenja programskog koda potrebno je u AVR studiu postaviti odgovarajuću vrijednost frekvencije, što će biti pokazano u toku kreiranja projekta. Program se piše u AVR studiu, pa je potrebno pokrenuti AVR studio i kreirati novi projekat klikom na Project->New Project pri čemu se otvara prozor prikazan na slici 1. Na ovom prozoru potrebno je selektovati tip projekta AVR GCC, a u Project name upisati naziv projekta, u ovom slučaju naziv je Led_blink. Upisivanjem naziva projekta automatski se upisuje i ime programskog koda sa .c ekstenzijom. Dio Location odnosi se na putanju do mjesta na kojem će projekat biti sačuvan, a u ovom primjeru to je D:\My Documents\AVR projekti\Led blink.
Slika 1 (klikni na sliku da uvećaš)
Klikom na tipku Next otvara se prozor u kome je potrebno selektovati odgovarajući programator ili razvojno okruženje i tip mikrokontrolera (slika 2).
Slika 2 (klikni na sliku da uvećaš)
U ovom slučaju potrebno je selektovati AVR Dragon (iako se AVR Dragon u ovom slučaju ne koristi za programiranje mikrokontrolera, koristiće se programator prethodno opisan ovdje) i mikrokontroler Atmega48. Klikom na tipku Finish kreira se odgovarajući projekat i otvara se prozor za pisanje programskog koda.
/********************************* * Naziv: Led_blink.c * Autor: Elektrospin.info * Datum: 25.05.2009 * Mikrokontroler: ATmega48 ********************************/ }
Napisan program u AVR studiu izgleda kao na sljedećoj slici (slika 3):
Slika 3 (klikni na sliku da uvećaš)
Prije nego što se izvrši prevođenje programskog koda i generisanje hex datoteke, potrebno je podesiti frekvenciju rada mikrokontrolera, a to se radi otvaranjem prozora za podešavanje parametara Project->Configuration Options pri čemu se otvara sljedeći prozor:
Slika 4 (klikni na sliku da uvećaš)
U ovom slučaju potrebno je unjeti vrijednost od 10 MHz u polje Frequency. Potrebno je obratiti pažnju da se u polje unosi vrijednost frekvencije u hercima (HZ), tako da se upisuje vrijednost 10000000. Ovdje se može uočiti da nije bitno koji se tip oscilatora koristi, nego samo frekvencija rada mikrokontrolera tj. ako se koristi fabrički podešen mikrokontroler onda se frekvencija postavlja na 1 MHz. Potrebno je napomenuti da maksimalna vrijednost argumenta funkcije delay_ms(double _ms) zavisi od frekvencije rada i da maksimalna vrijednost podatka iznosi 262.14 ms / F_CPU u MHz, a to znači da za frekvenciju rada od 10 MHz iznosi 26.214 ms, dok za frekvenciju od 1 MHz iznosi 262.14. S obzirom da mi koristimo vrijednost od 25 ms nije potrebno niša mijenjati u programskom kodu. Na kraju je potrebno sagraditi projekat, tj. prevesti i generisati hex datoteku, a to se jednostavno radi preko Build->Build. Prenosom podataka iz hex datoteke u mikrokontroler preko odgovarajućeg programatora izvršeno je programiranje mikrokontrolera i puštanjem u rad mikrokontroler pali i gasi led diodu svake sekunde.
|





