FAQ | Points | Add... | Recent posts | Search | Register | Log in


Zegar binarny na na mikroprocesorze Atmega8


Post new topic  Reply to topic      Main Page -> Forum Index -> Download, Articles -> Zegar binarny na na mikroprocesorze Atmega8
Author
Message
Lokas
Poziom 7
Poziom 7


Joined: 09 Dec 2006
Posts: 21
Location: Rusiec

Post#31 10 Mar 2007 10:38   

Re: Zegar binarny na Atmega8


Witam, byłby ktoś w stanie wrzucić tutaj gotowy listing programu pod Bascoma? Dokładnie pod ten schemat jaki przedstawił joboo...

Pozdrawiam.

PS: Da mi ktoś punkcik? :D
Back to top
   
joboo
Poziom 12
Poziom 12


Joined: 24 Feb 2004
Posts: 88
Location: Little Hulton, Manchester

Post#32 Post from the author of the topic 12 Mar 2007 16:19   

Re: Zegar binarny na Atmega8


Jak obiecałem wcześniej, zmontowałem ponownie zegar i działa bez zarzutu z rezonatorem kwarcowym jak i pod generatorem.


Quote:
Jak ustawić w bascom atmege żeby działał z generatorem 16mhz ?

Przestaw fusebit na zewnętrzny zegar (0000:external clock)

Code:
'zegar binarny joboo

$regfile = "m8def.DAT"
$crystal = 16000000

Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte , Maxi As Byte
Dim Godzjed As Byte , Godzdzies As Byte , Wyswietl As Byte , Migaj As Bit , Uniwersalny As Byte

Config Portd = 255
        Portd = &B255
Config Portc = &B0000000
        Portc = &B0000000
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output

Config Timer0 = Timer , Prescale = 64
Config Timer1 = Timer , Prescale = 256
Enable Interrupts
Enable Timer0
Enable Timer1
On Timer0 Co4ms
On Timer1 Co1s
Sekjed = 9 : Sekdzies = 5 : Minjed = 9 : Mindzies = 5 : Godzjed = 3 : Godzdzies = 2
Uniwersalny = 6 : Maxi = 100

Do
Loop
End



Co1s:                                                       ' przerwanie co 1 sek
Timer1 = 3036
Incr Sekjed
Toggle Migaj
Return

Co4ms:                                                      'przerwanie co 4 mili sek
Decr Uniwersalny                                            'obsluga wyswietlaczy i przyciskow
If Pinb.3 = 0 And Pinb.2 = 1 Then                           'przycisk s1 nacisniety
   If Uniwersalny = 0 Then
   Uniwersalny = Maxi : Incr Minjed : Sekjed = 0 : Sekdzies = 0
   Maxi = Maxi - 8
   If Maxi < 8 Then Maxi = 8                                'coraz szybciej
   End If
   End If

If Pinb.2 = 0 And Pinb.3 = 1 Then                           'przycisk s2nacisniety
   If Uniwersalny = 0 Then
   Uniwersalny = Maxi : Incr Godzjed
   Maxi = Maxi - 8                                          'coraz szybciej
   If Maxi < 12 Then Maxi = 12
   End If
Else                                                        'oba nacisniete lub zwolnione
If Uniwersalny = 0 Then
Uniwersalny = 6
Maxi = 100
End If
End If

'co 4ms korygujemy stany licznikow
If Sekjed = 10 Then
Sekjed = 0
Incr Sekdzies
End If

If Sekdzies = 6 Then
Sekdzies = 0
Incr Minjed
End If

If Minjed = 10 Then
Minjed = 0
Incr Mindzies
End If

If Mindzies = 6 Then
Mindzies = 0
Incr Godzjed
End If

If Godzjed = 10 Then
Godzjed = 0
Incr Godzdzies
End If

' co 4ms sprawdzamy czy nie jest polnoc jesli tak skracamy cykl

If Godzdzies = 2 And Godzjed = 4 Then
Godzdzies = 0
Godzjed = 0
End If

'wyswietlamy
Wyswietl = Uniwersalny And &B111
Portc = &B0000000

Select Case Wyswietl                                        ' obsluga wyswietlacza

Case 1:                                                     ' wyswietl zawart. licznika jedn min
Portd = Lookup(sekjed , Tabela )
Portc.0 = 1

Case 2:                                                     ' zawart licz. dzies min
Portd = Lookup(sekdzies , Tabela)
Portc.1 = 1

Case 3:                                                     ' jedn godz
Portd = Lookup(minjed , Tabela)
Portc.2 = 1
'Portb.4 = Migaj

Case 4:                                                     ' dzies godz
Portd = Lookup(mindzies , Tabela)
Portc.3 = 1

Case 5:
Portd = Lookup(godzjed , Tabela)
Portc.4 = 1

Case 6:
Portd = Lookup(godzdzies , Tabela)
Portc.5 = 1

End Select
Return

Tabela:
'Data 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9                      'w negatywie
Data 255 , 254 , 253 , 252 , 251 , 250 , 249 , 248 , 247 , 246       ' w pozytywie

Back to top
   
Lokas
Poziom 7
Poziom 7


Joined: 09 Dec 2006
Posts: 21
Location: Rusiec

Post#33 12 Mar 2007 17:19   

Re: Zegar binarny na Atmega8


Wszystko rozumiem poza tym na końcu...

Quote:
Tabela:
'Data 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 'w negatywie
Data 255 , 254 , 253 , 252 , 251 , 250 , 249 , 248 , 247 , 246 ' w pozytywie


Do czego jest ta komenda?


W domu mam rezonator 4MHz, nada sie? Komenda bedzie wtedy wyglądać "$crystal = 4000000"?
Back to top
   
joboo
Poziom 12
Poziom 12


Joined: 24 Feb 2004
Posts: 88
Location: Little Hulton, Manchester

Post#34 Post from the author of the topic 12 Mar 2007 17:51   

Re: Zegar binarny na Atmega8


Quote:
Do czego jest ta komenda?

możesz sobie wybrać w jaki sposób będzie wyświetlana godzina
pozytyw - wszystkie diody wygaszone jedynki zapalone
negatyw - wszystkie diody zapalone jedynki wygaszone

możesz wykożystać 4Mhz kwarc tylko ze musisz jeszcze zmienić dzielnik w timer1 na prescale = 64
Back to top
   
drakerus
Poziom 5
Poziom 5


Joined: 29 Nov 2006
Posts: 11
Location: warszawa

Post#35 12 Mar 2007 22:23   

Re: Zegar binarny na Atmega8


Hi All,
Joboo mam pytanie odnosnie fusebitow - jak maja byc ustawione fuse w bascom-avr zeby poprawnie zaprogramowac atmege?? Ustawialem roznie i jednego procka juz zalatwilem bo go programator nie widzi :(. Najlepiej bylo by gdybys zamiescil print screena dla bascom-avr ver.1.11.8.3 DEMO.
Z gory dzieki,
Pozdro,
Back to top
   
joboo
Poziom 12
Poziom 12


Joined: 24 Feb 2004
Posts: 88
Location: Little Hulton, Manchester

Post#36 Post from the author of the topic 13 Mar 2007 10:03   

Re: Zegar binarny na Atmega8


drakerus - zobacz posty wyżej jeśli chodzi o ustawienie a tą atmege co się teraz nie odzywa podepnij pod zewnętrzny generator pin 9 i ruszy , zmienisz wtedy fusebit i będzie ok
Back to top
   
dimarco81
Poziom 7
Poziom 7


Joined: 18 Dec 2006
Posts: 21

Post#37 13 Mar 2007 10:56   

Re: Zegar binarny na Atmega8


Witam :))

Bardzo fajny zegarek....
planuje coś takiego sobie zrobić

znalazłem kit nord-elektronik

http://www.nordelektronik.com/index.php?uklad=182

też fajny..zastanawiam sie czy kupno, czy wykonać samodzielnie

POZDRAWIAM
Back to top
   
Google

Google Adsense


Post# 13 Mar 2007 10:56   





Back to top
   
drakerus
Poziom 5
Poziom 5


Joined: 29 Nov 2006
Posts: 11
Location: warszawa

Post#38 13 Mar 2007 12:40   

Re: Zegar binarny na Atmega8


joboo - oswiec mnie bo sie zgubilem - na forum znalazlem informacje ze aby atmega pracowala z generatorem kwarcowym 16 MHz to fuse bity trzeba ustawić na zewnętrzy zegar (0000:external clock). Ale ja, tak jak wczesniej pisalem, mam rezonator kwarcowy 16MHz a nie generator - i teraz pytanie czy ustawienia fuse bitow dla rezonatora i generatora kwarcowego sa takie same ??

pozdro

ps. jak juz uda mi sie uruchomic to cudo to mialbym propozycje aby wzbogacic je o budzik, podtrzymanie bateryjne i termometr DS1820 :)
Back to top
   
joboo
Poziom 12
Poziom 12


Joined: 24 Feb 2004
Posts: 88
Location: Little Hulton, Manchester

Post#39 Post from the author of the topic 14 Mar 2007 10:00   

Re: Zegar binarny na Atmega8


Sorka, nie zwróciłem uwagi, pisałem na szybko.
Teraz opiszę jak ustawić Fusebity.
Przypominam, że każde ustawienie zatwierdzimy przyciskiem wirtualnym po prawej stronie o nazwie WriteFS. A więc szukamy linijki o nazwie (gdzie jest ta linijka szukaj w tekście powyżej) Fusebit A987, zaznaczamy ją kursorem i naciskamy przycisk wyboru, który pojawił się po prawej stronie tej linijki.
Fusebity.
1. 0000 = częstotliwość z zewnętrznego generatora,
2. 0001 = oscylator w wewnątrz procesora o częstotliwości 1MHz,
3. 0010 = wewnętrzny oscylator 2MHz,
4. 0011 = wewnętrzny oscylator 4MHz,
5. 0100 = wewnętrzny oscylator 8MHz,
6. 0101 = zewnętrzny oscylator RC 1MHz,
7. 0110 = zewnętrzny oscylator RC 2MHz,
8. 0111 = zewnętrzny oscylator RC 4MHz,
9. 1000 = zewnętrzny oscylator RC 8MHz,
10. 1001 = zewnętrzny kwarc z kondensatorami 2MHz,
11. 1010 = zewnętrzny kwarc z kondensatorami 2-4MHz,
12. 1011 = zewnętrzny kwarc z kondensatorami 4-6MHz,
13. 1100 = zewnętrzny kwarc z kondensatorami 6-8MHz,
14. 1101 = zewnętrzny kwarc z kondensatorami 8-10MHz,
15. 1110 = zewnętrzny kwarc z kondensatorami 10-16MHz.

Z ustawień Fusebitów wynika, że jeśli nie chcemy częstotliwości oscylatora powyżej 8MHz, to możemy nie stosować zewnętrznego kwarcu. Wystarczy ustawić oscylator wewnętrzny. Stosując kwarc zewnętrzy ustawiamy jedną z pozycji zawartej pomiędzy 10 a 15
Back to top
   
dimarco81
Poziom 7
Poziom 7


Joined: 18 Dec 2006
Posts: 21

Post#40 14 Mar 2007 22:14   

Re: Zegar binarny na Atmega8


RE: joboo

Spodobał mi się twój projekt. Postanowiłem sobie zrobić całość w eagle..ale z możliwością zaprojektowania obwodów drukowanych płyty głównej z atmegą i płyty z led-ami. Mam pytanie do Ciebie...chodzi mi o ten generator kwarcowy..jaki zastosować na schemacie i jak go podłączyć...W eagle jest kilka takich, co wybrać w bibliotece. Po za tym proszę opisz mi jak go podłączyć on ma cztery wyprowadzenia. Z tego co wyczytałem muszę go zasilić. Wiem, że jest w obudowie DIP14 - tak napisane w notach ma piny 1,7,8,14

1 - N/C
7 - Ground
8 - Output
14 +5VDC

Z tego na logike wynika żę pod pin 14 podłączam zasilanie + 5V za stabilizatora a pod pin 7 GND. 1, 8 - nie wiem czy się nie mylę podłączam piny atmegi...Czy może, żle rozumuje ???. Czy ten generator 16MHZ ma już w środku kondensatorki..czy one są na zewnątrz.

Bardzo bym prosił o kontakt...e-mail marqe(malpa)poczta.onet.pl
Głownie chodzi mi, czy dobrze rozrysowałem schemat a zwłaszcza podłączenie generatora. Po za tym jak wszytko skoryguje za twoja zgoda chciałbym udostępnić przerobiony projektu twojego autorstwa. Osobiście przerobiłem go na dwa modułu aby można oddzielnie pinami spiąć płytę główną i wyświetlacze LED...również po dokładnej analizie udostępniłbym
bym płytki PCB szerokiemu gronu i fascynatą tej ciekawej konstrukcji

POZDRAWIAM
Back to top
   
Lokas
Poziom 7
Poziom 7


Joined: 09 Dec 2006
Posts: 21
Location: Rusiec

Post#41 15 Mar 2007 16:49   

Re: Zegar binarny na Atmega8


Nie prościej kupić rezonator za złotówke? Albo skożystać z wbudowanego? Atmega8 chyba nie potrzebuje taktowania zewnętrznym stuffem... ...chyba :D
Back to top
   
joboo
Poziom 12
Poziom 12


Joined: 24 Feb 2004
Posts: 88
Location: Little Hulton, Manchester

Post#42 Post from the author of the topic 15 Mar 2007 18:55   

Re: Zegar binarny na Atmega8


dimarco81 nie widze żadnego problemu abyś przerobił mój projekt.
Wyprowadzenia generatora masz poprawne, z wyjście generatora podpinasz tylko pod nogę nr 9 megi8 i oczywiście ustawiasz fusebit na zewnętrzny zegar, nogę nr 10 zostawiasz wolną. Nie montujesz już kondesatorków jak w przypadku rezonatora kwarcowego.

Quote:
Nie prościej kupić rezonator za złotówke? Albo skorzystać z wbudowanego? Atmega8 chyba nie potrzebuje taktowania zewnętrznym stuffem... ...chyba

oczywiście że prościej ale taki generator ma bardzo dużą stabilność pracy co przekłada sie na dokładniejsze odmierzanie czasu :D
Back to top
   
dimarco81
Poziom 7
Poziom 7


Joined: 18 Dec 2006
Posts: 21

Post#43 15 Mar 2007 23:25   

Re: Zegar binarny na Atmega8


Dziękuję joboo za odpowiedź

Muszę poprawić teraz połączenia tego generatora

PS:

Robie sobie również zegar na Atmega8 / widziałem zdjęcia twojego zegara na LED niebieskich/ -- według projektu VSS 2006

POZDRAWIAM

Jak poprawie schemat wyśle Ci wzory PCB ... /skorygujesz wyrazisz opinie
i postaram sie udostępnić /

e-mail: marqe(malpa)poczta.onet.pl

http://obrazki.elektroda.net/77_1173997934.jpg - płyta główna zegara binarnego

http://obrazki.elektroda.net/53_1173998127.jpg - płytka z diodami LED BLUE

http://www.askls.glt.pl/gallery/ - bedzię tego więcej....
Back to top
   
Google

Google Adsense


Post# 15 Mar 2007 23:25   





Back to top
   
Lokas
Poziom 7
Poziom 7


Joined: 09 Dec 2006
Posts: 21
Location: Rusiec

Post#44 17 Mar 2007 20:15   

Re: Zegar binarny na Atmega8


Joboo, mógłbyś mi podać parametry kondensatowrów C5 C4 C3
? :D
Back to top
   
joboo
Poziom 12
Poziom 12


Joined: 24 Feb 2004
Posts: 88
Location: Little Hulton, Manchester

Post#45 Post from the author of the topic 17 Mar 2007 20:54   

Re: Zegar binarny na Atmega8


mogą być 33pf (ceramiki)przy rezonatorze ale nie jest to wartość krytyczna, dwa razy po 100nF i jeden 1000uF
Back to top
   
dimarco81
Poziom 7
Poziom 7


Joined: 18 Dec 2006
Posts: 21

Post#46 18 Mar 2007 21:44   

Re: Zegar binarny na Atmega8


Witam

joboo

proszę podpowiedz mi jak pozmieniać w kodzie żródłowym

mam generator kwarcowy 14.3Mhz - czy może być taki ???

Kawałek kodu:

$regfile = "m8def.DAT"
$crystal = 16000000 / w tym miejscu mam zmienić ?? /

Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte , Maxi As Byte
Dim Godzjed As Byte , Godzdzies As Byte , Wyswietl As Byte , Migaj As Bit , Uniwersalny As Byte

Config Portd = 255
Portd = &B255
Config Portc = &B0000000
Portc = &B0000000
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output

Config Timer0 = Timer , Prescale = 64 / tutaj też ?? /
Config Timer1 = Timer , Prescale = 256
Enable Interrupts
Enable Timer0
Enable Timer1
On Timer0 Co4ms
On Timer1 Co1s
Sekjed = 9 : Sekdzies = 5 : Minjed = 9 : Mindzies = 5 : Godzjed = 3 : Godzdzies = 2
Uniwersalny = 6 : Maxi = 100

Pozdrawiam...

Czy można zastosować wewnętrzy generator Atmegi8 - 8PU - na 8Mhz

i muszą coś zmieniać w kodzie ???

Tak na logike jeśl zastosuje kwarca wew/zew 8Mhz to w kodzie muszę zmienić w linijce:

- $crystal = 16000000 / na $crystal = 8000000
- Config Timer0 = Timer , Prescale = 64 / na Config Timer0 = Timer , Prescale = 2

o to chodzi ???

a jak będzie z generatorem 14.3 Mhz ??




POZDRAWIAM
Back to top
   
drakerus
Poziom 5
Poziom 5


Joined: 29 Nov 2006
Posts: 11
Location: warszawa

Post#47 19 Mar 2007 14:11   

Re: Zegar binarny na Atmega8


Hi All,

Ciagle mam problem z uruchominiem tego zegara. Na poczatku myslalem ze cos sknocilem jak polutowalem pajaka na plytce uniwersalnej, w zwiazku z tym zrobilem w protelu pcb (pdfy do termotransferu w zalaczniku), potem myslalem ze mam walniete elementy ( zakupilem drugi komplet - tak sobie wymysllilem ze niebieskie ledy beda ok - i to jest jedna z dwoch zmian jakich dokonalem w stosunku do orginalu, druga jest taka, ze zamiast generatora mam kwarc 16 MHz i dwa kondensatory 33pF - tak tez powino dzialac wg slow joboo). Poniewaz jak sie wydaje problem nie jest ani z pcb ani z elementami - to musi dotyczyc albo programu albo sposobu programowania atmegi. No i teraz z moich obserawcji wynika ze:

1. Nie ma znaczenia czy programuje atmege orginalnym wsadem za pomoca ponyprog2000, czy tez kompiluje zrodlo w bacom-avr i laduje do megi tak skompilowany program z poziomu bacom-avr, i tak urzadzenie nie dziala.
2. Podczas symulacji programu w bascom-avr w oknie hardware symulation, diody ktore ilustruja stany portrow migaja tak jak powinny tj, dla portu c zapalaja sie i gasna kolejno diody pc6 - pc0 (sterowanie kolumnami), natomiast dla portu d zapalaja sie diody zgodnie z tym co akurat mam byc wyswietalnie binarnie.

Zgodnie z zaleceniem joboo dla kwarcu 16 Mhz takiego jak posiadam fusebity dla zegara w bascom-avr wybieram 1110 (ostatnia pozycje z listy rozwijalnej) i laduje do atmegi za pomoca przycisku WRITE FS.

Teraz mam kilka pytan:
1. Pierwsze odnosnie ustawiien fusbitow czy poza zmiana ustawien dla zegara trzeba cos jeszcze zmienic??
2. Analizujac kod porogramu zauwazylem dwie rzeczy ktore wg mnie nie sa ok (poniewaz jestem poczatkujacy w programowaniu avrow moge sie mylic, a jesli tak to prosze mnie poprawic):

Code:
 
   Config Portd = 255
   Portd = &B255
   Config Portc = &B0000000
   Portc = &B0000000
   Config Portb.2 = Output
   Config Portb.3 = Output
   Config Portb.4 = Output


Z tego co widac powyzej Portb, a w zasadzie linie 2, 3 i 4 tego portu zadeklarowane sa jako wyjsciowe, na schemacie ideowym linie 2 i 3 podpiete sa do przelacznikow ustawiajacych czas - z tego co mi wiadomo to, aby atmega mogla czytac stan przelacznikow to linie do ktorych ma je podpiete musza byc ustawione jako input. Czy w zwiazku z tym portb jest w programie dobrze zadeklarowany ??
Teraz aby mozna bylo sterowac jakims urzadzeniem zewnetrznym podpietym do atmegi to trzeba port/linie portu do ktorego jest podpiete takie urzadzenie nalezy ustawic jako output. I tu tez mam pytanie czy definicja portow c i d w programie sa wystarczajace ?? Czy nie powinno byc jeszcze takiej deklaracji:
Code:

Config Portc = Output
Config Portd = Output


Dla sysmulacji w bacom-avr nie ma znaczenia jak sa poustawiane porty za pomoca instrukcji config (testowalem rozne wartosci i ustawinia portow b i d i za kazdym razem sysmulacja ladnie dzialala) ale po wgraniu do atmegi nie chce dzialac.

Byc moze moje pytania sa trywialne ale podobno kto pyta nie bladzi wiec ... pytam.

Pozdrawiam



binary_clock_protel.zip
 Description:
 n/a

Download
 Filename:  binary_clock_protel.zip
 Contents:  binary_clock_protel , Protel S...tic.pdf , Multilay...int.pdf , BottomLayer.pdf , Top Silk...lay.pdf
See all...
 Filesize:  125.91 KB
 Punkty:  0.00

Back to top
   
curek
Poziom 14
Poziom 14


Joined: 10 Mar 2005
Posts: 167
Location: Gdynia

Post#48 22 Mar 2007 00:41   

Re: Zegar binarny na Atmega8


A moglbym prosic o hexa dla wersji ze zwyklym kwarcem (16mhz i te ceramiki). Bo kurde nie moge dac sobie rady z tym :|
Back to top
   
Thor1987
Poziom 11
Poziom 11


Joined: 09 Jan 2006
Posts: 65
Location: Rybnik

Post#49 23 Mar 2007 20:08   

Re: Zegar binarny na Atmega8


Ja mam taki sam problem zrobilem wszystko dobrze wgralem programik i nic nie dziala nie chce ATmega8 Dzialac z Tym programikiem ;/;/;/



Pozdrawiam Bartek
Back to top
   
Lokas
Poziom 7
Poziom 7


Joined: 09 Dec 2006
Posts: 21
Location: Rusiec

Post#50 28 Mar 2007 17:06   

Re: Zegar binarny na Atmega8


A teraz moje głupie pytanie: czym zasilać układ? Można bateryjnie? Jakich baterii użyć? Ile na tych bateriach zegarek pochodzi?
Back to top
   
drakerus
Poziom 5
Poziom 5


Joined: 29 Nov 2006
Posts: 11
Location: warszawa

Post#51 03 Apr 2007 14:13   

Re: Zegar binarny na Atmega8


Hi All,
Posiedzialem troche nad tym ukladem poszukalem troche w necie i moge powiedziec ze udalo mi sie w koncu uruchomic ten zegar, ale jest jedna rzecz ktora psuje caly efekt - a mianowice kolumna wyswietlajaca jednostki minut nie wygasza calkowicie diod, efekt jest taki, ze nawet gdy koluma jednostek minut powinna pokazywac 0 (czyli wszystkie diody wygaszowne) to diody w tej kolumnie delikatenie swieca w rytm zmian kolumn jednostek sekund :( - probowalem juz roznych rzeczy (zmienialem rezystory, zmienialem program) i nic nie pomaga. Ma ktos jakis pomysl o co chodzi ?? I jeszcze jedno pytanie w jaki sposob mozna zmienic intensywnosc swiecenia LED-ow w tym ukladzie (moje diody strasznie jasno swieca (wiem wiem mozna zamiast niebieskich zastosowac jakies inne ktore swieca slabiej ale nie o to chodzi) - zmienialem rezystory sterujace baza tranzystrow i to nic nie dalo ??
A teraz kilka inforamcji ktore moga sie przydac do uruchomienia w/w układu:
Ponizej kod programu oraz wsad ktory dziala u mnie w zegarku (zgodny ze schematem ideowym od joboo - pcb w moim poprzednim poscie). Program ten to modyfiakcja programu z ksiazki "Mikroprocesory dla poczatkujacych" dostosowujaca go procesora Atmega8 w orginale byl ATTiny2313.
Code:

'S1 - godziny
'S2 - minuty

$regfile = "m8def.DAT"
$crystal = 4000000

Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte , Maxi As Byte
Dim , Godzjed As Byte , Godzdzies As Byte , Mux As Byte , Uniwers As Byte
Config Portd = 255 : Portd = &B255 : Config Portc = &B11111111 : Portc = &B11111111
Config Portb.2 = Input
        Portb.2 = 1
Config Portb.3 = Input
        Portb.3 = 1
Config Timer0 = Timer , Prescale = 64
Config Timer1 = Timer , Prescale = 64
Enable Interrupts : Enable Timer0 : Enable Timer1
On Timer0 Co4ms : On Timer1 Co1s
Sekjed = 5 : Sekdzies = 5 : Minjed = 1 : Mindzies = 0 : Godzjed = 1 : Godzdzies = 1
Uniwers = 6
Maxi = 100

Do
Loop
End

Co1s:
Timer1 = 3036
Incr Sekjed
Return

Co4ms:
Decr Uniwers

If Pinb.3 = 0 And Pinb.2 = 1 Then
   If Uniwers = 0 Then
      Uniwers = Maxi : Incr Minjed : Sekjed = 0 : Sekdzies = 0
      Maxi = Maxi - 8 : If Maxi < 8 Then Maxi = 8
End If : End If
If Pinb.2 = 0 And Pinb.3 = 1 Then
   If Uniwers = 0 Then
      Uniwers = Maxi : Incr Godzjed
      Maxi = Maxi - 8 : If Maxi < 12 Then Maxi = 12
End If : Else
   If Uniwers = 0 Then
      Uniwers = 6 : Maxi = 100
   End If : End If
If Sekjed = 10 Then
   Sekjed = 0 : Incr Sekdzies
End If
If Sekdzies = 6 Then
   Sekdzies = 0 : Incr Minjed
End If
If Minjed = 10 Then
   Minjed = 0 : Incr Mindzies
End If
If Mindzies = 6 Then
   Mindzies = 0 : Incr Godzjed
End If
If Godzjed = 10 Then
   Godzjed = 0 : Incr Godzdzies
End If
If Godzdzies = 2 And Godzjed = 4 Then
   Godzdzies = 0 : Godzjed = 0
End If

Mux = Uniwers And &B111 : Portc = &B111111
Select Case Mux
Case 1:
   Portd = Lookup(sekjed , Tabela) : Portc.0 = 0
Case 2:
   Portd = Lookup(sekdzies , Tabela) : Portc.1 = 0
Case 3:
   Portd = Lookup(minjed , Tabela) : Portc.2 = 0
Case 4:
   Portd = Lookup(mindzies , Tabela) : Portc.3 = 0
Case 5:
   Portd = Lookup(godzjed , Tabela) : Portc.4 = 0
Case 6:
   Portd = Lookup(godzdzies , Tabela) : Portc.5 = 0
End Select : Return
Tabela:

 Data 255 , 254 , 253 , 252 , 251 , 250 , 249 , 248 , 247 , 246       'pozytyw
 'Data 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9                           'negatyw



Z moich obserawcji wynika ze stosowanie innego kwarcu niz 4MHz spowoduje ze program nie bedzie dzialal. Przy kwarcu 16MHz fuse bity ustawionych na 1110 oraz odpowiednim przekonfigurowaniu preskalera timerow wyswietalna jest caly czas wstepnie zdefiniowana w programie godzina. Jest tez pozytywna informacja - nie trzeba stosowac kwarcu mozna odpalic na wewnetrznym ukladzie RC o czestotliowsci 4MHz oczywiscie stabilnosc takiego zegara bedzie gorsza niz z kwarcem.

To narazie tyle.
Pozdro.



wsad_drakerus.rar
 Description:
 n/a

Download
 Filename:  wsad_drakerus.rar
 Contents:  ZEGAR_BI..._OK.HEX , zegar_bi..._ok.bas , ZEGAR_BI..._OK.BIN , wsad_drakerus
See all...
 Filesize:  2.65 KB
 Punkty:  0.00

Back to top
   
Lokas
Poziom 7
Poziom 7


Joined: 09 Dec 2006
Posts: 21
Location: Rusiec

Post#52 08 Apr 2007 10:34   

Re: Zegar binarny na Atmega8


Mi tradycyjnie nie działa :) Co mam zrobić żeby BascomAVR widział moją atmege?

PS: U mnie bascom wykrywa 2 nieprawidłowości. (totalnie nie wiem dlaczego):
Zegar binarny na na mikroprocesorze Atmega8

Po wciśnięciu F4 wyskakują mi na ekran takie komunikaty:
Zegar binarny na na mikroprocesorze Atmega8
następnie:
Zegar binarny na na mikroprocesorze Atmega8
(to chyba objawy nie-widzenia przez program mikrokontrolera...)

Weryfikacja kończy sie tak:
Zegar binarny na na mikroprocesorze Atmega8


Na zajęciach w szkole wyglądało to prościej :/ Instalowaliśmy byle jaką drukarke, i z komunikają nie było już problemów :/

Pomocy :D
Back to top
   
Google

Google Adsense


Post# 08 Apr 2007 10:34   





Back to top
   
endrius85
Poziom 9
Poziom 9


Joined: 04 Feb 2007
Posts: 34
Location: Wrocław/Ostrów Wlkp.

Post#53 08 Apr 2007 18:06   

Re: Zegar binarny na Atmega8


witam
mam takie pytanko,
tez chce sie zabrac za taki zegar, ale jestem poczatkujacy :( wiec ciezko mi to wszystko zrozumiec. Myslalem zeby taki zegar zrobic ale dzialajacy na ogniwo sloneczne (oczywiscie kilka polaczonych ze soba), jak myslicie bedzie to dzialac??? Czy mozna zbudowac troche prosciej caly uklad ???
z gory dzieki :)
Back to top
   
drakerus
Poziom 5
Poziom 5


Joined: 29 Nov 2006
Posts: 11
Location: warszawa

Post#54 14 Apr 2007 15:11   

Re: Zegar binarny na Atmega8


Hi All,
Poniewaz udalo mi sie uruchomic w koncu to urzadzenie ( a przy okazji troche sie z nim pomeczylem ) byc moze moje infromacje beda pomocne:
1) Lokas - komunikaty bledu ktore sie tobie pojawily swiadcza o tym ze, nie masz w kodzie programu na poczatku takiego wpisu
Code:

$regfile = "m8def.DAT"


i jednoczesnie ustawienia twojego kompilatora wskazuja inny typ procka niz atmega8. Jesli jednak masza ta definicje w kodzie programu lub odpowiedni procek jest ustawiony w konfiguracji bascoma to byc moze twoja wersja bascoma nie jest najnowasza. Postaraj sie sciagnac i zainstalowac nowa wersje bascoma.
Jesli chodzi o problemy z komunikacja to nie bardzo rozumiem co ma drukarka ( a wlasciwie instalowanie byle jakiej drukarki ) do programowania?? To co jest Tobie potrzebne do programowania tego procka to jakis programator (ja uzywam STK200/300) i odpowiednia konfigracja bascoma-avr ( w ustawieniach programu trzeba wybrac posiadany programator), no i oczywiscie musisz poprawnie podlaczyc wszystkie sygnaly z programatora do procka ( plus zasilania, minus, SCK, RESET, MISO, MOSI) a jak to juz bedziesz mial to musi smigac. Czasem zadarza sie ze jest problem z kwarcem ale i z tym tez mozna dac sobie rade - napewno jesli masz nowa atmege8 to pracuje ona na wewnetrznym 1MHz zegarze.
2) Endrius85 - to ze jestes poczatkujacy w niczym nie przeszkadza ( tez jestem poczatkujacy - pytanie tylko czy wystarczy ci checi i cierpliwosci zeby ewentualne problemy rozwiazac). Zegarek ten wbrew pozorom nie jest specjalnie skomplikowany ( czytaj bardziej prosto byc nie moze - przynajmniej jesli chodzi o hardware). Zasilanie z ogniw slonecznych moze byc pytanie tylko czy bedzie Ci sie chcialo zawsze o wschodzie slonca ustawiac to cudo?? Bez podtrzymania bateryjnego nie ma to sensu. I tu do rozwazenia dwie mozliwosci:
1. Ktos na tym forum pisal ze jedna z firm robi kity z zegarem binarnym ( i z tego co wiem to posiada on funkcje podtrzymania bateryjnego - no i oczywiscie nie bedziesz sie musial stresowac programowaniem, a nawet jak nie zadziala to wyslesz im niedzialajacy kit a oni odesla ci sprawny ).
W tym wypaku kosz urzadzenia bedzie wynosil ok 70 PLN + ogniwa sloneczne.
2. Mozesz zrobic zegar z tego forum odpowiednio przerabiajac uklad i program tak aby podtrzymanie bateryjne dzialalo. Koszt elementow ok 30 PLN + ogniwa slonecze no i oczywiscie ogromna satysfakcja ze zrobiles cos sam. Jesli jestes zainteresowany zmodyfikowana wersja programu i ukladu o podtrzymanie bateryjne to daj znac - uklad i program juz zrobilem i nawet dziala :) )

No to bylo by na tyle.
Pozdro.
Back to top
   
endrius85
Poziom 9
Poziom 9


Joined: 04 Feb 2007
Posts: 34
Location: Wrocław/Ostrów Wlkp.

Post#55 14 Apr 2007 15:55   

Re: Zegar binarny na Atmega8


witam
nizej podalem link do firmy o ktorej pisales odnosnie tego zestawu
http://www.nordelektronik.com/index.php?uklad=182
a odnosnie zasilania slonecznego to oczywiscie trzeba dac podtrzymanie bo kto bedzie codziennie rano wstawal, moj pomyls jest taki zeby w dzien bylo zasilanie sloneczne a w nocy z baterii ale paluszkow. Dlatego trzeba by troszke "odchudzic" uklad, moze diody od telefonu beda dobre ??? Zegarek z ogniw na paluszki moglby przechodzic albo godzinowo (zmiana programu) lub przez wlacznik zmierzchowy (ja preferuje to 2) wtedy nawet przy malym naslonecznieniu nie utracimy godziny. Przeszukalem google i znalalem ciekawe schematy, nie jestem do konca pewien ale ten 1(binary.jpg) chyba nie potrzebuje programu, jak zle pisze to mnie poprawcie



binary.jpg
 Description:
0.00
 Filesize:  113.95 KB

binary.jpg



p3layout.jpg
 Description:
0.00
 Filesize:  81.55 KB

p3layout.jpg


Back to top
   
Lokas
Poziom 7
Poziom 7


Joined: 09 Dec 2006
Posts: 21
Location: Rusiec

Post#56 14 Apr 2007 16:00   

Re: Zegar binarny na Atmega8


Dzięki za odpowiedź :D

Mógłbyś mi przesłać schemat takiego programatora? Ja niby wykonałem najbardziej prymitywny jaki może być, zasilany z czerwonego i czarnego kabelka zasilacza komputerowego :P

Instalowanie drukarki, chyba "urdażnia" port LPT, tak musieliśmy robić na zajęciach w szkole, inaczej komputer nie komunikował sie z prockiem (Pracowaliśmy na ATTINY, ale na Atmadze raczej winno być podobnie)

Dzięki z góry, czekam na schemat programatora :)
Back to top
   
drakerus
Poziom 5
Poziom 5


Joined: 29 Nov 2006
Posts: 11
Location: warszawa

Post#57 16 Apr 2007 14:14   

Re: Zegar binarny na Atmega8


Hi ALL,

Dwie sprawy pierwsza odnoscnie zasilania z ogniw slonecznych, druga odnosnie programatora:

1. Andrius85 w pierwszym poscie pisales ze chcialbys zrobic taki zegar i pytales czy nie dalo by sie uproscic ukladu - tak jak pisalem wczesniej prosciej chyba nie mozna. Uklad z tego forum trzeba bylo by zmodyfikowac o dodatkowy tranzystor, dwa rezystory i dwie diody aby dodac podtrzymanie bateryjne, ale i tak uklad bylby prostszy niz ten ktorego schemat zamiesciles. Masz racje ze uklad z tego schematu nie potrzebuje programu ( podobny uklad byl opisany w EDW jako zegar predatora). Wracajac do sprawy zasilania nie ma potrzeby stosowania ukladu zmierzchowego - wystarczy zeby napiecie z ogniw slonecznych bylo wieksze niz to z podtrzymania bateryjnego, cala reszte zalatwi program. Co masz na mysli mowiac o odchudzaniu ukladu ?? Chodzi o zmniejszenie gabartytow czy obnizenie poboru pradu??
2. Lokas ja swoj programator kupilem na allegro (bylo taniej niz robic samemu). Tak czy inaczej ponizej link do strony ze schematem programatora (najpostszego i zaawansowanego) dodatkowo jeszcze jakis software:

http://www.amwaw.edu.pl/~adybkows/elka/ispprog.html

W avt mozna zamowic albo pcb albo zmontowany programator. Jesli masz zamiar pobawic sie dluzej programowaniem avr-ow to kup albo poskladaj jakis porzadny programator - jesli masz zamiar zaprogramowac jeden lub dwa avry to wystarczy ci schemat kabelka z linka powyzej.

Pozdro.
Back to top
   
endrius85
Poziom 9
Poziom 9


Joined: 04 Feb 2007
Posts: 34
Location: Wrocław/Ostrów Wlkp.

Post#58 16 Apr 2007 17:50   

Re: Zegar binarny na Atmega8


drakerus, mowiac o odchudzeniu mialem na mysli zmniejszenie poboru pradu, tak zeby ogniwa daly rade (wiadomo sprawnosc itp) i zeby co miesiac nie kupowac nowych baterii :)
pozdrawiam
Back to top
   
curek
Poziom 14
Poziom 14


Joined: 10 Mar 2005
Posts: 167
Location: Gdynia

Post#59 16 Apr 2007 21:20   

Re: Zegar binarny na Atmega8


ja dalem trafko 6V 220mA Zaplacilem za nie cale 5 zeta :P Mierzylem prad i uklad pobiera w porywach do 30mA tak wiec moim zdaniem ogniwa uciagna to ;)
Back to top
   
endrius85
Poziom 9
Poziom 9


Joined: 04 Feb 2007
Posts: 34
Location: Wrocław/Ostrów Wlkp.

Post#60 16 Apr 2007 22:50   

Re: Zegar binarny na Atmega8


o to juz milo, a teraz tak mysle, ze mozna by ten zegarek tak zrobic aby w ogole nie byl zasilany z 220V :), tylko ogniwa i baterie (paluszki i podtrzymanie) to by bylo cosik :P
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Download, Articles -> Zegar binarny na na mikroprocesorze Atmega8
Statement for Wykop Statement for Facebook Statement for Delicious Statement for Digg Statement for Google Statement for Twitter Statement for Blip
Page 2 of 6 Go to page Previous  1, 2, 3, 4, 5, 6  Next
Similar topics
Zegar Binarny v2 by HubertFab (36)
Zegar binarny Gigantora (53)
zegar binarny na ledach (1)
Zegar binarny (22)
Zegar binarny (35)
Zegar binarny (20)
zegar binarny (8)
Zegar/kalendarz/termometr binarny (17)
Zegar binarny na AtTiny 2313 (21)

Page generation time: 0.162 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed