Zawsze obsługa przerwania powoduje skasowanie flagi I, aby pod koniec obsługi flaga została ponownie ustawiona przez instrukcję reti. Jeśli program się przerywa po kilku linijkach, to znaczy posiadasz nie obsłużone wektory przerwań, a to jest błąd w kodzie. Albo wyłącz przerwanie od danego źródła, albo wyłącz przerwania, jeśli z nich nie korzystasz.
dzienniki zmian SDK 2.0 i SDK 1.3.7 mają tę samą funkcjonalność. (646/143) 1. Dodano przepływ sterowania daemon_thread. 2. Domyślnie metoda connect jest blokująca. Aby użyć metody nieblokującej, włącz makro NO_BLOCK w rda59xx_daemon.c. 2017-02-11 V1.3.6(534) 1. Naprawiono błąd w pwm i dodano funkcje kontrolne dla pwl0 i pwl1. Zobacz przypadek testowy:...
a po co na końcu dawac komende #asm("cli")? Czy kompilator nie zrobi tego natychmiast sei ? Kompilator nie dodaje SEI. Flaga I w SREG jest automatycznie - sprzętowo, a nie programowo - czyli procesor sam ją ustawia w momencie wyjścia z procedury obsługi przerwania. Jednak obsługa przerwania nie kończy się w momencie zakończenia wykonywania kodu napisanego...
Teardown i OpenBeken drop in dla https://obrazki.elektroda.pl/2073381600_... https://obrazki.elektroda.pl/6296432100_... https://obrazki.elektroda.pl/3197909200_... Moim celem było umożliwienie regulacji amperów/mocy z MQTT lub asystenta domowego podczas ładowania EV. Można to zrobić za pomocą OpenBeken....
Co 3.88us wywołujesz przerwanie od przepełnienia timera. A przetwarzanie ADC w pętli while trwa 0.12ms- czyli 120us. Czyli podczas tej pętli pojawi się wielokrotnie przerwanie od timera0. A jeśli się pojawi podczas sprawdzania warunków tej pętli to moga się dziać dziwne rzeczy. Jedna instrukcja przy 8Mhz trwa 0.125us. Czyli obsługa przerwania powinna...
Skoro opanowałeś obsługę timera, to zrób jeszcze całą obsługę LED w przerwaniu timera. W pętli głównej się multipleksowania LED nie robi, bo ciężko w to wpleść jakikolwiek inny kod. Jaki wtedy jest sens podziały projektu na pliki *.h i *.c skoro część pliku "7led.c" będę miał w pliku związanym z Timer0 ? Chyba, że coś źle zrozumiałem. Źle do tego podchodzisz....
Tak prosto to niezrobisz. W standardowej 51 nie można zamaskować rzeczywistego żródła przerwania do SIO. Jeżeli decydujesz się na przerwania to musisz obsłużyć wszystkie. W twoim przykładzie będziesz ciągle zajmował procesor tą pustą obsługą przerwania od nadawania bo nie skasowałeś jej przyczyny. Synchronizację nadawania musisz wtedy zrealizować na...
Jak zmienić tryb ADC? Tak jak pisałem wcześniej, trzeba pogmerać w rejestrach. W setupie dopisz: [syntax=c]PRR &= ~(1 << PRADC); ADMUX = (1 << REFS0) | (0 << ADLAR) | (0x00 << MUX0); ADCSRA = (1 << ADEN) | (1 << ADATE) | (1 << ADIE)| (0x04 << ADPS0); ADCSRB = (0x00 << ADTS0) | (0 << ACME);...
Trzeba zrobić detekcję zbocza np. poprzez użycie dodatkowej zmiennej- flagi Zmienna ta ustawiana byłaby np. na 1 po wysłaniu SMS-a, a wejście do podprogramu wysyłającego SMS pod warunkiem, że ta zmienna = 0 If Pir_1 = 0 And Mw_1 = 0 And Flaga = 0 Then ....... (program wysyłający SMS) Flaga = 1 En If Gdzieś w głównym programie If Pir_1 = 1 And Mw_1 =...
Czy proponujesz zatem taki zapis: ... Jeśli w tym rejestrze wcześniej jest coś co chcesz zachować to może zostać, ja proponuje użyć operacji przypisania "=" zamiast sumy bitowej "|=" - używając sumy zakładasz że wcześniej jest tam "znana wartość", co niekoniecznie jest prawdą i czasem można się nieźle przejechać na takim założeniu... Widocznie przekroczenie...
W PDF jest napisane, że flaga jest zerowana gdy : "interrupt routine is executed". Ja to tłumaczę jako obsługa przerwania jest WYKONANA. CZYLI po ZAKOŃCZENIU. W PDF jest też napisane, że zerujemy ją wpisując do rejestru wartość na określonym bicie 1.Czyli EIFR.0=1. Dlatego wpisując EIFR.0=0 NIE ZEROWAŁEŚ FLAGI!. Spróbuj ja wyzerować następująco If EIFR.0=1...
Przerwania w takich mikrokontrolerach to nie wątki niestety - całkowicie złe podejście. Ale kombinować warto ;) Ja zwykle wykorzystuję jakiś Timer do generowania tzw tyknięć systemowych co jakiś krótki czas np kilkanaście- kilkadziesiąt ms oraz oznaczania tylko kilku flag oznaczających upływ kilku stałych odcinków czasu np Flaga co 40ms, Flaga co 1s...
To wszystko nie tak. Obsługuj ADC w funkcji obsługi przerwania od ADC. Przed wejściem do pętli głównej skonfiguruj ADC, włącz zezwolenie na przerwanie i wystartuj pierwszy pomiar, ew. startuj pomiar cyklicznie (z timera), ale nic poza tym. Skoro przerwanie jest włączone i wchodzisz w jego obsługę, to znaczy że na 100% konwersja się zakończyła i masz...
Początkujący to widać. Wielokrotnie na tym forum powtarzana jest złota rada: obsługa przerwania musi być jak na krótsza, czyt. nie w ilości linii kodu a w czasie. Dlatego często ustawiana jest flaga w przerwaniu a dopiero w pętli głównej wykonywane jest to co należy. System przerwań jest zależny od architektury procesora można je dowolnie włączać i...
Witam. Wydaje mi się że w tym przypadku to nie pomoże. Przewód pewnie robi za antenę i sciąga jakieś śmieci. Kolega Tomson pewnie impuls na INT0 traktuje jako wciśnięcie przycisku. W takim przypadku każdy impuls (rzędu pewnie nawet ns) wywoła przerwanie. Cała obsługa powinna wyglądać trochę inaczej. Otóż nawet krótkie wciśnięcie przycisku zwiera jego...
Oto mój program wykorzystujący LCD w trybie 4-bitowym, śmiga jak ... Jest tam obsługa LCD i 1wire, procedurki LCD łatwo wyłowić :) // ****************************************... // Project: Obsluga układu DS18B20 // Author: Zbigniew Chrobot // Module description: pomiar temperatury z DS18B20 kwarc 4MHz // wyswietlanie na...
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
https://obrazki.elektroda.pl/3928983600_... Opiszę naprawę dość rzadkiej konsoli, polegającą na odtworzeniu schematu pierwowzoru, zaprojektowaniu i wykonaniu płyty głównej i dalszych krokach niezbędnych do przywrócenia jej życia i funkcjonalności, w których zastosowałem swoją nowatorską metodę. Będzie więc coś dla miłośników retro,...
https://obrazki.elektroda.pl/6051635700_... Dzisiaj zajmiemy się tematyką wprowadzenia tekstu przez wyświetlacz dotykowy w LVGL. W przypadku starszych wyświetlaczy, bez opcji "dotykowej", trzeba było mieć osobną klawiaturę by w ogóle coś wpisać. Było to dość problematyczne. W przypadku wyświetlacza dotykowego możemy natomiast po prostu...
https://obrazki.elektroda.pl/3993332100_... Zapraszam na praktyczną demonstrację połączenia CAN pomiędzy dwoma urządzeniami z ESP32. Pokażę tutaj, jak wygląda procedura nadawania i odbierania ramek na podstawie sterownika TWAI, użyję środowiska PlatformIO. TWAI to skrót od Two-Wire Automotive Interface, czyli w wolnym tłumaczeniu interfejs...
Tak, jest poprawka hasła, jest też flaga igmp do dodania. Dodałem już wszystkie zmiany bufora mqtt. Nie widzę nic związanego z wątkami. Największą niepotrzebną rzeczą wydaje się być cała obsługa tls z mbedtls, ale nie udało mi się tego usunąć.
z mojego punktu widzenia wszystko działa. Obowiązkową poprawką IMHO jest flaga ignorowania w "linkTuyaMCUOutputToChannel". W przeciwnym razie nie można bezpiecznie migrować przycisków z MCU do układu WiFi. Ponieważ odpowiedzi MCU (jeśli nie są ignorowane) mogą kolidować z wartościami oczekiwanymi przez skrypt użytkownika. W końcu obsługa "przełączania...
"Nowe" czyli od Xmega i nowsze AVR mają mozliwość priorytetu przerwania. Poprzednie miały ustalony. Nie wiem jaki to AVR, ale jeśli ustawisz Timer i przerwanie od niego to jak będzie w przerwaniu to oczywiście zauważy potem flagę przerwania z USART, ale może być za późno, dlatego jeśli nie trzeba, to się przerwań od wszystkiego nie uruchamia. Rzadko...
Cześć josemr, Pracowałem bez przerwy nad tym problemem przez ostatnie 48 godzin i mogę teraz potwierdzić główną przyczynę problemu z dwoma kanałami. Potwierdzenie architektury sprzętowej: Po uważnym przeczytaniu tego wątku znalazłem kluczową informację: QS-wifi-S10-CT02 ma dwa układy BL0942 komunikujące się przez JEDEN współdzielony port UART na CB2S...
Tak, wszystko jest w porządku, sprawdzam to za pomocą aplikacji TUYA, w tym „zastosuj mnożnik”. Ustawiłem ustawienia w pierwszym poście i wszystko jest razem. Tak, już przekazuje dane: obk8C000000 podłączony = online gniazda = 2 rssi = -81 czas pracy = 18 host = obk8C000000 build = Build 3 marca 2023 16:11:58 wersja 1.15.522 mac = c8:47:8c:00:00:00...
http://obrazki.elektroda.pl/3499461100_1... Jest to bardzo specyficzna konstrukcja i prawie na pewno nikomu oprócz mnie nie przyda się w tej konkretnej postaci jaką tu opisuję, ale zawsze pozostają walory edukacyjne, nauczenie się jak coś zrobić albo jak czegoś w żadnym wypadku nie robić :D Urządzenie jest protezą dzięki której omijam...
http://obrazki.elektroda.pl/5385398300_1... Zaprezentować dziś chcę projekt lampki RGB który wykonałem na pracę zaliczeniową z systemów wbudowanych. Moim zdaniem osiągnięty efekt jest zadowalający więc może ktoś będzie zainteresowany wykonaniem urządzenia według mojego projektu. Jako, że jest to pierwszy zrealizowany przeze mnie projekt...
kiedy wciskam przycisk, liczenie czasu nie rozpoczyna się. czy mógłbyś zaproponować inaczej napisany kod? Wstępna ocena dostępnych informacji Analiza podanych przez użytkownika danych: - Problem zgłoszony przez użytkownika: - Po wciśnięciu przycisku, liczenie czasu nie rozpoczyna się . - Użytkownik prosi o propozycję innego kodu, który rozwiąże ten...
Witam ! (at)ElektrodaBot // Napisz Menu z Rc5 #include #include LiquidCrystal lcd(19, 18, 17, 16, 15, 14); #define LED 0 #define TSOP_PIN 3 RC5 rc5(TSOP_PIN); // co... Bezpośrednia odpowiedź na pytanie Poniżej znajdziesz kompletny, przetestowany szkic Arduino realizujący trzy-pozycyjne menu sterowane pilotem RC5. – Przycisk „+” (cmd 16) zwiększa odpowiednią...
http://obrazki.elektroda.pl/9389203100_1... Witam. Projekt potencjometru cyfrowego zrodził się po tym, jak analogowy potencjometr wieloobrotowy uszkodził się. Nie chciałem, aby ponownie coś takiego się stało (te potencjometry są dość drogie ;P około 30zł), więc postanowiłem wykonać coś lepszego. Założenia regulacja rezystancji od 0-100...
DVR HD3804 nie uruchamia się. Dostałem mały rejestrator HD3804 i nie uruchamia się, załączyłem dziennik seryjny, aby uzyskać więcej informacji oraz zdjęcia płyty i komponentów. Proszę, czy ktoś może mi pomóc we właściwym kierunku, aby go uruchomić. U-Boot 2010.06 (20 lutego 2017 - 14:24:07) Pamięć DRAM: 256 MB Sprawdź kontroler spi flash v350... Znaleziono...
Witam. Chciałem się podzielić moim projektem który pozwala na obsługę przekaźnika i włączenie go na 5min za pomocą przycisku chwilowego. Oraz sterowanie z aplikacji włączaniem i wyłączaniem przekaźnika na WeMos D1 Mini. Konfigurację aplikacji daję w załączniku. Elementy potrzebne do budowy projektu, 2 x przekaźniki (lub dowolna ilość) Arduino Nano (lub...
To, że w loopie jest wykonany ciągle, jest oczywiste, stąd też flaga "zagrane" która miała po pierwszym odtwarzaniu uniemożliwić ponownie odtworzenie. Gdy wcześniej wykorzystywałem ten odtwarzacz i miałem tylko jedno wejście np. z krańcówki to if z wejściem od krańcówki && zagrane powodowało właśnie, że utwór odtwarzał się jednokrotnie i zatrzymywał....
ot cały kod, żadna tajemnica :) osiągnięto: nazwa widziana w siecu ESPDevice zmiana z poziomu WiFiManager (WMG) czas AP trybu i czas skanowania sieci WiFi Łączenie z automatu do sieci zapisanych tryb AP po przytrzymaniu 3 sek. klawisza wyboru kontrolki stanu AP i WiFi na OLED ssd1309 na OLED wyświetla IP adr klienta albo IP konfiguracyjnej sieci trybu...
W momencie zaistnienia jakiegoś zdarzenia wywołującego przerwanie zostaje ustawiona jego flaga. Jeśli przerwanie to nie jest zamaskowane i globalna flaga zezwolenia na przerwania jest ustawiona, to mikrokontroler skacze do odpowiedniej procedury obsługi przerwania i globalna flaga zezwalająca na przerwania zostaje automatycznie wyłączona do czasu zakończenia...
http://obrazki.elektroda.pl/6783263600_1... Chciałbym przedstawić konstrukcję, która nie wnosi do świata elektroniki zupełnie nic nowego ponad standardowe połączenie kilku elementów, która powstała dla zabawy i żeby ładnie wyglądała, czyli zegarek binarny. Założeniem była budowa zegarka z widocznymi wszystkimi elementami i zasilanego...
Dzięki za wsparcie. Niestety nie wiem jak zrobić globalną zmienną, która określa stan flagi. Wszystko mi się wywala. Zmienia flagę ale potem nie zawsze i tak naprawdę jest to losowe co zrobi po naciśnięciu przycisku. Pomyślałem, że według Waszych wskazówek mogłoby to wyglądać tak: wszystko oparte na if'ach ===================================== Obsługa...
OpenCV uruchamiany jest głównie na wysokowydajnych platformach obliczeniowych czy mocnych mikroprocesorach, ale pakiet ten może wykonywać kilka rodzajów aplikacji do przetwarzania obrazu na prostych mikrokontrolerach. Przetwarzanie obrazu stało się częścią naszego życia. Nikogo nie dziwi rozpoznawanie twarzy w smartfonie czy wykrywanie pasa ruchu przez...
tu jest kod prostego programu który podgląda to co dzieje się na magistrali, filtruje odpowiedź jednego z urządzeń i obrazuje na ekranie to co jest odbierane. jest tam też pomocniczy licznik który pozwala mi analizować ile tych ramek (które są odpowiedzią urządzenia może być pomijane. Jedyne "przetwarzanie" ramki to wyświetlenie jej zawartości na ekranie....
To ustaw jeden z timerów na przerwanie co 10ms. W przerwaniu sprawdzaj stan portu pod który masz wpiętą klawiaturę. Jak jest zmiana to ustaw odpowiednią flagę. W pętli głównej sprawdzaj czy ustawiona jest flaga klawiszy. Po obsłudze funkcji dla danego klawisza zeruj flagę.
Miałem takie zadanie: odbieram wiadomości z kolejki (message queue), używając mq_notify() do otrzymania sygnału, że pojawiła się wiadomość w kolejce, która była pusta, i mq_receive() do odbierania. Każda wiadomość może zawierać wiele elementów, które mają być przekazywane do EPICS-a. Tu mniejsza o to, czym jest EPICS - istotne jest może to, że nie mogę...
napisałem program zmieniłem taktowanie uc na 8MHz wgrałem program jedyne, co działa to obsługa przycisków Dodano po 24 Problem najpewniej występuje w tej części programu: Dodano po 3 66 osoby widziały ten post, ale tylko jedna odpowiedziała. Wiesz dlaczego? Ponieważ Twój kod i schemat są nieczytelne. Nadal to jest problem? Jakie mosfety włączają zasilanie?...
Witam. Jako że na elektrodzie mało jest szczegółowych informacji na ten temat, postanowiłem rozpocząć dyskusję na ten temat aby rozwiać wątpliwości oraz przekonania co do partycji GPT. Wolałbym ten temat w dziale "Komputery serwis" a nie "Komputery FAQ". Dlaczego GPT. Wady partycji MBR: - Ograniczenie pojemności partycji do 2 TiB (teoretycznie 16 TiB...
niezależnie kiedy odczyta powinno wyzwolić w jednym i tym samym momencie czyli na sygnał pochodządy z int Pod warunkiem, że flaga przerwania od Int0 nie jest ustawiona, w przeciwnym przypadku wykona się natychmiast. Nie wiem czy taka konstrukcja: disable int1 --->wyłącz przerwanie end if Return ---> rzeczywiście wykonuje się RETI, które kasuje flagę...
No ale nic nie stoi na przeszkodzie aby w przerwaniu od ADC ustawić tylko flagę np. zrobiony_pomiar. A w przerwaniu od jakiegoś timera ustawiać flagę (albo kilka flag). I co jakiś czas sprawdzać czy flaga przerwania od ADC jest ustawiona- i tylko wtedy odczytywać pomiar. Wogóle to można nie zezwalać na obsługę przerwania od ADC a tylko odczytywać czy...
No to chyba tak, jak kombinowałem ( tylko może źle to opisałem ). Wybrałem grupę interruptów PCINT, a potem wybrałem dwa interesujące mnie PCINT'y. I w następnej linii kodu ustawiłem flagę "I" komendą sei(). Czyli spełniłem trzy warunki GIMSK = (1<<PCIE); (albo GIMSK = 0b00100000;) -> Włączyłem przerwania PCINTx PCMSK = 0b00011000 ; (albo...
Witam , zaprezentuję urządzenie - termo-kontroler ,przydatne w domach z piecami węglowymi służącymi do ogrzewania kaloryferów jak i wody w bojlerze . https://obrazki.elektroda.pl/9274231800_... https://obrazki.elektroda.pl/9761003000_... Kontroler musi mieć podane adresy oraz ilość podłączonych termometrów. Dodatkowo...
Tak:) Zrobiłem:) Dzięki za pomoc!! Jeżeli TCNT1 doliczy się do OCR1 na skutek pracy CTC, to nie wywoła tego TCNT1, tylko rejestr OCR1 czyli przerwanie aktywowane bitem OCIE1A w rejestrze TIMSK (str. 112). Właśnie tam w przerwaniu z obsługi flagi OCF1A zostanie wygenerowane przerwanie, bo w końcu ustawiam WGM12 na taki tryb pracy timera. Gdyby był zwykły...
Jest tego sporo, DCF77, 7 x DS18B20 i DHT11 ( akurat jeśli chodzi o niego to mam wątpliwości, czy ten kod działa, bo jest na obydwu płytkach podpięty i zdarza się zawieszenie ) Nadajnik Atmega328p Dodano po 16 Odbiornik Atmega644P - trochę zmieniłem obsługę przerwania, wydaje mi się, że w przerwaniu nie powinno się wykonywać dużych obliczeń. [syntax=basic4gl]...
A kasujesz flagę OCF0A, bo jeżeli nie to co najwyżej raz ci wyzwoli ADC. ADC jest wyzwalany gdy flaga zmienia stan z 0 na 1; Gdzie masz taką informację o konieczności kasowania flagi OCF0A? Jeśli tak by było to konieczna byłaby obsługa przerwania Compare Match A tylko po to by wyzwalać ADC co trochę kłóciłoby się z sensownością takiego mechanizmu?...
flaga bascom flaga funkcja flaga przerwa
emalia uzwojenie podgrzewacz elektryczny przepływowy akumulator robot
przekaźnik kierunkowskazów skoda fabia lm317 schemat zasilacz regulowany
Jak uruchomić automatyczną naprawę Windows 11? Behringer DJX900USB instrukcja obsługi po polsku – gdzie znaleźć, jak przetłumaczyć