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...
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...
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...
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...
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...
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...
(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...
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...
https://obrazki.elektroda.pl/8536930800_... Witam Szanownych Kolegów W kolejnej publikacji chciałbym rozwinąć temat firmowego protokołu diagnostycznego ALDL o prędkości 160 baud. Był on stosowany w epoce OBD1, między innymi w starszych modelach Opla (np. w Kadecie), a za sprawą "zapożyczenia" rozwiązań GM trafił również do Polonezów....
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_...
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...
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...
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_...
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ń.
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ć...
KEELOQ + rolling code można wykorzystać w swoim projekcie DIY bez przeszkód? Oczywiście. Dodano po 33 Mogę zainteresowanym podać kod KEELOQ dla pilota i odbioru , oczywiście z innymi danymi pilota ;). PILOT: Dodano po 10 Bardzo ciekawy i użyteczny projekt, właściwie to prototyp, który może przekształcić się w produkt. A czego mu brakuje żeby już nie...
W tej chwili nie mogę powiedzieć, czy jest bezpieczny, to piekielnie duża funkcja ;) Co masz na myśli mówiąc "bezpieczny"? Jakieś niepożądane efekty uboczne? W każdym razie istnieje inny sterownik, który wywołuje tę funkcję z funkcji poleceń: PixelAnim_SetAnim() w drv_pixelAnim.c. Dodałem wywołanie apply_smart_light() w SM2235_Current() i wydaje się,...
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,...
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...
(...) (*(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...
Zgodnie z obietnica prezentuje sposob podlaczenia wyswietlacza poprzez przejsciowke USB<->rs232. Po stronie wyswietlacza liczy sie tak naprawde protokol komunikacji wyswietlacz <-> lcd4linux. Mozemy wlasciwie napisac obsluge wyswietlacza na dowolny uc i wyswielacz, pod rygorem zachowania standardu tej komunikacji. Przykladowy program napisany...
Query Things Data Model: { "result": { "model": "{\"modelId\":\"000004rdgc\",\"...
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ę...
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...
(at)elektrodabot OK, skompilowałem poprawiony kod i działa. Zrobiłem to w innym Linuxie niż poprzednio - Ubuntu 16.04.6 LTS bezpośrednio na zamontowanym udziale sieciowym Windows. Wcześniej wprowadziłem kosmetyczne zmiany w kodzie: To działa. Dziękuję za pomoc: root(at)ubuntu:/mnt/mp# nano ana.cpp root(at)ubuntu:/mnt/mp# g++ -std=c++17 -O2...
attiny13 flagi własne flagi markery flagi
jerzy majkut tonsil zg40c schemat zwrotnicy wymiana gniazdo xperia
papier toaletowy papier toaletowy
Czyszczenie układów scalonych: techniki i narzędzia Zipp motorynka 1500 km – uszkodzenie rozrusznika, elektromagnesu i problemy z uruchomieniem po braku paliwa