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 2 maja 2025, o 13:09


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
    Autor Wiadomość
    PostNapisane: 11 sty 2023, o 06:39 
    Offline
    Nowy

    Dołączył(a): 10 sty 2023
    Posty: 3
    Pomógł: 0

    Witam wszystkich

    Niedawno zacząłem przygodę z wstawkami asemblerowymi do kodu w C. Chciałbym, aby port w którym chcę ustawić jakiś pin na 1 był przekazywany jako argument funkcji. O ile wiele problemów rozwiązałem sam, tak nie wiem w jaki sposób przekazać port do wstawki asm. Kombinowałem z przekazywaniem go jako "r", zmianą typu argumentu w funkcji C itp., niestety nie uzyskałem poprawnego rezultatu(brak kompilacji lub niepoprawne działanie programu). Proszę o pomoc (mam nadzieję, że jestem w dobrym dziale). Pozdrawiam
    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: 16 sty 2023, o 17:50 
    Offline
    Nowy

    Dołączył(a): 10 sty 2023
    Posty: 3
    Pomógł: 0

    Dziękuje za odpowiedź. Port przekazałem jako wartość stałą za pomocą dyrektywy #define. Wykonuję warstwę fizyczną programowego UARTA wg. noty AVR305. Funkcję do nadawania znaków już wykonałem i działa mi można powiedzieć rewelacyjnie. Natomiast mam problem z funkcją odbierania znaków. Nie ukrywam, że już dobry tydzień się z tym męczę.
    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 ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Powyższa funkcja wywoływana jest w przerwaniu PCINT4 (od dowolnego zbocza); uznałem, że nie ma sensu wywoływania jej w pętli głównej ze względu na ważne zależności czasowe. Prześledziłem funkcję wiele razy niestety jest z nią jakiś problem (baudrate 9600, kwarc 7.3728 MHz). Mianowicie odczytuje mi ona zbyt wiele bitów (przynajmniej tak wynika z analizatora):
    Obrazek
    Nie jestem w stanie zweryfikować dlaczego tak się dzieje. Jeżeli usunę testowe ustawianie i czyszczenie bitu i zastąpie je domyślnym ustawianiem i czyszczeniem znacznika przepełnienia zmienna "data" zawsze wychodzi 0. Proszę o pomoc, pewnie błąd jest prosty natomiast jestem początkującym w asemblerze.Pozdrawiam.

    ------------------------ [ Dodano po: 49 minutach ]

    Edit: Powyższe szpilki powstają ze względu na drugie zbocze (narastające) po już zakończonej funkcji; do funkcji dodałem opóźnienie tak żeby przerwanie nie powtórzyło się. Natomiast dalej wartość "data":
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    po wykonaniu funkcji jest równa '\0'.



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

    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