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 12 kwi 2025, o 17:16


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 
    Autor Wiadomość
    PostNapisane: 4 kwi 2021, o 14:27 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 lis 2019
    Posty: 145
    Pomógł: 37

    edwardkraweznik napisał(a):
            char * ppp = "ppp123";
     
            for(int i = 0; i<sizeof(ppp); i++)

    sizeof wskaźnika zwraca wielkość zmiennej wskaźnikowej. W przypadku AVR wskaźniki są przeważnie 16 bitowe
    edwardkraweznik napisał(a):
            char ppp[] = "ppp123 ala ma kota...";
     
            for(int i = 0; i<sizeof(ppp); i++)

    sizeof na tablicy zwraca wielkość tablicy, w tym przypadku jest to długość stringu łącznie z końcowym '\0'. Wypychając string na UART zwykle nie chcemy wysyłać końcowego 0 a więc albo trzeba wysyłać "sizeof ppp - 1" znaków, albo skorzystać z funkcji strlen.
    edwardkraweznik napisał(a):
    1. Czy rozwiązanie jak wyżej, wysyłanie znak po znaku w pętli jest prawidłowe ? może inaczej powinienem to zrobić ?

    W zasadzie tak, z tym że pęta busy wait blokuje program na czas transmisji.
    edwardkraweznik napisał(a):
    3. Co się stanie jeśli tych danych nie odbieram? mikrokontrolery mają jakiś timeout i wywalają te dane? co dokładnie się z tym dzieje?

    Nic się nie dzieje, znak zostanie przetransmitowany niezależnie czy odbierzesz czy nie bez informacji zwrotnej. Jak chcesz mieć informację czy timeout musisz sobie zaimplementować swoją kontrolę przepływu
    edwardkraweznik napisał(a):
    void cum_pin_snd(volatile uint8_t *pin, uint8_t pinnr)
    {
        if ( PINB & (1 << 0))

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


    Autor postu otrzymał pochwałę

    _________________
    Think for yourself and question authority.



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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