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 30 kwi 2025, o 17:01


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 
    Autor Wiadomość
     Tytuł: Licznik Binarny
    PostNapisane: 18 lis 2012, o 14:16 
    Offline
    Użytkownik

    Dołączył(a): 29 paź 2012
    Posty: 45
    Pomógł: 0

    Witam,
    Czy ktoś może mi pomóc w rozwiązaniu zadania tzn licznik binarny na atmega32 PC0-PC7.
    Nie mam pomysłu na rozwiązanie a łatwo mi się domyślić tylko że jest to zapewne banalnie proste.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2012, o 19:30 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    flisy2 napisał(a):
    Witam,
    Czy ktoś może mi pomóc w rozwiązaniu zadania tzn licznik binarny na atmega32 PC0-PC7.
    Nie mam pomysłu na rozwiązanie a łatwo mi się domyślić tylko że jest to zapewne banalnie proste.

    No ale o co Ci chodzi? :?:

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2012, o 19:34 
    Offline
    Użytkownik

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

    co chcesz z tym portem C zrobić konkretnie ??
    sprecyzuj co to ma być ??

    _________________
    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: 18 lis 2012, o 19:36 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    No właśnie tego dotyczyło moje pytanie ;-)

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2012, o 20:05 
    Offline
    Użytkownik

    Dołączył(a): 29 paź 2012
    Posty: 45
    Pomógł: 0

    macie racje bo czytając ten temat sam nie rozumiem co miałem na myśli mówiąc obiektywnie mianowicie:
    Licznik binarny składający się z 8 diod podłączonych od PC0-PC7.
    o x x x x x x x t1
    x o x x x x x x t2
    o o x x x x x x t3
    x x o x x x x x t4
    o-dioda świeci
    x- zgaszona



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2012, o 20:48 
    Offline
    Moderator
    Avatar użytkownika

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

    Ja wszystko rozumiem, dział Rybny jest po to żeby pomagać - ale ..... ale hmmm powiedz mi jak długo zajmujesz lub próbujesz zajmować się programowaniem ?

    Uczysz się z jakiejś książki? czy z kursu internetowego ? - podaj źródło

    do czego to ma być - tzn to zadanie ? do szkoły ?

    _________________
    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 lis 2012, o 20:58 
    Offline
    Użytkownik

    Dołączył(a): 29 paź 2012
    Posty: 45
    Pomógł: 0

    Uczę się z Pana książki, jestem na rozdziale 5.3 obsługa klawiszy micro-switch. Zadania sam sobie wymyślam. Programuje może 3tygodnie.
    A zadanie ma być dla mojej własnej satysfakcji.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2012, o 21:09 
    Offline
    Moderator
    Avatar użytkownika

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

    a to rozumiem ;) bo myślałem że to jakieś zadanie do szkoły

    _________________
    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 lis 2012, o 22:26 
    Offline
    Użytkownik

    Dołączył(a): 07 maja 2012
    Posty: 119
    Pomógł: 2

    Ja to widzę tak:
    Bierzesz liczbę, np. 321
    gasisz wszystkie ledy
    Od wybranej liczby odejmujesz 512
    jeżeli wynik wychodzi ujemny, to cofasz się do liczby 321 i gasisz ostatniego leda.
    Następnie bierzesz koleją liczbę, tym razem 256, od 321 odejmujesz 256, sprawdzasz czy wynik jest dodatni
    ponieważ jest dodatni zapalasz drugą od końca diodę
    do dalszych obliczeń bierzesz liczbę którą otrzymałeś z różnicy 321-256=65
    tym razem od liczby 65 odejmujesz 128
    ponieważ wychodzi liczba ujemna, cofasz się do poprzedniej liczby (65)
    gasisz trzeciego leda od końca i przechodzisz do dalszych obliczeń.
    itp. z liczbami 64, 43, 16, 8, 4, 2, oraz 1
    Skoro to ma być jakiś licznik na końcu dodajesz do liczby od której zacząłeś obliczenia (321) jeden.
    Mam nadzieję, że nie poplątałem a bardzo i rozumiesz o co mi chodzi. Nie wykluczam że po drodze popełniłem jakiś błąd.

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

    PS. Nie sprawdziłem tego w praktyce, ale powinno być ok.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2012, o 22:53 
    Offline
    Użytkownik

    Dołączył(a): 29 paź 2012
    Posty: 45
    Pomógł: 0

    a jakiś gotowy kod bo nie bardzo to rozumiem?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lis 2012, o 23:15 
    Offline
    Moderator
    Avatar użytkownika

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

    hmm a może na początek jeszcze zajrzyj tutaj:

    http://mirekk36.blogspot.com/2012/01/av ... stawy.html

    i zrozum, że porty w AVR to takie 8-bitowe rejestry, wystarczy do nich wpisywać liczbę którą będziesz zwiększał o 1 w pętli z opóźnieniem a do takiego portu podłączyć 8 diod LED i już masz po sprawie

    _________________
    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: 19 lis 2012, o 08:32 
    Offline
    Użytkownik

    Dołączył(a): 16 maja 2012
    Posty: 349
    Lokalizacja: Legnica
    Zbananowany użytkownik

    Pomógł: 23

    A nie lepiej prosto inkrementować zmienną a potem odwrócić bity? Znaleziony kod na elce:
    Kod:
    unsigned char reverseByte(unsigned char c)
    {
        int i;
        unsigned char d = 0;
        for (i = 0; i < 8; i++)
        {
            d <<= 1;
            d |= c & 1;
            c >>= 1;
        }
        return d;
    }

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lis 2012, o 08:34 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 cze 2012
    Posty: 420
    Lokalizacja: Poznań
    Pomógł: 5

    No dokładnie jak pisze mirekk36 ...

    Rejestr portu i tak przechowuje wartość binarnie :) Więc konwersje na binarny masz "od ręki", bo tak to po prostu musi działać. Więc jak zmienną, która przechowuje wartość 5 wyślesz do portu (zwykłe przypisanie = ) to masz swoje:

    o x o x x x x x , pisząc poprawnie 00000101

    Jeśli zmienną zdekrementujesz to będziesz miał swoje:
    x x o x x x x x - > 00000100

    (kwestia zanegowania czy nie zanegowania i kolejności podpięcia diodek do portu)

    Więc twój kod to tylko ustawienie portu jako wyjście, deklaracja zmiennej i inkrementacja jej w nieskończonej pętli np for (;;) z wystawieniem jej na PORT. Oczywiście aby cokolwiek zobaczyć musisz skorzystać z opóźnienia delay lub timera (w skrajnym przypadku taktować procesor ręcznie :lol: )

    Zobacz sobie na kody zawarte tutaj: Mrugające Diody LED i przetestuj ich działanie w praktyce :)

    _________________
    Wysłane z nowego ATB 1.05beta + ATB ETHERNET



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lis 2012, o 16:58 
    Offline
    Użytkownik

    Dołączył(a): 29 paź 2012
    Posty: 45
    Pomógł: 0

    dziękuje za odpowiednie ukierunkowanie mnie.
    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: 19 lis 2012, o 17:14 
    Offline
    Moderator
    Avatar użytkownika

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

    Tylko jakby jeszcze kolega przeczytał w książce o stylach programowania, zadbał o nawiasy klamrowe i pisał kod bardziej czytelnie to dla samego ciebie byłoby lepiej ;) .... a jak widzisz zadanie okazało się bardziej niż banalnie proste

    Tylko to ustawienie kierunków, weź daj przed pętlą

    aha - no i u ciebie nie ma w ogóle pętli nieskończonej ??????????? oj oj .... coś mi się to nie podoba - kolega czytał pierwszy rozdział chociaż o języku C ? jak się buduje funkcję main() ???? chyba nie :(

    proszę zatem zerknąć do tego rozdziału i podejrzeć na kolejne proste kody w książce czy nawet na pierwsze kody na DVD.

    _________________
    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: 19 lis 2012, o 21:26 
    Offline
    Użytkownik

    Dołączył(a): 29 paź 2012
    Posty: 45
    Pomógł: 0

    nie miałem zamiaru robić to w pętli nieskończonej, rozumiem że jeżeli mówimy o stylach to mamy na myśli DDRC = 0xFF; jak to zmienić żeby było bardziej poprawne?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lis 2012, o 22:02 
    Offline
    Moderator
    Avatar użytkownika

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

    flisy2 napisał(a):
    nie miałem zamiaru robić to w pętli nieskończonej,


    No to na prawdę widzę, że książki kolega chyba "ni w ząb nie czytał" ..... eeeeej nieładnie tak. Ja myślę, że jednak chociaż RAZ to trzeba przeczytać albo nawet wrócić do rozdziałów o PODSTAWACH języka C skoro się tak podstawowe błędy robi :(

    flisy2 napisał(a):
    rozumiem że jeżeli mówimy o stylach to mamy na myśli DDRC = 0xFF; jak to zmienić żeby było bardziej poprawne?


    Nie o to chodzi - tylko o miejsce w kodzie programu. Po co ma się to wciąż w pętli wykonywać ?

    _________________
    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: 19 lis 2012, o 22:10 
    Offline
    Użytkownik

    Dołączył(a): 29 paź 2012
    Posty: 45
    Pomógł: 0

    Myślę że już nie powinno być błędów
    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: 19 lis 2012, o 22:15 
    Offline
    Moderator
    Avatar użytkownika

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

    nadal jest źle a nawet gorzej. O ile poprawiłeś z tym DDRC to ten IF() w pętli oznacza, że także w ogóle nie poczytałeś o pętli for() ....

    nie mówiąc nadal o tym że brak pętli nieskończonej więc będzie kicha i program zadziała TYLKO raz.

    _________________
    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: 19 lis 2012, o 22:20 
    Offline
    Użytkownik

    Dołączył(a): 29 paź 2012
    Posty: 45
    Pomógł: 0

    nie program działa cały czas, książki przy sobie nie mam bo zostawiłem ją w domu. Jeżeli mógł bym prosić o poprawne napisanie tego kodu był bym wdzięczny.



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

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