Cześć p.kaczmarek2! Fragment kodu, którego użyłem do zapisania zmiennej generującej, służy celom programistycznym. Użyję Twojego kodu, gdy już skończysz. Na razie po prostu upewniłem się, że użyto właściwych pozycji pamięci, więc jest on wstecznie kompatybilny z ostatecznym kodem. Mogę potrzebować pomocy w zsynchronizowaniu Twojego repozytorium z moim...
Funkcja czekająca na odpowiedz powinna być odporna na brak jakiekolwiek odpowiedzi. W przypadku braku odpowiedzi z modemu Twój kod się "zapetli". Jak wygląda kod usr0_getc()? Nie widzę związku między ISR a tą funkcją. Zakładam również, ze flagi (flagGotLine i pozostałe) zadeklarowales jako volatile. Postaraj się zaimplementować pkt. 4 z mojej poprzedniej...
Jak to zrobić: 1. włączasz przerwanie od timera w NVIC 2. Konfigurujesz timer, żeby generował jakieśtam przerwanie Odpowiedzi na pytania: 1. No bez timera raczej nie zrobisz przerwań co jakiś czas [; 2. Funkcja przerwania po prostu musi nazywać się DOKŁADNIE TAK SAMO jak jest wpisana w tablicy przerwań (zwykle CośtamCośtam_IRQHandler() ) 3. Hę? Przykłady...
NVIC_ClearPendingIRQ(USB_IRQn) nic nie da w tym przypadku. Należy wykasować flagi w rejestrze USB interrupt status register (USB_ISTR) , ale jeśli to zrobisz samodzielnie funkcja HAL_PCD_IRQHandler(&hpcd_USB_FS) może już nie działać właściwie ponieważ w zależności od stanu tych flag są podejmowane odpowiednie działania. Jak wskazuje sama nazwa tej...
To co znalazłem w pliku *.lss nie jest dla mnie w tej chwili zrozumiałe: To sbic oraz rjmp zajmuje się testowaniem flagi zajętości EEPROM. W opisie do eeprom.h autorzy zaznaczyli, że funkcje najpierw sprawdzają zajętość podsystemu odpowiedzialnego za EEPROM. Szczegóły implementacji będą w źródłach AVR-libc, one się trochę różnią pomiędzy procesorami,...
Brutus_gsm : Radził bym Ci przeprojektować trochę ten kod: ustawianie flagi I (sei()) w przerwaniu jest największym błędem (chyba, że wiesz co robisz oraz to kontrolujesz). Przed wyjściem z funkcji przerwania ustawiasz flagę I (jeśli przyjdą kolejne przerwania, pojawią się kolejne wywołania i przepełni się stos - błąd), po czym usypiasz procesor (zakładając...
Te telefony blokowane sa poprzez KnoxGuarda, a nie IMEI. Pojawia sie plansza na ekranie ktora mowi o niezaplaconych ratach i blokowany jest dostep do urzadzenia i danych na nim. IMEI, najczesciej nie jest blokowany, bo wowczas operator nie ma jak takiej blokady zdjac zdalnie w przypadku splaty zaleglosci. Blokade mozna ominac, ale nie ma trwalych rozwiazan,...
Dlaczego definicje wszystkich funkcji masz w funkcji main? Powinny być przed nią. Raczej nie wykorzystujesz linii Busy/Ready wyświetlacza a cały czas pchasz w niego informacje. Czyścisz go tylko raz. Uzależnij wyświetlanie od jakiejś flagi ustawianej w timerze 2 (np co 0,5s) i wtedy czyść wyświetlacz i wyświetlaj dane. Pewnie dlatego działa Ci z delayem...
Kondensatory przy rezonatorze należy podłączyć do GND a nie do Vcc. Oj, ale babol - przegapiłem go :) Dodam jeszcze, że to nadawanie 2 razy jest efektem drgań styków (jak się ich pozbyć podałem Ci link w poprzednim poście). Twoje przerwania długo trwają. Gdy styk drga, to wywoła pierwsze przerwanie, a po rozpoczęciu jego obsługi zerowana jest flaga...
Oj pomieszałeś :) Dwie możliwości: Pierwsza wersja (opisałem wyżej): 1. wyłącz Free Running 2. zostaw przerwanie ADC, 3. przed pętlą główną w main() wywołaj pierwszą konwersję, 4. w przerwaniu ADC wykonuj to, co aktualnie wykonujesz w przerwaniu + wystartuj kolejną konwersję. Druga wersja zaproponowana przez BlueDraco: 1. wyłącz Free Running 2. zostaw...
Tablicami NVIC się nie przejmuj. Korzystaj z funkcji dostarczonych przez CMSIS, w tym przypadku nie warto stosować rejestrów wprost. Konfiguracja Timera OK, choć kolejność nie należy do poprawnych. Przyjrzyj się jeszcze rejestrowi EGR. Przerwanie? Brak kasowania flagi skutkuje ciągłym jego wywoływaniem. Flagę kasuje się na początku przerwania. I taka...
Dobrze byłoby mieć pomiar czasu zamiast generowania opóźnienia. Albo... skoro masz przerwanie od odebranego znaku, to w obsłudze przerwania zmieniasz kolor na czerwony (pewnie niezależnie od tego, jaki był) i ustawiasz flagę (wartość zmiennej), która blokuje normalne przełączanie kolorów (w taki sposób, że kod, który ma zmieniać kolory, rozpoznaje tę...
To zadziała Jutro rano sprawdzę na sprzęcie. Czekać, ale na co... ? Na konwersję Hmm.. no ok. Zatem Jaką mam pewność, że w przerwaniu od Timera nie będę czekał na tę konwersję? Nie mogę blokować "czasowo" funkcji przerwania od Timera... ja nie gotowa to ja olewasz i sprawdzasz w następnym przerwaniu. Ale oczywiście nie chodzi tu o ustawinie jakiejs...
Jeśli nie chcesz flag to stwórz kolejny blok if. Nie wiem dlaczego flagi nie są ok, skoro nawet gdyby się dało wywołać przerwanie w sposób jaki chcesz, to byłoby to nic innego jak ustawienie flagi, tyle, że w rejestrze IO. Ale jeśli to ci się nie podoba, to w gcc jest jeszcze jedna możliwość (rozszerzenie standardu) - po opuszczeniu danego bloku/zniszczeniu...
Myślę, że jedynym sposobem jest odbieranie danych z USARTa za pomocą przerwań. W programie należałoby ustawić jakieś opóźnienie i sprawdzać cyklicznie, czy nadszedł nowy znak. Jeśli w określonym czasie (zależnym od częstotliwości "powtarzania" klawiatury) nie nadejdzie nowy znak to diodę wyłączyć, jeśli nadejdzie i jest to 'w' to zapalić. Więc w funkcji...
Hmmm... ale jeśli poprawa wydajności ma polegać na cyklicznym wysyłaniu jednego znaku z bufora, np raz na 1ms korzystając z timera programowego lub sprzętowego, to i tak linia RW nie jest potrzebna. Po wysłaniu każdego znaku, funkcja obsługi wyświetlacz by się kończyła, a w tym czasie procek robiłby coś innego. Można założyć, że w ciągu tego czasu...
Problem mieści się w dwóch błędach w powyższym progrmie. 1. Po powstaniu błedu może być nieco więcej ustawionych bitów błędu, a to przy kolejnej próbie wywołania std::cin.operator>> może powodować rezygnację z wykonania kodu i kolejne zgłoszenie błędu. 2. Po wyczyszczeniu flagi nie jest czyszczony bufor strumienia, czyli nadal zawiera on niepoprawny...
(at)Marek_Gorecki Jeżeli korzystasz z funkcji xprintx to i tak musisz zaimplementować funkcje odpowiedzialne za wysyłanie pojedynczych znaków. I to w tych funkcjach po prostu dodaj oczekiwanie na zakończenie transmisji. W efekcie, kiedy printf zakończy się wykonywać będziesz miał pewność, że możesz od razu przełączyć się na odbiór. Ceną tego będzie...
Przy kompilacji tego programu nie masz żadnych ostrzeżeń? Dziwne. W każdym razie jeśli odebrane_dane są typu tablicowego, a funkcja USART_Transmit (char data) przyjmuje jako argument typ char, który w żaden sposób z tablicą jest niekompatybilny to masz problem. Najpewniej kompilator generuje co najmniej ostrzeżenie w tym momencie, bo to co robisz to...
Wbrew powszechnej opinii, funkcje obsługujące transfer po SPI mogą być dedykowane do nadawania i odbioru, szczególnie przy wysyłaniu pakietów. Przykład 1: Wysyłanie pakietu do modułu radiowego: [syntax=c]void radioBufferWrite(uint8_t reg, uint8_t nData, uint8_t* pData) { volatile uint8_t bDummy; // NCS activate RADIO_NCS_GPIO->BRR = RADIO_NCS_bm; //...
Ja pisze w C18 Microchipa i nie korzystam z zadnych wbudowanych funkcji w stylu setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16)... sprobuj wlaczyc timer wpisujac wartosci bezposrednio do rejestrow cos jak: TMR1IF = 1; TMR1IE = 1; T1CON = 0b01110000; TMR1L = 0xEF; // 20 ms TMR1H = 0xD8; TMR1ON = 1; Nie widze u Ciebie kasowania flagi TMR0IF w obsludze przerwania
ebx, esi i edi są rejestrami które musisz zachować w niezmienionej wersji wracając z funkcji. ebx z niczym extra mi się nie kojaży, ecx działa jako licznik w krótkich rozkazach typu "lawinowego": mov eax,0 ; szukamy zera czyli konca stringu (mov al,0 wystarczy, ale kto tak pisze) mov ecx,-1; max 0xFFFFFFFF znaków do przeszukania mov edi,lpString...
Zastanawia mnie np. taka kwestia: w jaki sposób prawidłowo rozwiązuje się problem komunikacji UART z peryferyjną elektroniką? Nie mam markera końca nadawania a max. czas odpowiedzi nie jest określony dla każdej z komend. Jedyne co mi przychodzi do głowy to właśnie jakiś timeout od ostatniego odebranego znaku lub parsowanie zawartości bufora cyklicznego...
https://obrazki.elektroda.pl/9462291700_... Chciałbym zaprezentować rozwinięcie eksperymentalnego odbiornika SDR, jaki opisałem ostatnio: https://obrazki.elektroda.pl/6947080100_... https://obrazki.elektroda.pl/7046555300_... Najbardziej w tym momencie interesującym fragmentem płyty jest głowica: https://obrazki.elektroda.pl/9911930900_...
Tomqu z podanych przeze mnie linków ściągnij przykład 04 i podmień w nim main.c na: [syntax=c]#include"main.h" //**************************************... #define BUF_SIZE 8 // definiujemy bufor o rozmiarze 8 bajtów (musi byc potega dwójki dla tego sposobu!!!) // definiujemy maskę dla naszego bufora #define BUF_MASK...
Jak ktoś zaczyna to prościej napisać te 5 linijek za pomocą standardowych bibliotek STM niż się zastanawiać, czy dobrze ustawiłem 13 bit w rejestrze którymśtam. OK, masz pięć (słownie: 5) linijek - zmieść w nich inicjalizację SPI z konfiguracją pinów - sam to napisałeś. Czekam. Chyba że chodziło Ci o 50 linijek, to co innego... Wszelkie inicjalizacje...
Witam, Proponuję do sprawdzania wpisać w funkcji main: while(1){ LCD_Initialize(); LCD_Clear(); LCD_Home(); LCD_GoTo(0,0); // w sumie to jest chyba zbędne, ale nie chcę wprowadzić w błąd LCD_WriteText("test"); _delay_ms(1000); } Bo w sumie jak chcesz odczytywać znak skoro nie...
Pierwszy i bardzo poważny problem zauważyłem w funkcji TIMER1_COMPA, jest nim linijka rjmp uspij. Gdy się wykona, to przerwania pozostaną zablokowane, oraz kilka bajtów na stosie zostanie uwięzionych - głównie adres powrotu z przerwania. Można temu zaradzić poprzez wstawienie pop + pop + sei przed rjmp. Drugi problem, to karygodna pętla główna - dławienie...
Przepraszam, że z takim opóźnieniem odpisuję, ale wcześniej nie było możliwości. Poniższy kod na sztywno porównuje 2 kolumny (pierwszą i drugą), ale równie dobrze zamiast procedurki (Sub), można zrobić funkcję (Function), która będzie miała dwa argumenty określające numery kolumn (albo literki kolumn). Przy większej ilości wierszy, wykonanie porównania...
Aby kod łatwo było analizować używaj znaczniki SYNTAX: [syntax=c] tu wklej Twój kod [/syntax] Plik : HD44780.c Plik : HD44780.h Dodano po 25 Ja połączyłem je w ten sposób ale pewnie źle bo wystąpiły błędy w kompilacji. Proszę o pokazanie mi sposób połączenia tych dwóch plików w prawidłowy sposób. Pierwsze uwagi: - te dwa pliki to tylko...
To jest przyklad tego jak mozna obsluzyc DS1820 przez mega 8 ale jest tam tez obsluga wyswietlacza w C.Moze sie pryda.Sam to dostalem od jednego kolegi z forum:-) wiec mam nadzieje ze sie nie obrazi...mnie interesowal DS. Pozdrawiam Maciek! #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <ctype.h> #include...
Testy przeprowadziłem na inteligentnym wyłączniku BK7231T z modułem WB3S. Po sformatowaniu LFS i ponownym uruchomieniu systemu nie działają żadne sterowniki, ponieważ włączam je poprzez plik autoexec.bat. Wyłączone są także wszystkie flagi z wyjątkiem flagi 46, która jest włączona dla normalnej pracy urządzenia. Na potrzeby testu spróbuj wyłączyć wszystkie...
Widzę, że się temat antenowy rozwinął, a tymczasem wrzucam od siebie dodatek zapisujący ustawienia głośności każdej stacji z każdego banku do odpowiedniego pliku gdzie są trzymane te zapamiętane nastawy. Wartości nastaw głośności są zapisywane na bieżąco do pliku bez zmian dla innych stacji z aktualnego banku. Tutaj funkcja zapisująca: https://obrazki.elektroda.pl/4066422400_...
http://obrazki.elektroda.net/57_12595397... Jakiś czas temu zafascynowała mnie tematyka mikrokontrolerów, a skoro z zawodu jestem programistą, przykładam do tematu szczególną wagę właśnie do strony oprogramowania. Niestety, dostępne w sieci biblioteki obsługujące peryferia są napisane (zazwyczaj) dość brzydko , są słabo udokumentowane oraz...
https://obrazki.elektroda.pl/3769485800_... Dzisiaj poznajemy podstawy LVGL, czyli "lekkiej i wszechstronnej biblioteki graficznej dla embedded". W celu ułatwienia nam pracy, w tym temacie posłużę się jej gotową integracją z płytką ESP32-2432S028R a same elementy interfejsu będę tworzyć w SquareLine Studio. Zobaczymy tu, jak może wyglądać...
https://obrazki.elektroda.pl/3753373600_... Mikrokontrolery, zwłaszcza ośmiobitowe, wydają się być generalnie łatwymi w użyciu układami. Mamy bowiem do dyspozycji prosty komputer i garść zwykle mało skomplikowanych peryferiów. Wystarczy napisać odpowiedni program i tyle. Ale nawet te proste z natury układy mają funkcje i możliwości,...
(...) (*(char **)(param_1 + 4), "rb"); if (pFVar1 == (FILE *)0x0) { lVar3 = 0; } else { fseek(pFVar1,0,2); lVar3 = ftell(pFVar1); fclose(pFVar1); } printf("nowy rozmiar %d\r\n",lVar3); } (at)__security_check_cookie(at)4(local_4 ^ (uint)&pFStack_28); return; } Wstępna ocena dostępnych informacji Pytanie dotyczy wielu kwestii: 1. Potencjalne wady...
Czy mamy szanse na coś np. w tym stylu: visual: min_temperature: 10 °C max_temperature: 30 °C temperature_step: 0.1 °C switch: - platform: tuya name: "Power" icon: mdi:power switch_datapoint: 1 internal: True sensor: - platform: tuya name: "Temperatura" device_class: "temperature"...
Na ZX SPECTRUM tak powinno to działać. Na Cobrze z wyprowadzonym przewodem z portu FE sterującym przerzutnikiem dzielącym przez 2, z wyjścia którego przez opornik jest sterowana baza tranzystora T3 (głośnikowego) także powinno to działać, chociaż tam nie będzie sprawdzany bit 4 akumulatora. Tam wywołanie OUT(FE),A ustawi na wyjściu H, następny OUT(FE),A...
Zobacz sobie do rejestru RSTCTRL.RSTFR. (at)ElektrodaBot W poniższym fragmencie kodzie w C dla AVR128DA32: int main(void) { CCP = CCP_IOREG_gc; CLKCTRL.OSCHFCTRLA = CLKCTRL_FRQSEL_8M_gc;// OK init_Uc(); // initialization mikrokontrolera TWI1_init(); ; init_MCP(); // initialization MCP23017 lcd_init(); lcd_gotoxy(5,0); lcd_puts("dziala OK"); _delay_ms(500);...
Cześć po problemie z poprzedniego postu pojawił się kolejny zonk. Mam problem z funkcją szybkiego licznika w CP1H. Używam do tego celu funkcji PRV 881. Używałem już nie jeden raz tej funkcji ale teraz trafił mi się taki problem. Chodzi o to jak zerować odczyt ? zawsze nie miałem z tym problemu ale teraz po prostu to nie działa nie wiedzieć czemu. Funkcję...
Query Things Data Model: { "result": { "model": "{\"modelId\":\"000004rdgc\",\"...
Dziękuję za ciężką pracę. urządzenie działa dobrze, niektóre punkty danych nie są wyświetlane poprawnie w HA. jakie są prawidłowe flagi do ustawienia? i czy nie ma takiej funkcji jak backlog startDriver BL0937 dla tego urządzenia. i jeszcze jedno pytanie, jak skonfigurować automatyczne aktualizacje oprogramowania układowego dla urządzeń.
Teraz wszystko działa (oprócz pilota bezprzewodowego): Wygląda na to, że muszę używać natywnego interfejsu zamiast aplikacji internetowej dla tego urządzenia, ponieważ jest to RGBW (ciepła biel). Wygląda na to, że potrzebuje flagi 24, aby działać poprawnie. Przycisk „inteligentny” jest na pinie 26. Tak więc prawidłowe piny z ustawioną flagą 24 to: "pins":...
https://obrazki.elektroda.pl/8368409700_... Celem projektu było stworzenie amatorskiego programowalnego sterownika logicznego. Motywacją do stworzenia tego sterownika była potrzeba posiadania uniwersalnego urządzenia pozwalającego w warunkach laboratoryjnych na szybkie przetestowanie różnych algorytmów sterowania przy przebiegach szybkozmiennych....
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...
Jakie są ewentualne wady dodawania kodu optymalizacyjnego, takiego jak poniższy, do pliku makefile? CFLAGS += -ffunction-sections -fdata-sections LDFLAGS += -Wl,--gc-sections CFLAGS += -flto LDFLAGS += -flto Świetne pytanie! Dodanie flag optymalizacyjnych do pliku Makefile może rzeczywiście poprawić wydajność i zużycie pamięci przez program. Istnieją...
(...) bić, żeby poinformować kompilator, że ma optymalizować kod w C, ale nie pomijać tej wstawki asm(...)? Próbowałem asm volatile (...), nie pomaga. (at)ElektrodaBot jaka dyrektywa działająca tylko na wstawkę asm() w programie w C kompilowanym przy użyciu GCC ochroni ją przed wyrzuceniem przez optymalizację? Bezpośrednia odpowiedź na pytanie Aby...
(at)ElektrodaBot (at)ElektrodaBot proszę, przeanalizuj ten z załącznik stepgen.c i sprawdź, czy jest on poprawny. A drugi problem to "void stepgen_update(stepgen_t *stg)". Nie wiem, gdzie to wpisać. Bezpośrednia odpowiedź na pytanie Z załączonego kodu wynika, że główny problem dotyczy zarówno niekompletnej (lub błędnej) deklaracji struktur w pliku...
https://obrazki.elektroda.pl/6687159300_... Każdy, kto rozważa przesiadkę z ośmiobitowego mikrokontrolera na coś mocniejszego i o większych możliwościach naraża się na pewien problem, który łatwo przegapić, bo przy ośmiu bitach pojawia się sporadycznie. Ale pomnóżmy liczbę bitów przez dwa, cztery, albo i osiem, i zaczynają się schody....
markery flagi attiny13 flagi własne flagi
avrdude error enable trójnik grzałka toledo radio
whirpool 4820fd whirpool 4820fd
Brak połączenia Wi-Fi w laptopie HP ProBook 4535s Oznaczenia ECE, VP2, FL w radiu Fiat 250 FL VP2 ECE