Pirmi žinksniai su ATmega16

Apie šitą gėrį skaičiau jau senokai, bet niekaip neprisiruošdavau. Bet išaušo ta diena.

Pirmiausia užsisakiau programatorių. Kainavo pilnai su siuntimu ~28LTL. Pirktas iš ebay, USBasp klonas (http://www.fischl.de/usbasp/). Atkeliavus programatoriui jau gumos netempiau, nes labai norėjosi išbandyti kaip viskas veikia. Susipirkau ko reikia ir susilitavau schemą pateikta elektronika.lt puslapyje.

Pora pakeitimų, tai šviesos diodai jungti ne per 1…2K kaip parodyta schemoje, o per 330Ω Dar vienas mažas nukrypimas, kad aš nedėjau jokio mygtuko. Pirmoji mintis ir užduotis buvo išmokti junginėti diodus.

Nepaslaptis, kad naudoju Archlinux, to pasekoje programos kodas pateiktas ankščiau minėtam elektronika.lt puslapyje netiko – nesikompiliavo. Su programa Gnome-avrdude įrašius HEX’ą diodai mirksėjo. Taigi mano supratimu problema buvo tame, kad gcc-avr kompiliatorius veikia truputi kitaip nei winavr ir/ar kiti windows’iniai.

Padraugavus su Google pavyko parašyti ir sukompiliuoti štai tokį kodą:

#define F_CPU 1000000UL
#include <inttypes.h>
#include <avr/io.h>
#include <util/delay.h>

void sleep()
{
   _delay_ms(50);

}

int main(){

DDRD = 0b11111111;

while (1) {
 PORTD = 0b10000001;
 sleep();
 PORTD = 0b01000010;
 sleep();
 PORTD = 0b00100100;
 sleep(); 
 PORTD = 0b00011000;
 sleep(); 
 PORTD = 0b00011000;
 sleep(); 
 PORTD = 0b00100100;
 sleep(); 
 PORTD = 0b01000010;
 sleep(); 
 }
}

Programą kompiliavau štai tokiomis komandomis (programos kodas parašytas test.c byloje):

avr-gcc -mmcu=atmega16 -Os test.c -o test.o
avr-objcopy -j .text -j .data -O ihex  test.o  test.hex

C kodą rašau su Geany (http://www.geany.org/)
Gnome-avrdude konfiguracija USBasp programatoriui yra tokia:

Programmer laukelyje USBasp pasirinkimo nebuvo, todėl jį įvedžiau ranka.
Spustelnam Open, pasirenkame paruošta HEX bylą ir ją atveriame. Atvėrus spustelnam mygtuką kur parodyta mikroschma su rodykle nukreipta į ja. Jei viskas gerai sujungta turite pamatyti štai tokį (ar panašų) rezultatą:

Programa iškarto pradeda veikti. Aukščiau pateiktas kodo rezultatas youtubo filmuke (atsiprašau už kokybe, neturiu jokio geriau filmuojančio aparato):

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close