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



Teraz jest 13 kwi 2026, o 18:40


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 17 kwi 2014, o 12:39 
Offline
Użytkownik

Dołączył(a): 04 kwi 2013
Posty: 107
Lokalizacja: Zabrze
Pomógł: 0

Usiłuję stworzyć licznik na wyświetlaczu LED, który będzie zliczał ilość wciśniętych klawiszy (od 0 do 9). Wykorzystuje do tego funkcję SuperDebounce. Po wciśnięciu klawisza wartość wyświetlana przeskakuje z 0 do 1. Po kolejnym wciśnięciu niestety już nic się nie dzieje. :( Na wyświetlaczu cały czas widoczne jest 1, aż do wciśnięcia klawisza RESET. Proszę o jakieś sugestie.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 17 kwi 2014, o 15:17 przez jari17, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2014, o 14:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

na gorze tylko deklarujes funkcje a na koncy za timerem ja rozpisujesz. ty natomiast zadeklarowales i rozpisales na gorze to tak na szybko patrzone z tel.

Wysłane z telefonu

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2014, o 15:06 
Offline
Użytkownik

Dołączył(a): 25 sty 2014
Posty: 185
Lokalizacja: Działoszyn
Zbananowany użytkownik

Pomógł: 8

majster napisał(a):
na gorze tylko deklarujes funkcje a na koncy za timerem ja rozpisujesz. ty natomiast zadeklarowales i rozpisales na gorze to tak na szybko patrzone z tel.

Wysłane z telefonu



a jakie to ma znaczenie do działania programu ?

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

i tez bedzie dobrze

jari17
a gdzie i jak masz zadeklarowaną zmienną licznik i cy1 ? nie podales pelnego programu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2014, o 15:18 
Offline
Użytkownik

Dołączył(a): 04 kwi 2013
Posty: 107
Lokalizacja: Zabrze
Pomógł: 0

Jest:
uint8_t licznik;
z początku



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2014, o 15:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 maja 2013
Posty: 65
Lokalizacja: Łódź
Pomógł: 4

chyba brakuje

static uint8_t licznik;

_________________
Karkołomne zadanie, ogarnąć C.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2014, o 16:31 
Offline
Użytkownik

Dołączył(a): 25 sty 2014
Posty: 185
Lokalizacja: Działoszyn
Zbananowany użytkownik

Pomógł: 8

adamekp napisał(a):
chyba brakuje

static uint8_t licznik;

ale w funkcji void aa() { static licznik; licznik++; }



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2014, o 17:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Przenieś
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
poza pętlę while do funkcji main albo poza funkcję main do zmiennych globalnych.

Poza tym tu jeszcze masz błąd
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: 17 kwi 2014, o 17:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

karolek napisał(a):
majster napisał(a):
na gorze tylko deklarujes funkcje a na koncy za timerem ja rozpisujesz. ty natomiast zadeklarowales i rozpisales na gorze to tak na szybko patrzone z tel.

Wysłane z telefonu



a jakie to ma znaczenie do działania programu ?

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

i tez bedzie dobrze

jari17
a gdzie i jak masz zadeklarowaną zmienną licznik i cy1 ? nie podales pelnego programu



ma znaczenie.
poprawnego i czytelnego pisania programow w c

Wysłane z telefonu

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2014, o 19:52 
Offline
Moderator
Avatar użytkownika

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

karolek napisał(a):
a jakie to ma znaczenie do działania programu ?

przeciez mozna nawet tak
Składnia: [ Pobierz ] [ Ukryj ]
język c
void s()
{
 
}
int main() {
s();
 
}
GeSHi

i tez bedzie dobrze


Ma znaczenie - i to duże - my tu się uczymy DOBREGO stylu programowania .... ten kto rozumiem to zagadnienie .... rozumie też dlaczego i kiedy ma to znaczenie dla programu i kiedy może się zemścić

podobnie nie używamy kocich makr:

_BV()

tylko posługujemy się przesunięciami bitowymi

(1<<PC2)

dlatego proszę o tym pamiętać przynajmniej na naszym forum ... zamiast zawracać początkujących w tył ... ok ? ;)

_________________
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: 17 kwi 2014, o 21:52 
Offline
Użytkownik

Dołączył(a): 04 kwi 2013
Posty: 107
Lokalizacja: Zabrze
Pomógł: 0

dodanie "static" nie pomogło. Wyświetlacz dalej blokuje się na 1



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2014, o 00:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 sty 2014
Posty: 178
Pomógł: 24

używasz timera nr.0 a w inicjalizacji zostawiłeś OCR2A = 78; - a to jest rejestr timera2
jakiego używasz procka?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2014, o 08:52 
Offline
Użytkownik

Dołączył(a): 25 sty 2014
Posty: 185
Lokalizacja: Działoszyn
Zbananowany użytkownik

Pomógł: 8

mirekk36 napisał(a):
dlatego proszę o tym pamiętać przynajmniej na naszym forum ... zamiast zawracać początkujących w tył ... ok ? ;)

tak , wiem jakoś "denerwuje wkurza " mnie to że czesto gdy początkujący zadają konkretne pytanie uzyskąją zupełnie nie na temat odpowiedz w stylu nie masz przecinka itp.

co do " dobrego stylu programowania " jak najbardziej się z Tobą zgodze o dobrym stylu programowania , ale nie można przekładać wszstykiego ponad nauke jak sie dobrze nauczymy programować można wtedy bedzie "ożenić " te 2 sprawy. ;)


ps. Widzisz ja już sie powoli ucze Twojego stylu pisania postów . zdanie rozciagnieto do granic okienka ehhe , podoba mi się to ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2014, o 09:27 
Offline
Moderator
Avatar użytkownika

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

karolek napisał(a):
co do " dobrego stylu programowania " jak najbardziej się z Tobą zgodze o dobrym stylu programowania , ale nie można przekładać wszstykiego ponad nauke jak sie dobrze nauczymy programować można wtedy bedzie "ożenić " te 2 sprawy.


No widzisz - nie zgodzisz się ;) ... masz całkiem inną wizję a szczególnie nauczania ludzi którzy początkują i zaczynają. Masz prawo mieć swoje zdanie - ja je szanuję ... ty sobie zresztą świetnie poradzisz. Ale, pozwól że to forum to będzie ten mój hmm nasz (bo jak widzisz wielu forumowiczów popiera ten tok myślenia), że to będzie podstawa nauczania ... i nie jest to pod żadnym pozorem stawiania wszystkiego ponad naukę. NAUCZYĆ SIĘ DOBRZE programować można wtedy - gdy się od razu zaczyna uczyć DOBREGO STYLU programowania bo to panie kochany POMAGA się wręcz uczyć a nie tak jak ty mówisz. Pisanie funkcji nad main ale też wiele innych rzeczy prowadzi do złych przyzwyczajeń, które później ciężko wyplenić - no bo się człowiek przyzwyczaił ... I później cierpi na tym nie tylko on ale także np osoby z którymi zaczyna pracować w zespole .... z czego ty być może sobie np w ogóle sprawy nie zdajesz bo np nigdy nie miałeś okazji pracować w zespole. Dlatego ja mogę zrozumieć twój pogląd - ale moja prośba - abyś zrozumiał że te porady które tu padają - są BARDZO DOBRE. Jak widzisz wspólnie się uczymy i większość preferuje takie podejście. Nie zakłócaj więc tego porządku swoimi wstawkami że ciebie to denerwuje. Bo jeśli denerwuje to zawsze masz co najmniej dwa wyjścia.

Jedno - założyć własny blog, forum czy też napisać książkę lub wydać cykl poradników odnośnie programowania wg ciebie - czy to jakiś problem ?

Drugie - opuścić to forum ... jeśli aż tak ciebie to denerwuje ...

karolek napisał(a):
ps. Widzisz ja już sie powoli ucze Twojego stylu pisania postów . zdanie rozciagnieto do granic okienka ehhe , podoba mi się to


Jeśli dalej będziesz robił takie wyprawy - to przykro mi ale pożegnam się z tobą na tym forum dość szybko ... Z takimi tekstami zapraszam cię serdecznie na elektrodę

_________________
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: 18 kwi 2014, o 15:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Jari17 udalo ci sie rozwiklac zagadke? Pytam bo rozmowa zeszla na inny tor a ty mozesz nadal potrzebowac pomocy. Jezeli nie udalo ci sie to zaraz cos pomyslimy.


jeżeli masz mirka bibliotekę z płyty cd z BB to tam w d_led.c masz już ustawiony timer.
tu może tkwić również przyczyna że deklarujesz dwa timery i część robisz na 1 a część na drugim timerze .... tak mnie się wydaje ale nie jestem pewny.
Przyczyną również może być to że używasz zmiennej licznik mirek użył również taką zmienną w bibliotece.

Zaraz napiszę program i zobaczę co i jak działa.


Podaj jeszcze na jakim procesorze uruchamiasz program. ?

Czy to płytka stykowa ? PCB ? czy gotowy zestaw.

Definicja klawisza też powinna być przed int main.

------------------------ [ Dodano po: 55 minutach ]

jari17 napisał(a):
Usiłuję stworzyć licznik na wyświetlaczu LED, który będzie zliczał ilość wciśniętych klawiszy (od 0 do 9).


Nie napisałeś czy jak dojdzie do 9 to czy ma zacząć maleć czy ma przestać liczyć czy liczyć na dwóch wyświetlaczach itd ...
więc ja zrobiłem to na 1 wyświetlaczu tak że liczy od 0 do 9 i kolejne wciśnięcie to znów 0 i w górę.

Bynajmniej już wiem gdzie popełniłeś błędy :)

Więc tak w celach nauki podam ci kod taki jak ja bym to napisał. A ty potrenuj i zastanów się dlaczego tak a nie inaczej.
Np: usuń z kodu

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


Weź sobie utwórz nowy projekt. Wgraj mirkową bibliotekę i zadeklaruj ją tak jak ja albo zmień na swoje piny:

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



Następnie mój main.c wygląda tak:

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



A tutaj masz film:
Wolne odliczanie to każde wciśnięcie klawisza.
Szybkie odliczanie to przytrzymanie klawisza.





Jak pomogłem to kliknij pomógł :)



PS karolek: tak się poprawnie pisze programy ? Czyż nie lepiej się je czyta ?


Autor postu otrzymał pochwałę

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2014, o 11:28 
Offline
Użytkownik

Dołączył(a): 04 kwi 2013
Posty: 107
Lokalizacja: Zabrze
Pomógł: 0

Dzięki za pomoc majster!!! :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2014, o 11:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Nie ma za co cieszę się że mogłem pomóc mimo że sam jeszcze się uczę i wiele rzeczy jest dla mnie trudnych i niezrozumiałych.

_________________
Usługi druku przestrzennego - www.drumik.pl



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Majestic-12 [Bot] 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