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



Teraz jest 24 kwi 2025, o 13:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 29 paź 2013, o 10:54 
Offline
Użytkownik

Dołączył(a): 19 gru 2012
Posty: 712
Lokalizacja: Opole
Pomógł: 23

No to może w takim wypadku posłuż się zegarem zewnętrznym zegarem RTC


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 paź 2013, o 20:06 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 771
Pomógł: 40

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



To tak na szybko.Kwarc ustaw na 8mhz łatwiej to podzielić. Dokładność możesz sprawdzić sobie stoperem,albo w symulatorze.Jak to zrobić to może powie ktoś inny ,bo ja nie mam pojęcia :) Ale chyba będzie wystarczająca.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 paź 2013, o 15:21 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 771
Pomógł: 40

nie.tutaj masz zrobione na timerze procesora.Jak będą duże odchyłki to można troszkę w przerwaniu timera pokombinować.Nie wiem czy dobrze policzyłem to ze liczy do 120 może trzeba dać 119 lub 121.Sprawdź sobie. Jeżeli chcesz to zrobić na zewnętrznym zegarze Rtc to troszkę zmieni sie kod ,ale zasada będzie ta sama.Jeżeli masz płytkę testowa to można dopisać kilka linijek i zrobić zegarek taki do testów.I będziesz wiedział jaka jest dokładność.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 paź 2013, o 14:33 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 771
Pomógł: 40

2 sekundy na dwie minuty? to strasznie dużo. Ja dopisałem sobie do tego taki prowizoryczny zegarek ,który odliczał czas i przez cala noc było około sekundy.ja mam zewnętrzny kwarc 16mhz.To co zmieniłeś to dobrze.U mnie widocznie sa diody inaczej podłączone.Co do spieszenia sie to może zmień czas w którym gasi i zapala diody.Tz zamiast 60 to 59 i zamiast 120 to 119.Moze to jest tylko problem.Co do kwarca zegarkowego to to tez nie jest az tak dokładne. Trzeba by było dopisać zegarek programowy w bascomie to dosyć proste jest.Reszta programu pozostałaby prawie bez zmian.W helpie bascom poczytaj sobie o config clock. A tak na marginesie jaka dokładność jest Ci potrzebna? I czy to ma odliczać tylko te minuty ,czy musi byc synchronizowane z jakimś zegarem?


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2013, o 09:32 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 771
Pomógł: 40

czyli on ma sterować zegarem? Jeżeli tak to lepiej zastosować zewnętrzny zegar.Bedzie dokładniej.8mhz możesz ustawić na wewnętrznym rezonatorze.Ustawia sie fuse bitach.Ściągnij sobie od Mirka mcAvrcalkulator tam sie to łatwo robi i sie nie pomylisz
Ten program wylicza czas do 8 Mhz jeżeli będziesz miał inny to trzeba będzie przestawić w przetimer:
Masz tam Timer0=131 to przy 16 musi byc 6


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2013, o 10:04 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 771
Pomógł: 40

dla 4 mhz nie da sie równo odliczyć 4ms. Jeżeli on jest na stale to dołóż ten kwarc zegarkowy do timera2. Wtedy to on bedzie odmierzał ta sekundę.Tego przykładu nie widziałem ale on odmierza sekundę.Wiec w przerwaniu Myistr: Wpiszesz to
Incr A
If A = 120 Then A = 0 'powinno byc dwie minuty
a w programie glownym
DO
If A = 0 Then B = 1
If A = 1 Then B = 0
If A = 60 Then C = 1
If A = 61 Then C = 0 'te liczby mozesz sobie dokladnie dpoasowac,bo nie wiem czy jst tak jak myslisz
Loop
edit.
Na atmega8 musisz podpiąć tylko ten kwarc zegarkowy.Nigdy na niej nic nie robię .Trochę nie znam jej rozkładu pinów.
Punktów nie potrzebuje ,bo rzadko korzystam z elektrody.Jakos strach tam zadać pytanie,bo Cie przepędza zaraz.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2013, o 10:57 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 771
Pomógł: 40

no trochę namieszałeś:) Chyba jednak kurs programowania musisz poczytać.Proponuje ksiazke Marcina Wiazani
Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Sprawdź teraz


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2013, o 11:13 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 771
Pomógł: 40

$regfile = "m8def.dat"
$crystal = 8000000
Config Portc = &B11111111 : Portc = &B11111111 'port jako wyjscie
Config Portb = &B11111111 : Portb = &B11111111 'port jako wyjscie
Config Portd = &B11111111 : Portd = &B11111111 'port jako wyjscie
Dim W As Byte

Config Timer2 = Timer , Async = On , Prescale = 128
On Timer2 Myisr

Enable Interrupts
Enable Timer2
Dim B As Byte
Dim A As Byte
Dim C As Byte
Do
Portb.1 = B
Portb.2 = C
If A = 0 Then B = 1
If A = 1 Then B = 0
If A = 60 Then C = 1
If A = 61 Then C = 0 'te liczby mozesz sobie dokladnie dpoasowac,bo nie wiem czy jst tak jak myslisz

Loop
end
Myisr:

Incr A
If A = 120 Then A = 0 'powinno byc dwie minuty
Return


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2013, o 11:47 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 771
Pomógł: 40

a możesz wytłumaczyć jak to działa?To ma przesuwać wskazówkę? Możesz z tego zrobić sobie zegarek i będziesz mial na bieżąco kontrole nad dokładnością.Przynajmniej do testów.Popisu do regulacji tu chyba nie ma za dużo.Podobno można jakiś trymer zastosować ,ale ja tego nigdy nie robiłem.A może programowo raz na dobę doda lub odejmie czas.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2013, o 12:55 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 771
Pomógł: 40

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


Sprawdź to.Dobrze byłoby gdybyś mógł zmienna a podglądać na terminalu lub lcd,bo nie wiem czy to będzie działać a trochę głupio ze stoper siedzieć. Jak będziesz mial problem jak to zrobić to pisz.To ma działać co minute wiec musisz zmienić sobie czasy które odmierza.teraz chyba do w każdym cyklu jest sekundę za duzo.Regulujesz zmiennymi T i T1

edit
troche Ci zmienilem



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: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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