RTV forum PL | NewsGroups PL

Działanie diody LED z ATMEGA 128 przy zasilaniu 4.5V jak ustawić Fuses?

ATMEGA 128 problemy z startem softu (odpaleniem diody)

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Działanie diody LED z ATMEGA 128 przy zasilaniu 4.5V jak ustawić Fuses?

Dawid
Guest

Fri Sep 08, 2006 4:54 pm   



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

Zibias
Guest

Fri Sep 08, 2006 5:03 pm   



Quote:
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:


Quote:
#include <avr/io.h

int main (void)

{

PORTD|=1<<PD7;
}


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

Dawid
Guest

Fri Sep 08, 2006 5:16 pm   



Brakuje ustawienia kierunku portu D , domyślnie porty ustawiają się ajko
Quote:
wejście.

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

nie pomoglo. W czym szukac dalej?


Zibias
Guest

Fri Sep 08, 2006 5:54 pm   



Użytkownik "Dawid" <safelock@skasuj.cdrinfo.pl> napisał w wiadomości
news:eds8in$6bp$1@atlantis.news.tpi.pl...
Quote:
Brakuje ustawienia kierunku portu D , domyślnie porty ustawiają się ajko
wejście.

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

nie pomoglo. W czym szukac dalej?

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ć)

Michał
Guest

Fri Sep 08, 2006 5:58 pm   



Użytkownik "Dawid" <safelock@skasuj.cdrinfo.pl> napisał w wiadomości
news:eds78d$183$1@atlantis.news.tpi.pl...
Quote:
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

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(;Wink{};
}
Pzdr
Michal

EM
Guest

Fri Sep 08, 2006 6:35 pm   



Quote:
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

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...
--
Pozdr
EM

Gejzero
Guest

Sat Sep 09, 2006 7:09 am   



Użytkownik "EM" <edim123@poczta.onet.pl> napisał w wiadomości
news:edsd38$j33$1@news.onet.pl...
Quote:
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

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...
--
Pozdr
EM

Jak masz oryginalny procek ze sklepu to wyłącz kompatybilność z ATMEGA 103.


Gejzero.

Dawid
Guest

Sat Sep 09, 2006 11:32 am   



Quote:
Co to za zasilacz?


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

Quote:
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...

\
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:/

Dawid
Guest

Sun Sep 10, 2006 11:05 am   



Quote:

int i,j =0;

DDRD = 0b10000000;

while(1)
{
PORTD &= ~(1<<PD7); //ustawia 0 na porcie D7 czyli zapala leda

chyba klega pokickał cos. Na odwrót. Tutaj gaśnie.

Marcin Stanisz
Guest

Sun Sep 10, 2006 2:38 pm   



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

Quote:

int i,j =0;

DDRD = 0b10000000;

while(1)
{
PORTD &= ~(1<<PD7); //ustawia 0 na porcie D7 czyli zapala leda

chyba klega pokickał cos. Na odwrót. Tutaj gaśnie.

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

Pozdrawiam
Marcin Stanisz
--

"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"

elektroda NewsGroups Forum Index - Elektronika Polska - Działanie diody LED z ATMEGA 128 przy zasilaniu 4.5V jak ustawić Fuses?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map