ATMEGA 128 problemy z startem softu (odpaleniem diody)

Sep 08, 2006 9 Replies

Wietc na poczatek pracyz atmega postanowilem napisac prosty program oswiecajacy diode. Posiadam modul MMmega02 z propoxa. Zasuilam go 4.5 V (powinno byc 5v ale zasilacz tylko mi daje 4.5 lub 6 ale to pewnie nie problem. rogramowac sie programuje. Oto kod ¼ród³owy: #include <avr/io.h>


int main (void)



{

PORTD|=1<<PD7; }



\i do portu PD7 podlaczam diode a druga czesc diody do masy. Go GND mam mase do VCc plus czyli 4.5V. Nic pozatym nie mam podlaczone. programuje atmege AVR studio a wbijam soft ProProgRS.1.1.



Poczytalem ze moze byc problem z Fuses Bist ale nie za bardzo wiem jak to ustawic probowalem roznych spsobow i nic nie daje dioda nie swieci sie za cholere. W symulatorze niby dziala. Dziêkuje za pomoc



Brakuje ustawienia kierunku portu D , domy¶lnie porty ustawiaj± siê ajko wej¶cie.

DDR = 0b1xxxxxxx (x-do wykorzystania 1-wyj¶cie, 0-wej¶cie)

Pozatym nie powiniene¶ pod³aczaæ diody bezpo¶rednio, a przez opornik, np 330 omów

Kolejna uwaga, porty w AVR maj± wiêkszy pr±d gdy zwieraj± do masy czyli gdy podaj± stan logiczny 0. Lepiej jest diodê (z opornikiem) podpi±æ do zasilania a nastêpnie do portu. Gdy wpiszesz 0 do portu to siê zapali, a gdy 1 to zga¶nie

Brakuje ustawienia kierunku portu D , domy¶lnie porty ustawiaj± siê ajko

nie pomoglo. W czym szukac dalej?

U¿ytkownik "Dawid" snipped-for-privacy@skasuj.cdrinfo.pl> napisa³ w wiadomo¶ci news:eds8in$6bp$ snipped-for-privacy@atlantis.news.tpi.pl...

Trochê szybko pisa³em, powinno byæ na przyk³±d tak:

int i,j =0;

DDRD = 0b10000000;

while(1) { PORTD &= ~(1<<PD7); //ustawia 0 na porcie D7 czyli zapala leda for(i=0;i<10000;i++) //petla czasowa { for(j=0;j<1000;j++); } PORTD |= (1<<PD7); //ustawia 1 na porcie D7 gasi leda for(i=0;i<10000;i++) //petla czasowa { for(j=0;j<1000;j++); } }

Ten program na pewno dzia³a (miga ledem), wrzuci³em na atmega16 z kwarcem

8MHz Sprawd¼ czy leda pod³aczy³es pw prawid³ow± sronê, (do³acz go do masy, powinien ¶wieciæ)

U¿ytkownik "Dawid" snipped-for-privacy@skasuj.cdrinfo.pl> napisa³ w wiadomo¶ci news:eds78d$183$ snipped-for-privacy@atlantis.news.tpi.pl...

Sprobuj tak:

#include <avr/io.h>

//#define sbi(port, bit) (port) |= (1 << (bit)) //#define cbi(port, bit) (port) &= (1 << (bit)) //jesli nie sa zdefiniowane w sfr_deffs.h //poda na wyjscie PD7 stan wysoki czyli zapali diode podpieta // do masy przez rezystror np 470R

int main (void) { sbi(DDRD,7); sbi(PORTD,7);

for(;;){}; } Pzdr Michal

Co to za zasilacz? Jako¶ nie wydaje mi siê by by³ stabilizowany. ATmega mo¿e mieæ w³±czony wewnêtrzny uk³ad resetuj±cy, gdy spadnie napiêcie i nie bêdzie dzia³aæ przy zbyt niskim lub pulsuj±cym napiêciu. Oczywi¶cie kod te¿ musi byæ poprawny...

U¿ytkownik "EM" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:edsd38$j33$ snipped-for-privacy@news.onet.pl...

Jak masz oryginalny procek ze sklepu to wy³±cz kompatybilno¶æ z ATMEGA 103.

Gejzero.

zasilacz impulsowy na mierniku dokladnie 5.03V max moze dac do 1.5A

\ Próbowalme wielu kodow ale dioda niechce si zaswiecic. Miernikiem sprawdzalem to stan jest na 1.8V. Ale tak na kazdym porcie i dioda nawet nie mrygnie:/

chyba klega pokicka³ cos. Na odwrót. Tutaj ga¶nie.

Dnia Sun, 10 Sep 2006 13:05:30 +0200, Dawid napisał(a):

Zależy jak podłączysz. Jeśli anodą (trudne słowo ;)) do +5V (przez rezystor), a katodą (jeszcze trudniejsze słowo!) do portu, to będzie tak, jak napisał Zibias.

Pozdrawiam Marcin Stanisz

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required