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 31 mar 2025, o 11:05


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
    Autor Wiadomość
    PostNapisane: 16 paź 2022, o 10:08 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Witam.
    Korzystając z biblioteki MKUART chciałem zrobić ćwiczenie wysyłania znaków z jednego mikorokntolera ATmega 32 do drugiego poprzez pint RX i TX.
    Jeden mikrokontroler w tym celu wysyła co sekundę znak A, podpatrując przez terminal Putty z w/w kontrolera literka A wychodzi.

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

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


    po wpisaniu sprawdzenia "

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


    Literka A wpada na LCD odbiorczego kontrolera i super.
    Ale to sprawdzenie A jest sztucznie sprawdzone.
    Jak zrobić żeby zapisać wpadającą literkę w zmienną typu char z możliwością wyświetlenia jej na LCD :(

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

    No leci cyfra 65 i chyba jest ok bo to jest liczbowa wartość kodu ASCI literki A.
    To jak wyświetlić na LCD zmienną c ale jako string żeby wyświetliło nie liczbową (65) a literową wartość (A)

    ------------------------ [ Dodano po: 41 minutach ]

    Po prostu mój problem polega na tym że, potrafię wyświetlić wartość kodu ASCI zmiennej c (typu char) (65) , potrafię wyświetlić na LCD string literki A lcd_str("A") ale jat wyświetlić zmienną literowo zmienną c?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 paź 2022, o 10:52 
    Offline
    Użytkownik

    Dołączył(a): 15 gru 2013
    Posty: 213
    Pomógł: 5

    tak: if( c=='A' ) lcd_str(c);



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 paź 2022, o 11:11 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Tak próbowałem i nic się nie wyświetla :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 paź 2022, o 11:53 
    Offline
    Użytkownik

    Dołączył(a): 15 gru 2013
    Posty: 213
    Pomógł: 5

    Przepraszam sam się pomyliłem. Tak ma być:
    char a = 65;
    i wyświetlasz na LCD w ten sposób:
    lcd_str(&a);


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 paź 2022, o 12:37 
    Offline
    Użytkownik
    Avatar użytkownika

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

    SUPER o to chodziło. Podpowiedz mi na koniec jeszcze jedną sprawę:
    Wyświetlanie jest dla spełnionego warunku
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    , a ja bym chciał żeby warunkiem wyświetlenia było jeśli wpadnie do do c jakakolwiek litera , którą wysyłam z pierwszego kontrolera chodzi mi o to z pierwszego kontrolera wysyłam literkę a z drugiego odbieram i zamiast warunku
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    buł warunek odebrania literki przez funnkcję
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    I osiągnięcie takiego efektu - z mikrokontrolera wysyłam literke np A potem B i wpada na wyświetlacz do mikrokontrolera 2



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 paź 2022, o 13:07 
    Offline
    Użytkownik

    Dołączył(a): 15 gru 2013
    Posty: 213
    Pomógł: 5

    Proszę o to fajne linki do tych tematów.

    a już w szczególności ten cykl:

    Polecam!!!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 paź 2022, o 17:01 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Filmiki super dzięki za info.
    Przy okazji mam pytanie udało mi się dojść w układzie wysyłania do takiej sytuacji:
    - z kontrolera nr1 wysyłam znak A co 1 sekundę
    - z kontrolera nr2 odbieram w/w znak przy pomocy funkcji:

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

    Wszystko niby ok ale nie do końca ponieważ co jakiś czas na wyświetlacz wpada inny znak ? Co może być nie tak?
    Obrazek
    Co ewentualnie można jeszcze poprawić :?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 paź 2022, o 19:07 
    Offline
    Użytkownik

    Dołączył(a): 15 gru 2013
    Posty: 213
    Pomógł: 5

    Powodów może być kilka. Na początek podłączył bym procek nadawczy np. do kompa, odpalił bym putty i bym podejrzał czy przez cały czas cyklicznie jest wyświetlane to co wyrzucam z procka. W ten sposób wyeliminował bym jeden z powodów. Czyli jeżeli przez cały czas na ekranie bezbłędnie wyświetlała by mi się literka "a", miał bym pewność że z tą stroną układu jest wszystko ok.
    Jeden z powodów kiedy takie rzeczy się dzieją może być to że masz złą dobraną prędkość uarta. Ja bawiłem się kiedyś taką transmisją na stykówce i po prostu kabelki nie do końca stykały co powodowało że na magistrali krzaki leciały zamiast pożądana treść. Sprawdź na początek co widzi putty. :shock:



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 paź 2022, o 19:19 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Tak masz rację Puty mnie naprowadził do tego że nie wyświetlał. Nie dałem wspólnej masy :D ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 paź 2022, o 19:37 
    Offline
    Użytkownik

    Dołączył(a): 15 gru 2013
    Posty: 213
    Pomógł: 5

    Dawno nie miałem okazji komuś pomóc!!! Cieszę się że mogłem być pomocny, po długiej mojej nie obecności na tym forum. :P Pozdrawiam. ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 paź 2022, o 07:57 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Chciałbym zrobić coś takiego ale przez Wifi tylko nie wiem czy akcesoria Wifi są jeszcze dostępne w sklepie Atnel? Jeśli tak proszę o wskazówkę. Pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 paź 2022, o 13:44 
    Offline
    Nowy

    Dołączył(a): 14 maja 2020
    Posty: 11
    Pomógł: 1

    Mnie przy tym wszystkim zastanawia, dlaczego do wyświetlania pojedynczego znaku (zmienna typu char) na LCD używasz funkcji do wyświetlania stringów: lcd_str. Jeżeli korzystasz z biblioteki Mirka, to powinieneś mieć dostępną funkcję lcd_char. W Twoim przypadku problem z funkcją lcd_str jest taki, że spodziewa się ona danych zakończonych znakiem o kodzie zero, ale nie możesz mieć pewności, że komórka pamięci następna za tą, w której przechowywana jest zmienna c zawsze będzie mieć wartość zero. Jeżeli nie będzie zerem, to funkcja lcd_str będzie te dane traktować jak kolejny bajt stringa (i go wyświetlać) i tak aż do napotkania na bajtu o wartości zero.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 paź 2022, o 22:19 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Bardzo cenna uwaga nie stosowałem ale spróbuje dzięki.



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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