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 kwi 2025, o 22:56


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
    Autor Wiadomość
    PostNapisane: 10 gru 2021, o 21:32 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 582
    Pomógł: 0

    Witam.
    Mam problem z przeliczaniem liczby DEC na postać binarną BIN.
    Potrzebuję przeliczyć liczbę np.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Na poszczególne wartości bitów np.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Jest na pewno prosty sposób jak można przy pomocy języka C to zrobić ?
    coś tak zacząłem próbować :D
    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.


    Gdzie robię błąd bo żle przelicza :(
    Może innym prostszym sposobem używając przesunięcia bitowego?
    Czy zamienić zmienną liczbę na char liczba[8]; i wyciągać z tablicy poszczególne elementy ?



    Ostatnio edytowano 10 gru 2021, o 21:46 przez AKSELINEK, łącznie edytowano 4 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 gru 2021, o 21:34 
    Offline
    Użytkownik

    Dołączył(a): 02 gru 2015
    Posty: 548
    Pomógł: 27

    kalkulator w win ma taką opcję.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 gru 2021, o 22:25 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 mar 2015
    Posty: 323
    Lokalizacja: Rybnik
    Pomógł: 23

    Samemu możesz obliczyć np. tak 13 to będzie dwójkowo:

    13/ 2 = 6 i 1 reszty
    6/2 = 3 i 0 reszty
    3/2 = 1 i 1 reszty
    1/2 = 0 i 1 reszty

    Zapisujemy reszty od końca 1101.
    Ale tak jak napisał kolega wyżej włączasz kalkulator w WIN-dzie w trybie "programisty".


    Autor postu otrzymał pochwałę

    _________________
    http://www.avrboss.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 gru 2021, o 22:38 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 582
    Pomógł: 0

    Tak tak kalkulator obliczy .
    Ja odczytuję liczbę dec z pamięci eprrom aby potem zamienić na wartość binarną ponieważ poszczególne bity określają zapis ośmiu parametrów.
    Kalkulatorem to to obliczam super :D
    Ale chcę programem .
    Podpowiedź jest super z tymi resztami tylko jakie operatory w języku C określą że jest reszta czy nie ma ?

    Myślę użyć pętli for.

    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 10 gru 2021, o 22:53 przez AKSELINEK, łącznie edytowano 3 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 gru 2021, o 22:41 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2595
    Pomógł: 128

    Poczytaj o maskach.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 gru 2021, o 22:55 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 582
    Pomógł: 0

    Masz racje z tym maskowaniem sposób jest na pewno prosty , że banalny ale spróbuję przez pętlę.
    Nawet dla poćwiczenia języka c i mojego umysłu :)
    Tylko jak określić w języku C spełnienie warunku że reszty nie ma czyli liczba się dzieli bez reszty i przejmujemy wartość 0 albo że jest w/w reszta i przyjmujemy warunek 1 ?

    Zapytam inaczej bo może nie dokładnie zadałem pytanie .
    Dwa warunki :

    Liczba dzieli się przez 2 bez reszty to uint8_t zmienna=0;
    Liczba nie dzieli się przez 2 i jest reszta to uint8_t zmienna=1;

    Jak określić to przy pomocy języka C ? :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 gru 2021, o 23:39 
    Offline
    Użytkownik

    Dołączył(a): 13 maja 2014
    Posty: 135
    Pomógł: 11

    Witam
    Poczytaj o operatorze % w języku C.

    Pozdrawiam
    Janusz



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 gru 2021, o 01:04 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 582
    Pomógł: 0

    Tak trochę poczytałem i wymyśliłem tak. :D

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

    l
    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.

    Tylko czy na pewno będzie dobrze??



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 gru 2021, o 11:47 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1168
    Lokalizacja: Kraków
    Pomógł: 93

    A ja nie do końca pojmuję, z czym masz problem.
    Jeżeli chcesz uzależnić program od parametrów, to robisz to przez maskowanie.
    Jeśli chcesz wyświetlić na LCD, to któraś z funkcji do wyświetlania ma chyba opcję wyświetlania w BIN (albo to w delphi było).
    --------------- EDIT:
    To jednak nie w delphi i nie w funkcji do wyświetlania. Funkcja itoa przyjmuje jako trzeci argument podstawę systemu, w jakim ma być wyświetlane (2-BIN, 10-dziesiętny, 16-HEX...). No i dalej już wyświetlanie jako tekst.
    --------------- EDIT koniec;
    A w Twoim rozwiązaniu widzę dwa błędy (a nawet trzy).
    W przeliczaniu licznik pętli ustawiasz od 7, nie 8. Tablica ośmioelementowa ma indeksy od 0 do 7 (to samo dotyczy wyświetlania).
    Dlaczego na wyświetlaczu wyświetlasz co drugi znak?
    I w Twoim rozwiązaniu będziesz miał wyrównanie do prawej strony (np. 7 nie będziesz miał 00000111, tylko 111 (a dalej same zera).

    I albo obliczanie albo wyświetlanie masz w złą stronę (sprawdziłem :) )



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 gru 2021, o 12:49 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 mar 2015
    Posty: 323
    Lokalizacja: Rybnik
    Pomógł: 23

    Prościej będzie sposobem jaki ci podsunął kolega Marhef.
    Do programu dołącz bibliotekę
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

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

    _________________
    http://www.avrboss.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 gru 2021, o 19:54 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    AKSELINEK napisał(a):
    Ja odczytuję liczbę dec z pamięci eprrom

    Przecież liczby w pamięci EEPROM są zapisywane w postaci binarnej, więc nic nie trzeba przeliczać.
    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 gru 2021, o 20:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 582
    Pomógł: 0

    Jeszcze raz kolegom bardzo dziękuję za pomoc



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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