ATmega8

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
peegy
-
Posty: 27
Rejestracja: 09 paź 2005, 0:38

ATmega8

Post autor: peegy » 18 paź 2005, 18:41

witam
mam bardzo wielki problem z zaprogramowaniem ATmegi8 w bascomie. Otz programator widzi procesor moge wgrac do niego program ale sek w tym ze nie dziala
juz probowalem najprostrze prgramy pisac typu set port wait5 reset port ale procesor poprostu nie reaguje (nie pracuje) stanu portu nie zmienia sie
czy moglby ktos pomoc?
procesor ma podlaczony reset za pomoca rezystora i kondensatora oraz kwarc 8Mhz z kondensatorami do masy oraz zasilanie

czy moze tkwi przyczyna w tym jak podaly mi pewne zrodla ze ATmege 8 aby taktowac kwarcem trzba cos ustawic by byl widoczny kwarc zewnetrzny? oraz niby jakos cos z resetem?

czy moze jakies ustawienia w bascomie?

z gory big dzieki za wiesci

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 18 paź 2005, 19:17

A co ustawiłeś na początek w BASCOM AVR?? Jakim napięciem zasilasz procesor?? I pokaż program, który próbowałeś wgrać do ATmega8.

peegy
-
Posty: 27
Rejestracja: 09 paź 2005, 0:38

Post autor: peegy » 18 paź 2005, 20:03

program wyglada nastepujaco:

Config Pinb.0 = Output
Do

Set Portb.0
Wait 5
Reset Portb.0
Loop
End

zasilam procek napieciem 5 V

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 18 paź 2005, 20:11

Jeden mały problem za bardzo nie wiem co on ma wykonać!! Moim zdaniem nic nie robi bo program źle napisałeś. No bo ustawia port.0, a po 5 sek. resetuje go. To powiedz mi co to ma robić??

[ Dodano: 18-10-2005, 21:16 ]
Może spróbuj pod portb.0 podłączyć diode LED czerwoną. Program napisz taki:
  • Config Portb = 255
    Do
    Portb.0 = 1
    Wait 1
    Portb.0 = 0
    Loop
    End
Wtedy powinno się coś dziać!

[ Dodano: 18-10-2005, 21:21 ]
Jeszcze jedno zamiast od razu wprowadzać program do procka i tracić pamięć, naciśnij klawisz F2 włączy Ci się symulator programu! Możesz tam sprawdzić jak proc będzie działać!

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 18 paź 2005, 20:46

Oj, tranzystor ... ehh. Popełniłeś ten sam błąd co przedmówca :!:
peegy - wywal ten config, podłącz diodę od PLUSA do pinu procka i dodaj drugiego waita po Reset Portb.0 :idea: Przecież twój portb.0 sie resetuje i od razu znowu ustawia :!: To czy jest włączony wewnętrzny generator zegarowy przy takim programie nie ma znaczenia.

peegy
-
Posty: 27
Rejestracja: 09 paź 2005, 0:38

Post autor: peegy » 18 paź 2005, 21:14

i tak nie dziala procek ani drgnie...
a co do symulacji to przeprowadzam
ogarnia mnie juz biala goraczka :(

sadze ze cos nie tak z tym kwarcem?

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 19 paź 2005, 18:14

A masz pewność że kupiłeś procka sprawnego??

peegy
-
Posty: 27
Rejestracja: 09 paź 2005, 0:38

Post autor: peegy » 19 paź 2005, 22:14

co do sprawnego procka jestem pewien

od odob dowiedzilem sie ze trzba przestawic i pokombinowac cos z fuse bits
wiec bede kombinowal moze sie uda odpalic tylko ze narazie nie mam pojecia coprzestawic moze kots juz sie tym bawil i doradzi :?:

juz cala osla lakie przerobilem a tam nic o fuse bits nie ma wspomniane

K_o_n_r_a_d
Użytkownik
Posty: 123
Rejestracja: 29 lip 2005, 10:21
Lokalizacja: Lublin

Post autor: K_o_n_r_a_d » 19 paź 2005, 22:54

Zacznijmy wszystko od początku. :)
Nowy ATmega8 ma ustawiony, jako sygnał zegarowy, wewnętrzny generator o częstotliwości 1MHz. Na początek nic nie zmieniaj. Wrzuć taki program:

Kod: Zaznacz cały

$crystal = 1000000
Config Pinb = 255

Do
Portb=255
Wait 1
Portb=0
wait 1
Loop
End 
Poodłącz diodę pod dowolny pin z PortuB i przez rezystor (np. 1k) do masy. Dioda powinna migać z częstotliwością 0,5Hz. Napisz czy działa.
Uwaga! Dla tych co nie wiedzą: $crystal = 1000000, nie ustawia generatora na 1MHz tylko powiadamia kompilator o tym, jakim zegarem jest taktowany uK. W tym przypadku wpisując 4MHz zamiast 1MHz wydłużymy czas oczekiwania na zmianę stanu PortuB *4 (co innego gdy mamy w programie inne polecenia).
Pozdrawiam.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 19 paź 2005, 22:58

peegy pisze:co do sprawnego procka jestem pewien

od odob dowiedzilem sie ze trzba przestawic i pokombinowac cos z fuse bits
wiec bede kombinowal moze sie uda odpalic tylko ze narazie nie mam pojecia coprzestawic moze kots juz sie tym bawil i doradzi :?:

juz cala osla lakie przerobilem a tam nic o fuse bits nie ma wspomniane
Co prawda to dotyczy innego procka, ale będziesz miał pogląd na sprawę: http://www.edw.com.pl/ea/avr/avr-fuse.pdf
Przy okazji chcę zwrócić uwagę, że grzebanie w fusach determunujących sposób taktowania procka należy zrobić z uwagą, bo można sobie zablokować dostęp do procka. Oczywiście naprawa tak "popsutego" procka jest możliwa, ale zawsze to kłopot, więc z uwagą ...

peegy
-
Posty: 27
Rejestracja: 09 paź 2005, 0:38

Post autor: peegy » 20 paź 2005, 12:44

po kolejnej probie procka zaprogramowalem ale bez rezultatow
rowniez nie dziala...tak jak by byl martwy :(

juz dostaje szalu koles wymyslil sobie aby projekt byl na tym procku :(
kupilem 2 procek taki sam i rowniez zachowuje sie tak samo :(

nie wiem juz co zle robie procek podlaczone ma:
VCC do 7
GND do 8 i 22
oraz reset 1 podciagnieta do VCC
probowalem rowniez zostawic nie podlaczony reset

nic tylko mozna rwac wlosy........... :(

Awatar użytkownika
Tranzystor
Użytkownik
Posty: 889
Rejestracja: 28 sie 2005, 19:19
Lokalizacja: Świętochłowice
Kontakt:

Post autor: Tranzystor » 20 paź 2005, 14:21

To podłącz do niego wyświetl;acz LCD do tych portów co w Oślej Łączce i każ mu coś wyświetlić. Jak nadal nie będzie działać to pomyślimy.

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 20 paź 2005, 21:07

Jeśli LED nie działa to LCD tym bardziej...
Spróbuj wywalic układ resetu, jest niepotrzebny...

peegy
-
Posty: 27
Rejestracja: 09 paź 2005, 0:38

Post autor: peegy » 20 paź 2005, 21:26

:( reset odlaczylem slyszalem ze tez mozna go zmienic podobnie jak fusbity :?:
to moze tam szukac jakos resetu bo moze on ciagle jest w resecie :?:

bo juz innych szans nie widze


zalamany :(

[ Dodano: 20-10-2005, 22:38 ]
szperajac w necie spotkalem sie z :

W Atmegach dysponujących interfejsem JTAG jest on domyślnie włączony. Powoduje to zablokowanie zwykłych funkcji I/O odpowiednich pinów - jeśli chcemy z nich korzystać musimy wyłączyć (ustawić 1) fuse JTAGEN albo z poziomu programu sterować bitem JTD w rejestrze MCUCSR

czy moze w tym tkwi problem :?:
moze ktos cos w tej kwest doradzic :?:
gdzie to szukac w bascomie :?:

sorki ze tyle pytan zadaje ale juz popadam w dolek

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 20 paź 2005, 21:43

W medze8 JTAGu nie stwierdzono...

ODPOWIEDZ