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



Teraz jest 9 kwi 2026, o 15:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 77 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona
Autor Wiadomość
PostNapisane: 25 maja 2015, o 13:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

A tak z ciekawości to jaką datę ustawiasz, by to spawdzić? Z dawcą czasu czy bez?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2015, o 13:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

anshar napisał(a):
A tak z ciekawości to jaką datę ustawiasz, by to spawdzić? Z dawcą czasu czy bez?

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

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2015, o 13:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

avrfun napisał(a):
Dziękuję. Obejrzałem poradnik do końca i spotkała mnie miła niespodzianka. Ustawienie czasu w krytycznych dniach na 5 sekund przed zmianą czasu skutkuje prawidłową zmianą godziny. Nie obserwuję efektu krytycznej godziny.
Pozdrawiam.


No to gratuluję! U mnie to nie chciało działać. Musiałem trochę pokombinować. :D Możesz zobaczyć tutaj
Może też pokazałbyś co zmieniłeś, aby nie było efektu krytycznej godziny?



Ostatnio edytowano 25 maja 2015, o 13:38 przez anshar, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2015, o 13:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

anshar napisał(a):
No to gratuluję! U mnie to nie chciało działać. Musiałem trochę pokombinować. :D


Dziękuję. Też się cieszę :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2015, o 11:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

anshar napisał(a):
Może też pokazałbyś co zmieniłeś, aby nie było efektu krytycznej godziny?


Czy to tajemnica? :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2015, o 11:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

anshar napisał(a):
Czy to tajemnica?

Żadna tajemnica! Tajemnice to ma język C przede mną. Robiłem wszystko tak jak w poradniku Mirka i działa, po początkowych perturbacjach opisanych kilka postów wyżej. Jedyny "problem" jaki pozostał nierozwiązany, to że po wymuszeniu czasu zimowego zegar pokazuje początkowo czas zimowy, a następnie dokonuje korekty i wyświetla czas prawidłowo. Mirek wspomniał, że aby było to niewidoczne dla użytkownika należy gdzieś przesunąć polecenie korekty. Może Ty wypatrzyłeś w poradniku gdzie? Obecnie polecenie korekty jest w funkcji set_rtc_datatime.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2015, o 11:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Ja również (tak mi się wydaje, chociaż w 100 procentach nie mogę być pewien) robiłem wszystko tak jak w poradnikach p. Mirka i u mnie jednak ten mały problem występował. Dlatego dopisałem sobie funkcję
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Opisałem to tutaj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2015, o 18:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

anshar napisał(a):
Ja również (tak mi się wydaje, chociaż w 100 procentach nie mogę być pewien) robiłem wszystko tak jak w poradnikach p. Mirka i u mnie jednak ten mały problem występował. Dlatego dopisałem sobie funkcję
Składnia: [ Pobierz ] [ Ukryj ]
język c

uint8_t oblicz_dst( uint8_t * czas_lz, uint16_t YY, uint8_t MM, uint8_t DD, uint8_t hh )

GeSHi

Opisałem to tutaj.


Dziękuję.

Mam pytanie z natury podstawowych. Zorganizowałem wyświetlanie "dawcy czasu" (hh:mm) na wyświetlaczu LED (4 cyfry) wbudowanym w zestaw ATB (biblioteka Mirka, d_led). Proszę o podpowiedź jak oprogramować mruganie kropki pomiędzy godzinami i minutami?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 01:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Pewnie w funkcji pokazuj_date_czas() dopisałeś:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Chcesz gotowy kod czy tylko podpowiedź?
Pewnie rozwiązań jak zwykle może być tyle co programistów. :D

Jeśli to drugie to zacznij od zdefiniowania cyfr z kropkami w pliku d_led.c np tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Bardzo pomocny okazał się mkAVRCalculator. :D

Jeśli teraz do cyfry cy2 dodasz 10 otrzymasz tą samą cyfrę tylko wzbogaconą o kropkę.
Czyli np
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Teraz tylko musisz wymyślić jak tą zmienną cy2 podmieniać (najlepiej dwa razy na sekundę, prawda?), ale tak by to wszystko pięknie było zsynchronizowane z RTC. :D

Ja to sobie tak wymyśliłem i działa. Dodam, że mam jednocześnie wyświetlanie na LCD (jak w oryginalnym kodzie p. Mirka) jak i na wyświetlaczu LED (hh.mm) z pięknie pulsującą kropką po drugiej cyfrze.
Dzięki za pomysł! Przy okazji przećwiczyłem sobie multipleksowanie! :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 08:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

anshar napisał(a):
Teraz tylko musisz wymyślić jak tą zmienną cy2 podmieniać (najlepiej dwa razy na sekundę, prawda?), ale tak by to wszystko pięknie było zsynchronizowane z RTC. :D

Pomysł jest najcenniejszy bo wykorzystać może go mniej lub bardziej doświadczony użytkownik. Dziękuję!
U mnie "dawca czasu" też działa na wyświetlaczu LCD i LED. Podmianę cyfy na tę z kropką wykonuję przy każdym wywołaniu funkcji pokazuj_date_czas czyli co 1s:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Wydaje się, że takie mruganie co 1s jest optymalne, ale ciekawie dla wprawki programowej, byłoby mrugać co 500ms. Jak to rozwiązałeś (timerek programowy?)
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 12:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Cytuj:
Pomysł jest najcenniejszy bo wykorzystać może go mniej lub bardziej doświadczony użytkownik. Dziękuję!
U mnie "dawca czasu" też działa na wyświetlaczu LCD i LED. Podmianę cyfy na tę z kropką wykonuję przy każdym wywołaniu funkcji pokazuj_date_czas czyli co 1s:

Wydaje się, że takie mruganie co 1s jest optymalne, ale ciekawie dla wprawki programowej, byłoby mrugać co 500ms. Jak to rozwiązałeś (timerek programowy?)
Pozdrawiam


Nie ma za co. :D
Zgadza się. Użyłem timer programowy. Dzięki czemu kropka zapala się na 500ms, po czym gaśnie na kolejne 500ms i tak w kółko. Uważam, że tak wygląda to lepiej niż zapalanie kropki na 1s, a później jej gaszenie na kolejną. :D

A tak z innej beczki to mam pytanie czy próbowałeś zaadoptować tą moją funkcję oblicz_dst()? Jeśli tak to daj znać proszę jak Ci to działa i co sądzisz o takim rozwiązaniu małego problemu z ustawianiem zegarka bez "dawcy czasu" w ostatnią niedzielę października pomiędzy 2.00 a 3.00.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 12:33 
Offline
Moderator
Avatar użytkownika

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

anshar napisał(a):
A tak z innej beczki to mam pytanie czy próbowałeś zaadoptować tą moją funkcję oblicz_dst()? Jeśli tak to daj znać proszę jak Ci to działa i co sądzisz o takim rozwiązaniu małego problemu z ustawianiem zegarka bez "dawcy czasu" w ostatnią niedzielę października pomiędzy 2.00 a 3.00.

Ja np jeszcze nie sprawdzałem na żywo, ale jak spojrzałem na kod i pomysł wcześniej przez ciebie opisany to - to jest właśnie to czego nam było trzeba do pełni szczęścia z Dawcą Czasu ;)

_________________
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: 27 maja 2015, o 12:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Dziękuję bardzo. Miło to usłyszeć od samego Mistrza! :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 13:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

anshar napisał(a):
Zgadza się. Użyłem timer programowy.

Sprawa krytycznej godziny wyjaśniona. Również Ci gratuluję. Nadal męczę się z mruganiem kropki co 500ms. Timer programowy (500ms) zrealizowany w pętli głównej działa, ale takie rozwiązanie mija się z ideą funkcjii pokazuj_date_czas. Jest ona wywoływana co 1s, a więc cyfrę oglądamy nie częściej niż co 1s, tak więc nie wiem jak zrealizować podmianę cyfry co 500ms. Mruganie co >1s bez problemu.

W pętli głównej mruga co 500ms:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Poniższy kod przeniesiony do funkcji już nie nie działa (500ms) - mruganie co 1s:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 13:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Mała podpowiedź:
A kto powiedział, że wyświetlanie kropki musi być w funkcji pokazuj_date_czas()?! :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 14:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

W pętli głównej napisałem inicjalizację cy1 z kropką. Wg pomysłu co 500ms ma przyjmować wartość z kropką, a po wywołaniu funcji zmienić się na wartość bez kropki.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Niby działa, kropka mruga szybciej, ale niezbyt regularnie (przyspiesza i zwalnia) - wygląda na brak synchronizacji ze zmienną licznik, która pięknie zmienia się na LCD co 500ms. Babol chyba.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 14:43 
Offline
Moderator
Avatar użytkownika

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

Ja tam jestem mega przyzwyczajony do standardowego mrugania co sekundę. Takie szybsze - niestety dość szybko okazuje się męczące ... a zegarek powinien być dyskretny ;) ... ale to tylko moja i subiektywna opinia.

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

avrfun napisał(a):
wygląda na brak synchronizacji ze zmienną licznik,

To zsynchronizuj że ten timer programowy z przerwaniem co sekundę czyli wyzwalaj go właśnie w trakcie przerwania

_________________
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: 27 maja 2015, o 14:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

mirekk36 napisał(a):
Ja tam jestem mega przyzwyczajony do standardowego mrugania co sekundę. Takie szybsze - niestety dość szybko okazuje się męczące ... a zegarek powinien być dyskretny ... ale to tylko moja i subiektywna opinia.

Też wolę mruganie diody co 1s, ale dla wprawki programistycznej chciałbym je przyspieszyć, a nie mogę :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 14:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

A gdyby to jeszcze zsynchronizować z RTC na przykład za pomocą flagi?

------------------------ [ Dodano po: 13 minutach ]

mirekk36 napisał(a):
... a zegarek powinien być dyskretny ;) ... ale to tylko moja i subiektywna opinia.


Dlatego tak to sobie wymyśliłem, by można było zapalać "kropkę" nie tylko na 500ms i na 500ms gasić, ale na przykład zapalać ją na 200ms i gasić na 800ms. :D
A gdy potrzeba to nawet na 1000ms zapalać i na 1000 gasić. :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 15:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

mirekk36 napisał(a):
To zsynchronizuj że ten timer programowy z przerwaniem co sekundę czyli wyzwalaj go właśnie w trakcie przerwania


Proszę o jeszcze jedno koło ratunkowe.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 19:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Wracając do tematu...
W funkcji pokazuj_date_czas ( TDATETIME * dt );
napisałem tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Zobacz co się teraz będzie działo, gdy zmienisz:
Timer1 = 50;
na Timer1 = 80;,
a później na Timer1 = 20.

Czy nieładniej?!:D

Pozdrawiam


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 20:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Dziękuję za porady. Niestety sam się zapętliłem i kropka mruga nadal co 1s. Rozumiem ideę ustawiania flagi w trakcie przerwania INT0 kiedy następuje odczyt z RTC i na podstawie wartości tej flagi odpalać timer programowy tak aby 2x w czasie 1 sekundy się wyzerował i wówczas podmieniać cyfrę na tę z kropką. Ale w pliku mk_pcf5853.c używamy flagi sprzętowej w postaci:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Ciało tej funkcji nie chce połknąć zmiennej uint8_t flag=1 w ten sposób aby była widoczna w pliku main.c pomimo deklaracji na różne sposoby i aby mogła zostać użyta do sterowania timerem programowym w warunku if(flag).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 20:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Też tak próblowałem, ale nie szło. Migać migało, ale cuda się pojawiały na wyśwetlaczu. Zobacz co napisałem wyżej, to cały kod. Daj znać czy działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 21:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Jesteś Wielki działa dobrze i ładnie. Dziękuję. Rozumiem, że wartość startową Timera=50 deklarujesz w funkcji pokazuj_date_czas, a jednocześnie powołujesz zmienną cy2_tem jako wartość dziesiętą godzin i przypisujesz jej wartość do cy2. W pętli głównej timer startuje z wartości 50 i po wyzerowaniu zamienia cy2 na cy2 z kropką. Czy dobrze to zrozumiałem? Czekają mnie jeszcze co najmniej 2 problemy. Przekazanie danych do funkcji set_rtc_datetime(&datetime, 2015, 10, 26, 2, 59, 55) na wypadek braku podtrzymania RTC i braku WiFi - potrzeby będzie zapewnie interface użytkownika oraz budzik/alarm (pomysł i jego oprogramowanie).
Jeszcze raz bardzo dziękuję za praktycznie cały dzień spędzony z mim problemem.
Z uznaniem klikam pomógł!
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 maja 2015, o 21:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Dziękuję bardzo za pochwałę i spędzony razem czas. :D Jestem początkujący i cały czas się uczę, a uczę się najszybciej, gdy pomagam (lub staram się pomóc).
To co udało mi się napisać zrozumiałeś w stu procentach. Dokładnie o to chodzi. Myślę, że całkiem fajnie to działa.
Co do Twoich dwóch kolejnych problemów, no cóż chętnie pomogę. :D
Jak ma wyglądać ten interfejs? Przyciski czy pilot? Jakieś menu? Masz już jakiś pomysł?
Co do alarmu/alarmów to chyba nie powinien być zbyt duży problem, myślę, że to kwestia porównania czasu obecnego z tym zadanym i wywołanie jakiejś funkcji alarm().
Czy już coś napisałeś? Jedziemy dalej? :D

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2015, o 06:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Witaj!
Dziękuję za pomoc i współpracę. Twój sposób na mruganie kropki jest genialny w prostocie i skuteczności. Oczywiście, że jedziemy dalej! Ja też się uczę i często połykam ze zrozumieniem duże tematy, a często brakuje "gramatyki" lub "elementarza".
Wykonałem zegar z pomiarem temperatury wg projektu wielozadaniowego Mirka (BB) i tak go zmodyfikowałem, że jest ustawiany 4 przyciskami (set, save, up, down) lub w drugiej wersji komendami z pilota RC. Na razie nie synchronizuje się z niczym. W nim jednak czas wyświetlany jest bez użycia stringów, bez funkcji Debounce i ze sporą ilością if-ów i switch-case. Bardzo pomógł przy tym projekcie kolega Krauser i z tego miejsca jeszcze raz Mu dziękuję. Chciałby teraz rozbudować zegar, nad którym pracowaliśmy. Pomysły na gorąco (zgłaszaj proszę kolejne!).

Pomysł 1. Po naciśnięciu SET zaczynają mrugać hh, po kolejnym mm itd. Naciśnięcie UP lu DOWN podczas mrugania danej liczby zwiększa ją lub zmniejsza. SAVE zapisuje wszystko do RTC. Trzeba więc zmienić sposób wyświetlanie "dawcy czasu" na pozbawiony stringów time i date. Trzeba pobawić się funkcją Debounce, aby np. krótkie naciśnięcie SET powodowało wejście w ustawienia, a dłuższe zapisanie nowych ustawień do RTC itp. Na końcu dodałbym obsługę pilota RC5 oraz pomiar temperatury.

Pomysł 2. Menu użytkownika z podmenu: czas, temperatura, alarm z możliwością ustawiania prawidłowej godziny i daty, czasu alarmu oraz wyboru liczby czujników na magistrali 1Wire z opcją prezentowania ich w osobnym widoku.

Trochę wyzwań myślę, że jest. Całość musimy ubrać w "dużo" funkcji, aby zminimalizować kod w pętli głównej programu.
Dziś mam ciężki dzień. Myślę, że wieczorkiem zacznę prace nad "upgrade".

Pozdrawiam. Miłego dnia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2015, o 10:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

avrfun napisał(a):
Pomysł 1. Po naciśnięciu SET zaczynają mrugać hh, po kolejnym mm itd.
Myślę, że wieczorkiem zacznę prace nad "upgrade".
Pozdrawiam. Miłego dnia.

Ja myślę, po tak pięknej współpracy, by wykorzystać dane tablicy w d_led - NIC, cyfry z kropką, znaki specjalne(futura) w funkcji BLINK_SET(). Chyba(obcja), żeby wejść w ANODY?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2015, o 07:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Witam!
Dlaczego zmienna int0_flag zadeklarowana jako volatile i ustawiana w przerwaniu INT0 (mk_PCF8583.c), nie jest widoczna w pliku main.c. Chciałbym aby posłużyła do sterowania timerami programowymi. Proszę o podpowiedź.

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

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

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2015, o 08:10 
Offline
Moderator
Avatar użytkownika

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

avrfun napisał(a):
Dlaczego zmienna int0_flag zadeklarowana jako volatile i ustawiana w przerwaniu INT0 (mk_PCF8583.c), nie jest widoczna w pliku main.c.

Panie kolego, posiadasz Bluebooka ? .... to zajrzyj proszę do rozdziału w którym mowa o DEFINICJI ale też DEKLARACJI zmiennych (nie funkcji a zmiennych) ..... Widzisz teraz jak wyłazi w języku C to, że się nie opanuje tych dwóch MEGA PODSTAWOWYCH pojęć ? Wiesz teraz dlaczego w książce wciąż o tym piszę i przypominam (na forum także) a pomimo to - jakoś część ludzi sobie to odkłada i darowuje na kiedyś tam ....

Tymczasem zrozumienie DEKLARACJI zmiennych ... to klucz do twojego pytania.

_________________
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: 29 maja 2015, o 08:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

mirekk36 napisał(a):
Tymczasem zrozumienie DEKLARACJI zmiennych ... to klucz do twojego pytania.

Dziękuję. Doczytam.



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: 77 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 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