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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 8 maja 2025, o 11:34


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 43 ]  Przejdź na stronę 1, 2  Następna strona
    Autor Wiadomość
    PostNapisane: 9 mar 2013, o 12:08 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    Witam jestem tutaj nowy więc to mój pierwszy post mam pytanie co do kodu programu który sam napisałem po 2 tygodniach nauki z książką http://atnel.pl/mikrokontrolery-avr-jezyk-c.html na innym forum podałem już kod ale dostałem informację że nie powinno się zapisywać w ten sposób DDRC |= LED1_PIN | LED2_PIN; informacji w rejestrze w tym przypadku DDRC a o to kod który ma za zadanie migać dwoma diodami jednocześnie ( wim że bez opisów ale w tak prostym kodzie raczej wiadomo o co chodzi )
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    [umieszczaj kody w znacznikach [ syntax = c ] zamiast [ code ] - tak na przyszłość ok? poprawiłem mirekk36 ]

    Jeżeli są jeszcze jakieś błędy proszę o przedstawienie poprawnego zapisu. Ale najbardziej interesuje mnie poprawny sposób zapisu informacji w rejestrze DDRC na podstawie dwóch lub trzech diod. Dodam że zapisałem tak ten zapis ponieważ według książki tak on właśnie wyglądać.


    Liczę na szybką odpowiedz pozdrawiam.

    A i mam nadzieję że to forum nie jest płatne ponieważ nie mogłem znaleźć informacji (pewnie się będziecie z tego pytania śmiać ale wolę się upewnić).
    Jeszcze raz pozdrawiam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2013, o 12:14 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Jeszcze powinieneś dodać

    PORTC |= LED1_PIN | LED2_PIN;

    Forum jest darmowe :) Witamy i pozdrawiamy!

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2013, o 12:20 
    Offline
    Moderator
    Avatar użytkownika

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

    wojkas3 napisał(a):
    .. na innym forum podałem już kod ale dostałem informację że nie powinno się zapisywać w ten sposób DDRC |= LED1_PIN | LED2_PIN; informacji w rejestrze w tym przypadku DDRC


    A dlaczegóż to niby nie można tak zapisywać ? ;)

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


    pewnie trafiłeś albo na równie początkującą osobę albo na tzw ŚPECA - jakich jest sporo niestety np ostatnio na forum elektro...

    nie dość że tak można to nawet warto tworzyć sobie takie makra. Na przyszłość proponuję nie rozsiewaj takich dziwnych informacji z innych forów - że nie można ...... bo będzie zamęt 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: 9 mar 2013, o 12:24 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    PORTC |= LED1_PIN | LED2_PIN; to powinienem jak rozumiem dodać pod linijką DDRC a czy ta właśnie linijka DDRC |= LED1_PIN | LED2_PIN; może być tak zapisana czy tak jak się dowiedziałem musi być zapisana w ten sposób DDRC = LED1_PIN | LED2_PIN; bo jak cytuje "twój kod wprowadza zbędne zaciemnienia w kodzie i niepotrzebne operacje logiczne" ale z moim też by działało więc proszę o wyjaśnienie mi tego zagadnienia . I nie chciałem rozsiewać takich wiadomości ponieważ chciałem się dowiedzieć jak to jest z tym kodem a tak po za tym gratuluję panie Mirku to co pan robi dla wszystkich początkujących jest świetną sprawą.

    A i tamta osoba mówi że zajmuje się tym już 28 lat i właśnie na forum elekt.... ;)



    Ostatnio edytowano 9 mar 2013, o 12:27 przez wojkas3, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2013, o 12:26 
    Offline
    Moderator
    Avatar użytkownika

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

    forum płatne ? nie nie spokojnie - tu możesz bez żadnych obaw zadawać pytania jakie ci się żywnie spodobają i nie musisz się obawiać że ktoś wyśmieje albo coś przykrego powie. Mam nadzieję, że gdy poczytasz i pobędziesz trochę z nami - to zobaczysz o co tutaj chodzi ;)

    _________________
    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: 9 mar 2013, o 12:28 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    A tak po za tym to kod jest dobry i bez błędów jak rozumiem :?:



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2013, o 12:38 
    Offline
    Moderator
    Avatar użytkownika

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

    wojkas3 napisał(a):
    PORTC |= LED1_PIN | LED2_PIN; to powinienem jak rozumiem dodać pod linijką DDRC a czy ta właśnie linijka DDRC |= LED1_PIN | LED2_PIN; może być tak zapisana czy tak jak się dowiedziałem musi być zapisana w ten sposób DDRC = LED1_PIN | LED2_PIN; bo jak cytuje "twój kod wprowadza zbędne zaciemnienia w kodzie i niepotrzebne operacje logiczne" ale z moim też by działało więc proszę o wyjaśnienie mi tego zagadnienia . I nie chciałem rozsiewać takich wiadomości ponieważ chciałem się dowiedzieć jak to jest z tym kodem a tak po za tym gratuluję panie Mirku to co pan robi dla wszystkich początkujących jest świetną sprawą.

    A i tamta osoba mówi że zajmuje się tym już 28 lat ;)


    tak tak - znam te osoby z tego forum

    a teraz wyjaśniam

    Ja od początku wprowadzam zwyczaj że lepiej napisać

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


    zamiast

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


    ponieważ wprawdzie fakt mamy jedną dodatkową zbędną operację logiczną ;) ale cóż z tego ? w czym ta nadmiarowość szkodzi ? w szybkości wykonywania się programu ? na starcie ?

    w większej zajętości pamięci FLASH ? - tu owszem zajmie nam kompilator kilka dodatkowych bajtów ale co z tego - warto mieć świadomość czego się ustrzeżemy dzięki temu

    wyobraź sobie częsty - no BARDZO częsty błąd gdy ktoś np ustawia jakieś grupy bitów w jakimś rejestrze konfiguracyjnym np timera:

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


    i co ??? druga linijka powoduje wprawdzie że ustawią się bity CS01 i CS00 ale niestety WYZERUJESZ WGM01 !!!

    jeśli natomiast napiszesz tak:

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


    to już nie wyzerujesz WGM01 ;) ..... ale wtedy trzeba pamiętać zawsze że w pierwszej robimy samo = a w kolejnych liniach |=

    dlatego żeby odciążyć pamięć i gdy zwykle nie brakuje nam pamięci Flash ja wolę pisać zawsze tak żeby się przypadkowo nie pomylić czyli zawsze tak:

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


    jak widzisz mamy jedną dodatkową operację ..... ale co z tego powtarzam? Jeśli się okaże że z jakichś powodów piszę program do małego procka np ATtiny i jednak zaczyna mi brakować paru bajtów we Flash to czy już teraz sam nie widzisz jak łatwo można ew w sekcji inicjalizacyjnej programu sobie go troszkę zoptymalizować i np z pierwszej linijki wywali |= i dać samo = ???? ale robisz to już świadomie a po drodze nie popełniasz wciąż dziwnych błędów związanych z zawodną pamięcią ludzką ;)

    poza tym zawsze jak już optymalizować na MAXA to można wtedy nawet zapisać to tak, spójrz:

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


    wtedy wszystko dzieje się w jednej linii i jeszcze jeszcze mniej bajtów zajętych we Flash - ale jak dla mnie to już troszkę mniej czytelne.

    --------------------------------

    reasumując - ja tu nie będę starał się udowadniać od ilu to ja lat programuję ;) powiem więcej - jestem początkujący i wciąż się uczę języka C .... i staram się go uczyć od na prawdę dobrych programistów - dlatego też podpowiadam wam czasem tego co się akurat uda mi nauczyć......

    A ŚPECÓW - cóż - po prostu warto omijać dużym łukiem - bo to że programuje od 60 lat a zachowuje się jak dziecko z piaskownicy - samo świadczy o sobie.

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

    kila napisał(a):
    Jeszcze powinieneś dodać

    PORTC |= LED1_PIN | LED2_PIN;


    tu akurat niekoniecznie - bo to nie klawisze - więc może pomyliło się koledze to z podciąganiem do VCC ? przy klawiszach ?

    Chociaż z drugiej strony - taką linijką można zawsze ustalać tzw stan początkowy po inicjalizacji wyjść .... więc kosmetycznie wtedy jak najbardziej można dać taką linijkę.

    ------------------------ [ Dodano po: 3 minutach ]

    tak kod jest dobry tylko tu troszkę jakby namieszane że oczopląsiku dostaję: ;)

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


    zrób to 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 teraz zobacz - bo pisałeś że komentarzy nie dajesz bo program zbyt prosty - tymczasem gdybyś je dał to zrobiłbyś to od razu porządnie - sam tak dla siebie rozumiesz ? ;)

    więc na forum jak o coś pytasz innych to staraj się przez szacunek dawać komentarze - taki mamy tu zwyczaj

    _________________
    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: 9 mar 2013, o 13:42 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    Oczywiście wiem że komentarze są bardzo ważne więc będę je wprowadzał . Dziękuje za rady i wyjaśnienia już wiem co i jak. Niedługo może za dwa dni dodam do tego wątku nowy a raczej zmodyfikowany kod z dodatkami takimi jak przyciski zmiana częstotliwości migania i takie tam (na pewno już z komentarzami ) cieszę się że reszta kodu jest poprawna .
    Zaraz zabieram się do pracy .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2013, o 18:04 
    Offline
    Moderator
    Avatar użytkownika

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

    O matko zobaczyłem tą konwersację na elektrodzie - toż to znany od niedawana ŚPEC na elektrodzie ..... po prostu masakra

    jeśli on programuje od 28 lat to jeszcze gorzej o nim świadczy bo znaczy że stary a .......... nie będę się wyrażał ;) szok

    no takie teksty to na elektrodzie codzienność ostatnimi czasy dzięki takim ŚPECOM ... a ten jest szczególnie wybitny w tym zakresie więc się nie martw. Bo gdyby głupota potrafiła latać - to ten śpec fruwałby jak gołąb ;)

    Obrazek

    po prostu MASAKRA .... i co ciekawe - takim typom wolno innych bezkarnie tak obrażać na tym forum - co to się tam porobiło - szok!

    ------------------------ [ Dodano po: 2 minutach ]

    w kolejnym poradniku dla początkujących normalnie aż wspomnę o takich ŚPECACH ....

    _________________
    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: 9 mar 2013, o 19:30 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    Już czekam na ten poradnik .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2013, o 19:51 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    po prostu żałosne ....
    ale co zrobić taka jest jeleńktroda ....

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 mar 2013, o 20:29 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Wracając do tematu, faktycznie, PORTC |= LED1_PIN | LED2_PIN nie jest wymagane, i zależy jak się ledy podłączy, ale moim zdaniem, lepiej skonfigurować kierunek portów.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 mar 2013, o 14:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    A więc pierwszy program wgrany na atmegę i działa aż miło piszę kolejny z dodatkami tak więc niedługo go tutaj przyślę do sprawdzenia pozdrawiam .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 mar 2013, o 15:19 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 lis 2011
    Posty: 534
    Lokalizacja: Mierzyn
    Pomógł: 9

    wojkas3 napisał(a):
    A więc pierwszy program wgrany na atmegę i działa aż miło piszę kolejny z dodatkami tak więc niedługo go tutaj przyślę do sprawdzenia pozdrawiam .


    no to super gratulacje :)

    _________________
    pozdrawiam
    Jachu



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2013, o 18:17 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    Witam ponownie napisałem program z wykorzystaniem przełącznika a o to on
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    i mam taki problem ponieważ po wgraniu wszystko działa oprócz efektu po wciśnięciu klawisza a mianowicie dioda podłączona do pinu PC2 nie miga z wyznaczoną częstotliwością 1 sekundy tylko 150 mili sekund czyli z poprzednią częstotliwością podejrzewam jakiś błąd kodu wynikający z mojej niewiedzy ale którego sam nie mogę rozwikłać proszę o pomoc i porady na przyszłość.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2013, o 18:23 
    Offline
    Moderator
    Avatar użytkownika

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

    Słuchaj - sformatuj ty ten kod poprawnie bo można oczopląsu dostać ;) i podejrzewam że sam masz przez to problemy

    usuń zbędne puste linie, zrób prawidłowe wcięcia itp

    bo jakiś misz-masz z nawiasami klamrowymi chyba widzę

    poza tym poczytaj albo dalej w książce na temat obsługi klawiszy albo na blogu moim:

    http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html

    _________________
    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: 11 mar 2013, o 18:30 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    Zaraz się biorę do czytania i szukania błędów.
    A czy taki format kodu przejdzie w pańskich oczach bo dla mnie jest znośny ale to może tylko złudzenie
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ------------------------ [ Dodano po: 34 minutach ]

    Hm czytam i czytam ale już mam taki mentlik w głowie że nie mogę znaleźć bledu czy ktoś mógł by mi wskazać i poprawić błąd tak żebym na spokojnie go przeanalizował .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2013, o 20:32 
    Offline
    Moderator
    Avatar użytkownika

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

    No! teraz to już kod jakoś wygląda ;) i powiedz mi teraz .... co wg ciebie robią nawiasy klamrowe w liniach:

    32 i 41 ???

    nie mówię że to jest jakiś błąd - ale czy ty stosujesz to świadomie czy czysto przypadkowo ?

    poza tym jak już nawet używasz tego super uproszczonego (dydaktycznego) sposobu do niby eliminacji drgań styków z książki to dlaczego przepisujesz ten kod i też inaczej niż w książce - i tu znowu nie mówię że to błąd .... ale zobacz jak to się u ciebie zbiera.

    _________________
    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: 11 mar 2013, o 21:38 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    A więc co do tych nawiasów pisząc ten kod myślałem że rozpoczynam że tak to nazwę nową myśl dla tego je tam umieściłem ale teraz widzę że nie są one tam obowiązkowe. Natomiast co do drgania styków to podejrzewam że chodzi o brak nawiasów pomiędzy pierwszym sprawdzeniem czy klawisz jest wciśnięty a zwłoką na rzecz sprawdzenia czy to nie było drganie styków ale biorąc pod uwagę moje doświadczenie w tej dziedzinie mogę nie dostrzegać jakiegoś innego elementy .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2013, o 21:58 
    Offline
    Moderator
    Avatar użytkownika

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

    to teraz popraw kod tak jak ma być i spróbuj dokładnie opisać najpierw jak niby chcesz żeby on miał działać - co chcesz osiągnąć ?

    Bo z tego co tu pokazujesz to to będzie to taka troszkę iluminofonia i błyskanie bez związku z czasami o których mówisz - tzn bez wciśniętego klawisza będzie migać co 150ms a z wciśniętym co 1,15 sek

    _________________
    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: 12 mar 2013, o 18:06 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

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

    A więc zaraz po starcie programu miały migać dwie diody na przemian co 150 ms. Natomiast po wciśnięciu klawisza który jest podpięty do masy diody miały nadal migać na przemian ale z częstotliwością zmian co 1000 ms . A w praktyce wygląda to tak że przed wciśnięciem klawisza jest ok ale po jego wciśnięciu najpierw zapala się jedna z diod na czas ok 1000 ms czyli tak jak zapisałem w programie i następuje zmiana diody która świeci ale ta z kolei miga z częstotliwością ok 150 ms więc tak jak w pierwszej funkcji. Nie wiem co jest źle nie mogę znaleźć błędu więc proszę o pomoc.( Mam nadzieje że rozumiecie moje objaśnienia )



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 mar 2013, o 20:26 
    Offline
    Moderator
    Avatar użytkownika

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

    Posłuchaj - napisałeś program liniowo - on będzie działać tak zakładając że np cały czas mamy wciśnięty klawisz:

    1. zmieni się stan diod LED1 i LED2 na przeciwny
    2. nastąpi przerwa 150ms
    3. nastąpi dodatkowa przerwa 80ms (czyli razem ok 230ms)
    4. zmieni się stan diod LED1 i LED2 na przeciwny po tych 230ms!
    5. nastąpi przerwa 1000ms
    6. ------ powrót do pkt.1

    _________________
    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: 12 mar 2013, o 20:39 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    Czyli całkiem nie tak jak miało być hm trudne początki a więc mam do pana pytanie a raczej prośbę czy mógł by mi pan napisać ten kod tak żeby działało to zgodnie z moim założeniem ja oczywiście będę jeszcze próbował to zmienić ale jednak analiza dobrego kodu krok po kroku była by mi bardzo pomocna .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 mar 2013, o 21:14 
    Offline
    Moderator
    Avatar użytkownika

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

    wojkas3 napisał(a):
    Czyli całkiem nie tak jak miało być hm trudne początki a więc mam do pana pytanie a raczej prośbę czy mógł by mi pan napisać ten kod tak żeby działało to zgodnie z moim założeniem ja oczywiście będę jeszcze próbował to zmienić ale jednak analiza dobrego kodu krok po kroku była by mi bardzo pomocna .


    Ja nie mogę napisać bo niestety (przykro mi - mówię wprost) nie mam czasu na pisanie kodów ... nie mam czasu

    ale zapoznaj się lepiej z naszym forum i zobacz co to takiego jest "DZIAŁ RYBNY" .... tam możesz szukać takiej pomocy ;) przeczytaj opis działu i poczytaj kilka w nim wątków ;)

    _________________
    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: 12 mar 2013, o 21:15 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    No trudno a czy może pan chociaż odpowiedzieć czego brakuje ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 mar 2013, o 21:19 
    Offline
    Moderator
    Avatar użytkownika

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

    wojkas3 napisał(a):
    No trudno a czy może pan chociaż odpowiedzieć czego brakuje ?


    Widzę że nie chce ci się zajrzeć do tego działu ? a szkoda - no ale cóż twoja strata ... wiele osób na tym skorzystało....

    czego brakuje ? Tu nie chodzi o to że brakuje - tylko taki kod trzeba napisać CAŁKOWICIE inaczej ....

    np:

    1. wprowadzić sobie zmienną której wartość będzie zmieniana np podczas wciskania klawisza ... ale weź że sięgnij do obsługi klawisza z mojego bloga - podawałem ci link a nie uparcie będziesz próbował wciąż robić tak samo czyli źle ok ?

    http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html

    2. w zależności od tej zmiennej np wprowadzać inny czas opóźnienia, załóżmy że jak ma domyślnie wartość = 0 to masz czas 150ms a gdy będzie miała wartość 1 to czas będzie 1000ms

    3. wprowadzić dwa IF'y które w zależności od wartości tej zmiennej będą wywoływać inne opóźnienie, dla 0 i dla 1

    to wsio

    _________________
    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: 12 mar 2013, o 21:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    Dziękuje za pomoc przepraszam że jestem trochę namolny . Od jura biorę się za dział Rybny i za pana blog . Postaram się nie męczyć forum w taki sposób jak to robiłem :| ale więcej słuchać rad i więcej czytać.Pozdrawiam . :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 mar 2013, o 22:16 
    Offline
    Moderator
    Avatar użytkownika

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

    Ale dział Rybny nie wymaga nawet czytania wątków - wystarczy kilka wyrazów opisu działu na dole przeczytać żeby zobaczyć do czego on jest powołany ;)

    _________________
    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: 12 mar 2013, o 22:20 
    Offline
    Moderator zasłużony dla forum.atnel.pl
    Avatar użytkownika

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

    Napisz co chcesz uzyskać, może ktoś napisze kod. Najlepiej poproś jeszcze o obfite komentarze, będziesz mógł przeanalizować go.

    _________________
    http://www.jaglarz.info



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 mar 2013, o 19:03 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 mar 2013
    Posty: 47
    Pomógł: 0

    No i super mam taki kod jaki chciałem niedługo dodam do niego różne dodatki bo już wiem jak a to wszystko dzięki matisek1233 i tom1988p no oraz panu Mirkowi który mi kazał tam za czerpać informacji. Pozdrawiam



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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