Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 sty 2025, o 03:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 27 cze 2013, o 20:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2013
Posty: 104
Pomógł: 0

Witam.
Chciałem sobie zrobić prosty zegarek. Napisałem kod, podłączyłem wszystko na mojej płytce testowej i niby działa, ale ... Za szybko odmierza czas. 1 sekunda trwa tutaj dużo krócej. W ciągu 1 minuty w rzeczywistości, naliczy 170 sekund.

ATmega ma ustawiony fusebit na wewnętrzny oscylator 8Mhz, do XTAL1 i XTAL2 mam podłączony kwarc zegarkowy.

Kod wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Co może być tego przyczyną? Próbowałem różne kwarce.
Proszę o pomoc i pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2013, o 20:49 
Offline
Użytkownik

Dołączył(a): 06 paź 2011
Posty: 92
Lokalizacja: Kraków
Pomógł: 2

Nie znam bascoma ale jak działasz na wewnętrznym oscylatorze to dlaczego podłączasz kwarc zegarkowy pod XTAL? Przecież to Ci nic nie da...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2013, o 20:56 
Offline
Użytkownik

Dołączył(a): 02 maja 2012
Posty: 112
Pomógł: 10

pavel0910 napisał(a):
ATmega ma ustawiony fusebit na wewnętrzny oscylator 8Mhz, do XTAL1 i XTAL2 mam podłączony kwarc zegarkowy.
pavel0910 napisał(a):
Próbowałem różne kwarce.
Jeśli ustawiłeś na wewnętrzny oscylator to mikrokontroler korzysta z tego źródła taktowania (jest więc ok. 8.0MHz). Wewnętrzny oscylator nie jest dobry do zastosowań "zegarkowych".
Ustaw zewnętrzne taktowanie, wtedy będziesz widział efekt podłączania różnych rezonatorów kwarcowych.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 14:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2013
Posty: 104
Pomógł: 0

Wgrałem do ATmegi taki kod, z książki Pana Wiązani.

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zegarek działa, ale dalej tak szybko odmierza czas. Kwarc na pewno zegarkowy, kupiłem nowy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 16:50 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Ja ze swej strony zaproponowałbym zastosowanie DS1307 albo PCF8583 zdaje się.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 17:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2013
Posty: 104
Pomógł: 0

Dołożyłem kondensatory 33pF do kwarcu i zegarek ruszył normalnie. Teraz muszę włączyć go na dłużej i sprawdzić czy odmierza czas dokładnie.

Nie wiem jak zrobić jakieś fajne menu do ustawiania godziny za pomocą 3 przycisków. Macie jakiś pomysł? Da się zrobić tak, aby pierwszym przyciskiem wybrać ustawienie godziny i żeby wtedy godzina mrugała? Z minutami i sekundami tak samo.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 17:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lut 2013
Posty: 223
Zbananowany użytkownik

Pomógł: 21

No dla 3 przycisków (1,2,3) proponuje tak:
Długie przytrzymanie 3 wchodzi w tryb programowania
Klikając 2 przełączasz się między godzinami a minutami (wybrana aktualnie wartość mruga).
Klikając 1 zwiększasz wybraną wartość.
Następne kliknięcie w 3 akceptuje dokonane zmiany, brak kliknięć przez ~15 sekund wychodzi bez zmian.

_________________
Nie pisz komentarzy - dobry kod komentuje się sam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 17:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2013
Posty: 104
Pomógł: 0

Za bardzo skomplikowane jak na moją znajomość bascoma. Myślałem raczej żeby przyciskiem 1 wybierać czy ustawiam godziny, minuty czy sekundy, a przyciskami 1 i 2 ustawiać - góra, dół. Tylko nie wiem jak zrobić żeby podczas ustawiania np minut, na wyświetlaczu było widać co się ustawia. Np przez miganie minut, albo wyświetlanie w negatywie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 cze 2013, o 19:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 lut 2013
Posty: 223
Zbananowany użytkownik

Pomógł: 21

No to równie dobrze mogą migać te wartości których nie ustawiasz ;)

_________________
Nie pisz komentarzy - dobry kod komentuje się sam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO