ATMEGA8 konfiguracja


Witam, chcę sobie złożyć mikrokontroler z paroma diodami, taki prosty program na niego wrzucę napisany w bascomie. Czy AVCC muszę podłączyć z VCC, czy wystarczy zasilić pin VCC, czyli pin 7? Atmegę będę programował przez USBAsp. Aby zresetować wszystkie zmienne, w przypadku, gdy np program się zawiesi muszę zewrzeć pin RESET z GND?

Pomóżcie proszę, jestem początkujący w tej dziedzinie...




Portret użytkownika matrix

Re: ATMEGA8 konfiguracja

A nie można zajrzeć do noty katalogowej? Nawet nie trzeba czytać.

Portret użytkownika Chev_Lucas

pomóżcie

O kurczę, fakt. Zupełnie o tym nie pomyślałem :)
Patrzyłem, ale nic pomocnego nie znalazłem. Mógłby ktoś pomóc?

Portret użytkownika mirley

Re: M8

Wszystkie piny zasilania mają być podłączone, to samo dotyczy masy. reset po zwarciu do GND będzie restartował program

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Chev_Lucas

Podłączanie elementów

Mam taki problem, że po złożeniu całego układy czyli Atmega8 + parę diód, układ nie za bardzo reaguje. Domyślam się, że problem tkwi na podłączeniu, ewentualnie małej ingerencji w program...
Diody podłączyłem tak:
portd.0,rezystor,dioda,masa
a przełącznik:
+,przełącznik,pinb.0

Dopiero po odnalezieniu takiej stronki domyślam się że powinienem podłączyć tak jak na umieszczonym na tej witrynie schemacie, czyli jakby odwrócić połączenia i uznać portd.0 za masę dla diody (jak będzie 1 na porcie to dioda zgaśnie), a pinb.0 za zasilanie, czy tak?

Portret użytkownika gosc

dioda

zmiana stanu portu zapali i zgasi diodę.Ale wiadomo musi być wgrany jakiś program który to spowoduje.

Portret użytkownika Chev_Lucas

No ja wiem, program mam

No ja wiem, program mam wgrany. Chodzi mi o to, które podłączenie jest poprawne - to pierwsze, czy z tej stronki?

Portret użytkownika alex

led

może być z taj stronki jast dobrze.Nie zapomnij, że atmega ma ustawione fabrycznie 1Mhz oscylator i jesli przepisaleś sobie jakiś programik i jeśli jest tam

$crystal = 4000000                                          'Deklaracja częstotliwości kwarcu
$regfile "m8def.dat"

lub 8 lub inaczej to też ci to nie będzie działać.

jesli jest to programik z tej strony

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'   Program:   prog001.bas
'   Autor:   W.P.      -     <a href="http://www.elektronika.qs.pl">http://www.elektronika.qs.pl</a>     -    2004
'   Opis:
'       W wyniku działania programu zaświeci się dioda LED podłączona do portu PB0 gdy
'       zostanie naciśnięty przycisk podłączony do PD0, zgaśnie natomiast gdy zostanie
'       naciśnięty przycisk podłączony do PD1
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
$crystal = 1000000                                         ' Deklaracja Czstotliwoci Kwarcu
$regfile "m8def.dat"                                        'Biblioteka Mikrokontrolera
Config Portb = &B11111111                                   ' ustawienie całego Portu B jako wyjścia
       Portb = &B11111111                                   ' stan spoczynkowy wszystkich wyjść ustawiony na 1
Config Portd = &B1111100                                    ' ustawienie bitów PD0 i PD1 jako wejścia reszta Portu D jako wyjścia
       Portd = &B1111111                                    ' stan spoczynkowy wszystkich bitów ustawiony na 1
Do                                                          ' początek nieskończonej pętli
  If Pind.0 = 0 Then Portb.0 = 0                            ' jak przełącznik podłączony do PD0 jest naciśnięty
                                        ' to PB0 jest w stanie niskim i dioda LED się zaświeci
  If Pind.1 = 0 Then Portb.0 = 1                            ' jak przełącznik podłączony do PD1 jest naciśnięty
                                        ' to PB0 jest w stanie wysokim i dioda zgaśnie
Loop                                                        ' gdy nie ma warunku - pętla będzie się wykonywać w nieskończoność
End   

to dopisz sobie to co wyżęj jest dopisane.
 $crystal = 1000000                                         ' Deklaracja Czstotliwoci Kwarcu
$regfile "m8def.dat"                                        'Biblioteka Mikrokontrolera

Portret użytkownika alex

dioda

A przełacznik jak na rysunku do masy i do procesora a nie jak piszesz do +

Portret użytkownika Chev_Lucas

dzięki ;)

dzięki ;)

Portret użytkownika mirley

Re: M8

Zauważ że w programie 2 posty wyżej dioda jest na pinie b0 a przycisk na d.0, a nie tak jak pisałeś na samym początku.

Pracuj na razie z wewnętrznym oscylatorem 1MHZ bez zmian fusebitów. Wtawiłeś kod pod programatorem.... skąd przyszło ci do głowy że to dobry temat (twój M8 ani jego fusebity nie maja związku z programatorem i jego działaniem):

$regfile = "m8def.dat"                                      'najpierw określamy typ proca
$crystal = 12000000                                         'definiujemy z jakim taktowaniem będzie pracował
 
Config Portb = Input                                        'port b  jako wejścia
       Portb = &B00000000                                   'wszędzie stan spoczynkowy-0
Config Portd = Output                                       'pprt d jako wyjścia
       Portd = &B00000000
Config Portc = Output                                       'pprt c jako wyjścia
       Portc = &B0000000
 
Sound Portd.4 , 2 , 15000
 
 
Do
 
 If Pinb.0 = 1 Then
  Toggle Portd.0
  Waitms 1000
 End If
 
Loop                                                        'koniec pętli glownej
 
End

Zmień go zgodnie z powyższymi ustaleniami:

$regfile = "m8def.dat"                                      'najpierw określamy typ proca
$crystal = 1000000                                         'definiujemy z jakim taktowaniem będzie pracował
 
Config Portb = &B00000000                                        'port b  jako wejścia
       Portb = &B11111111                                   'wszędzie stan spoczynkowy-0
Config Portd = &B11111111                                       'pprt d jako wyjścia
       Portd = &B11111111
Config Portc = &B11111111                                       'pprt c jako wyjścia
       Portc = &B11111111
 
Do
 
 If Pinb.0 = 0 Then
  Toggle Portd.0
  Wait 1
 End If
 
Loop                                                        'koniec pętli glownej
 
End

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Chev_Lucas

Dzięki, wszystko działa,

Dzięki, wszystko działa, sorry, że pisałem pod niewłaściwym tematem... Ale jednak chciałbym jakoś zmienić fusebity, żeby atmega korzystał z zewnętrznego kwarcu. Poza tym wiedza ta przyda mi się w przyszłości ;)

Portret użytkownika gosc

fusebity

zmianić można ale zależy jakim programem programujesz. wtedy moge coś podpowiedzieć.
Możesz sprubować MkAvrCalculator jest to darmowy program nakładka na avrdude ogranicza się tylko do ilości procesorów, ale wszystkie
których pewnie będziesz urzywał są obsługiwane.Trzeba tylko pierw w zakładce ustawienia wybrać "avrdude instaluj" . W zakładce "fusy uproszczone
wybrać swoją częstotliwosć i wyżej ustaw,zapis fusebity w zakładce programator AVR.można w nim w innych zakładkach podglądać poszczególne fusebity
i zmieniać manualnie.programik jest prosty i po polsku.Można ściągnąć go tutaj http://www.atnel.pl

Portret użytkownika Chev_Lucas

Dzięki za pomoc, korzystam z

Dzięki za pomoc, korzystam z Bascom-avr.
Chciałem jeszcze spytać, czy da się w prosty sposób, czyli np. poleceniem lcd obsłużyć taki wyświetlacz? Czy potrzebny jest lcd z wierszami i kolumnami np. 24x2? Czy muszę zmienić ustawieniach bascoma rodzaj wyświetlacza?

Portret użytkownika gosc

lcd

wyświetlacz graficzny obsługiwany jest trochę inaczej niż zwykły.

Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 6 

Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2

to takie przykładowe konfiguracje.
proponował bym ci na początek zająć się zwykłym bo sama konfiguracj nie załatwia sprawy, wyświetlanie na graficznym jest bardziej skomplikowane programowo
najlepiej poczytaj sobie tutaj http://www.elportal.pl/pdf/k10/61_017a.pdf

Portret użytkownika gosc

lcd