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



Teraz jest 19 kwi 2024, o 18:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 23 gru 2012, o 17:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 gru 2012
Posty: 530
Lokalizacja: Bydgoszcz
Pomógł: 8

Witam!

Chciałem zrobić sobie zegarek na wyświetlaczu 7-segmentowym. Użyłem do tego przerwania INT0, do którego podłączona jest noga INT od PCF, który powinien generować sygnał co sekundę. Na tej podstawie, napisałem coś w C, i niby działa, ale w ciągu 20 minut, zegarek przyspieszył już o 4 minuty :P to trochę za dużo. Jak można to poprawić? Macie doświadczenie w tym temacie? Może lepiej użyć czegoś innego do generowania impulsu co jedną sekundę?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 17:22 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3187
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 89

Wklej kod tego coś co niby działa. :lol:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 17:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 gru 2012
Posty: 530
Lokalizacja: Bydgoszcz
Pomógł: 8

Here you are!

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

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 17:32 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

No popatrz przed chwilą w jakimś temacie sam niby zobaczyłeś że dodawania DELAY'ów w przerwaniach to po prostu TRAGEDIA - ja jeszcze ci to doprecyzowałem a ty znowu co??? ;) no znowu DELAY w przerwaniu ;) eeeeeh

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 17:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 gru 2012
Posty: 530
Lokalizacja: Bydgoszcz
Pomógł: 8

A dlatego ten delay w przerwaniu, bo wtedy, nie wiedzieć, czemu mi dioda nie mrugała...

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 17:41 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

kila napisał(a):
A dlatego ten delay w przerwaniu, bo wtedy, nie wiedzieć, czemu mi dioda nie mrugała...


No to MUSISZ PAN zrozumieć - że jak chcesz programować mikrokontrolery - to ZAPOMNIJ RAZ NA ZAWSZE o DELAYACH w przerwaniach - a miganie diody ? nic nie stoi na przeszkodzie żeby migała - tylko nie w przerwaniu ;) .... No musisz sobie tą ZASADĘ zakodować od samego początku nauki

ale może powiem inaczej - bo widzę że chyba tak jak spora część czytelników - nie przeczytałeś najpierw chociaż JEDEN RAZ - jedyny raz - całej książki tak od deski do deski ciurkiem - nawet jeśli czegoś nie rozumiesz :( .... no i teraz tak masz - ją trzeba raz tak przeczytać - a potem można już na wyrywki - od razu MNÓSTWO rzeczy by ci się wyjaśniło i nawet nie męczyłbyś się z tym ;)

------------------------ [ Dodano po: 1 minucie ]

A dioda bez DELAY'a w przerwaniu mrugała mrugała - tylko że trzeba by byłoby matrixem żeby to zjawisko zobaczyć....

Diodą to się mruga w programie głównym a jak w przerwaniach to chociażby tak

Kod:
PORTB ^=  LED;

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 17:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 gru 2012
Posty: 530
Lokalizacja: Bydgoszcz
Pomógł: 8

Zgadza się, nie przeczytałem całej książki od deski do deski, ale nie mogłem się doczekać, żeby już zacząć pisać :P

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 17:57 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

Wiem wiem jak to świeżbi człowieka żeby już - już od razu ;) sam tak mam kurczę ;) i bardzo dobrze cię rozumiem z jednej strony

ale dlatego na razie uwierz - że DELAY nawet minimalny w przerwaniu to po prostu TRAGEDIA, KATASTROFA - masakra. Chodzi o to że przecież przerwanie - musi na chwilkę przerwać działanie programu głównego - w ogóle zawiesza jego pracę. Dlatego MUSI się WYKONAĆ JAK NAJSZYBCIEJ bo inaczej to zabiera czas programowi głównemu - a ty w nim właśnie odliczasz tzn próbujesz odliczać czas ;)

Musisz poznać mechanizm flag - prosty mechanizm i gwarantuję ci że jest on właśnie dalej w książce opisany i to właśnie przy RTC ;)

to nawet sięgnij sobie na chybcika do dalszego rozdziału - no ale jak będziesz miał coraz większy mętlik w głowie - to jednak jak mówię - wróć do przeczytania raz od początku do końca - to się jak na razie każdemu sprawdza. Bo inaczej to nawet się zniechęcić można na początku .... po prostu od razu WSZYSTKIEGO w 5 minut człowiek nie da rady się nauczyć.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 gru 2012, o 18:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 gru 2012
Posty: 530
Lokalizacja: Bydgoszcz
Pomógł: 8

Dzięki serdeczne za naprowadzenie :)

Na pewno to zrobię :)

Wesołych Świąt!

_________________
sig off ;(



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 4 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO