A nie prościej wykorzystać przerwania EEPROM? Inicjować je flagą potrzeby zapisu struktury? A w przerwaniu "lecieć" po kolejnych elementach struktury? robiw Można tak, albo dodać kopiowanie struktury do bufora tymczasowego z którego odbędzie się zapis. Ma to sens jeśli w czasie zapisu pola struktóry moga się zmienić - dojdzie wtedy do uszkodzenia danych....
Cześć, posiadam dość dużą wiedzę z zakresu programowania Arduino. Chciałbym rozpocząć przygodę z programowaniem modułu ESP8266. Moim głównym celem jest wykorzystanie kodów źródłowych oprogramowania supla aby stworzyć własne urządzenie które będą mógł w miarę elastycznie modyfikować. Moim problemem jest to, że nie znalazłem żadnych solidnych dokumentacji...
Zacznij od określenia protokołu transmisji - w jaki sposób będziesz przesyłał te dane (znakowo/binarnie), jaka jest ich długość, po czym program może je rozpoznać, czy i jak sprawdzać poprawność transmisji. Zastanów się nad strukturą oprogramowania - same przerwania, RTOS, czy (w ostateczności) jakaś pętla zdarzeń? Potem dopiero planuj programową obsługę...
Rezerwujesz pamięć na stercie na strukturę LCD_trans - ponieważ zawiera ona pole o wielkości dynamicznie zmienianej, więc musisz zarezerwować miejsce na samą strukturę oraz długość przechowywanego w niej tekstu.
Najwyraźniej uszkodzona jest struktura (przerwany potok) rejestru drzewa HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl... . By temu zaradzić wpierw za pomocą regedit wykonaj kopię rejestru a w szczególności HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl... a następnie zmień nazwę...
Potrzebuje odpowiedzi na pytania : 1)Działanie przerwania pseudoniemaskowalnego i co to jest 2)Ramka stosu podczas przerwania 3)Układy peryferyjne kontrolera 68HC11 4)Struktura wew 68HC12
Choć dopiero zaczynam przygodę z STM32 to po mojemu nadpisujesz strukturę i dlatego zawsze działa Ci ostatnie zdefiniowane przerwanie.
zakręceniu kołem idzie tam ok 3 v. Więc chyba dynamo i płytka z jakimś układem jest raczej niesprawne, napięcie jest według mnie za niskie. Uszkodzenie takich diod polega przeważnie na zniszczeniu struktury i przerwaniu obwodu.
Nie wiem na ile jesteś w stanie ingerować w kod, ale... Cała obsługa transmisji po SPI powinna zostać przeniesiona do funkcji obsługi przerwania od SPI. Funkcje z pętli głównej powinny tylko przekazywać wskaźniki na struktury z danymi i callbackiem do "drivera" SPI. Driver SPI powinien atomowo zbierać te wskaźniki do swojego bufora i inicjować transmisję,...
Strukturę zostawić globalną, a w obsłudze przerwania zrobić jej kopię lokalną (całej struktury lub używanych elementów). Przed wyjściem z przerwania dokonać aktualizacji globalnej zmiennej jeśli konieczne, lub obligatoryjnie.
Był gdzieś niedawno dość długi temat o tym. IMO lepiej zawsze zmienne zerować dla czytelności, a w przypadku AVR-GCC po włączeniu optymalizacji te zbędne zerowania zostaną przez kompilator wycięte. Poza tym, dziwnie trochę ludzie wykorzystują słowo kluczowe volatile. W Twoim przypadku IMO nie powinno się stosować go wewnątrz struktury. Ostatnio widziałem,...
Proszę o pomoc szukam informacji : zaproponuj rozbudowę systemu pBlaze pozwalającą na obslugę wielu źródeł przerwania przy zalozeniu iz nie modyfikujemy struktury proc.
Nie ma takiej zależności. Jeśli nie korzystasz z dynamicznej alokacji pamięci to możesz to bardzo zgrubnie oszacować po ilości zmiennych automatycznych (lokalnych), a szczególnie tablic. To co czyni takie oszacowanie szczególnie trudnym to określenie stopnia zagnieżdżenia funkcji - bo to zajmuje sporo pamięci na stosie. A zależy to od ilości przerwań,...
Nie macie pojęcia na czym polega problem w cięciu hartowanego szkła. Nie chodzi o to że jest twarde. Tylko o to że pęka na wskutek przerwania jego oryginalnej struktury. Jak by tego nie ciąć, to przerwie się strukturę. Nawet powolne trawienie chemiczne w końcu powoduje pęknięcie.
Tego rodzaju kod najprościej Ci będzie opisać za pomocą automatu, może kod nie będzie aż tak szybki, ale na pewno będzie się go dało zrozumieć :) setjmp/longjmp też może być, ale to działa raz (tj. dla jednego przerwania), struktura sigjmp_buf zajmuje 23/24 bajty na AVR a zapamietanie/wykonanie skoku też zajmuje kilkanaście instrukcji. Szkielet implementacji...
Witam! Próbuje uruchomić przerwania na zaprojektowanym układzie w oparciu o procesor ARM AT91RM9200. Struktura przerwań jest następująca: na nóżce PB29 IRQ0 obsługuje 8 przerwań współdzielonych. Każde przerwanie powinno być obsługiwane przez procesor, ale niestety jedno z przerwań nie jest właściwie obsługiwane. Przejawia się to tym, że czasami się...
Pola tej struktury są modyfikowane w przerwaniu więc moim zdaniem volatile jest konieczne. Volatile jest konieczne tylko i wyłącznie jeśli pola struktury modyfikowane są (w nieuporządkowany sposób) w przerwaniu _i_ w kodzie głównym. Jeśli TYLKO w przerwaniu to nie ma takiej potrzeby. Jeśli tylko część struktury jest "współdzielona", to cała nie musi...
Jeśli zaś wywołana funkcja wywołana nawet z takiej pętli będzie miała argument bez volatile to w odróżnieniu od pętli głównej main() która nie wie co się dzieje w komórce pamięci 0x0060 - to nasza funkcja otrzyma prawidłowy adres argumentu ! i na wejściu odczyta aktualną - zmienianą w przerwaniu wartość tej komórki. Absolutnie nie. To zależy od kompilatora...
Raczej doczytał, bo wstawił przed deklaracjami zmiennych, a jeśli rozwiązaniem jest wstawienie volatile też wewnątrz struktury, to raczej nie jest to oczywiste bez doświadczenia z C.
Szybki ESC pozwala przerwać proces. Celem CHKDSK jest poprawienie struktur logicznych tak, żeby mozna było zamontować partycję, a jeśli przy okazji stracisz jakieś dane, to już programu nie interesuje.
W temacie "2 UARTY ..." załączyłem pliki C do obsługi komunikacji szeregowej portów 1 i 0, zobacz tam, to są gotowe przykłady. Sprawdź czy przerwania w ogóle działają np. na timerach, kiedyś miałem taki przypadek że źle ustawiona była struktura harwardzka pamięci i przerwania nie były tam gdzie powinny.
Jest też możliwość, że w trakcie podmiany kart został ruszony radiator co spowodowało przerwanie struktury pasty (tu czytaj kitu do okien) fabrycznie nakładanej na GPU. Jednak przegrzanie procesora graficznego objawiało by się w inny sposób na ekranie a już na pewno powodowało brak wyświetlania obrazu. 9600GT z reguły są mało podatne na uszkodzenia...
No jak nadaję wartość w main()- to bez błędów. Nie rozumiem- dlaczego. Jak to nie rozumiesz dlaczego - to chyba nie dziwne, że wewnątrz funkcji można przypisać dane do pól struktury. Struktura zdeklarowana jako globalna- no bo przed main- a nadać wartości nie można. Jak nie nie można ???? A jak będę chciał zmienić te wartości w innej funkcji albo w...
No coś w tym guście. Zdaje się ze właśnie WaitCommEvent usypia wątek i z tego co widzę przyjmuje magiczną strukturę overlaped.
W tym problem, że warunek może jest sprawdzany ale wykonanie przerwania zmienia zmienną c ale nie jest ona brana pod uwagę przy wykonywaniu pętli while. Sam program główny działa prawidłowo, przerwanie przerywa działanie programu głównego ale wykonanie programu przerwania nie wpływa na wyokonywania odpowiedniego fragmentu programu głównego. Chodzi mi...
Można też zrobić sobie ładną strukturę do przechowywania danych o przycisku, a potem z tych struktur utworzyć tablicę i dodatkowo tablice wskaźników na funkcje dla każdej akcji każdego przycisku i mamy wszystko rozwiązane w eleganckiej i szybkiej pętli w przerwaniu.
A dlaczego zamiast zmiennej data nie użyć struktury, która składa się z dwóch kawałków: dataH i dataL? W przerwaniu wykonujemy dwie atomowe operacje odczytu rejestrów do stosownych części struktury, a w programie głównym używamy całej struktury. Ale to nic nie zmieni. Co prawda w przerwaniu przepisanie danych do struktury będzie poprawne (ale ono zawsze...
W życiu bym nie wpadł na to że kompilator zoptymalizuje program, tak że nie będzie działać. Raczej szukałem problemu w moim kodzie i logice działania. W planie procesor ma obsługiwać wyświetlacz, przerwania zewnętrzne (pomiar prędkości maszyny) oraz sterowanie PWM i przekaźnikami. Wracając do tematu powinienem zadeklarować całą strukturę jako volatile...
Jeżeli jedyną czynnością wykonywaną w przerwaniu jest ustawienie znacznika, to to przerwanie jest całkowicie zbędne - w końcu każdy timer czy UART ustawia sprzętowo bit, który można programowo testować w pętli głównej. Przy czasochłonnych obliczeniach takich jak FFT sensownie jest użyć RTOSa. Gdyby nie to, struktura z kilkoma przerwaniami bez pętli...
Ok .. może dla początkującego to może to być troche niezrozumiałe. Wskaźniki , struktury zazwyczaj sprawiają problemy na początku. W tym przypadku można by faktycznie umieścić cały kod w przerwaniu, bo jest go tak niewiele że przerwania na pewno się nie nałożą. Mam nadzieje że sam plik display.c jest przynajmniej trochę zrozumiały. Jeżeli chcesz wytłumaczenia...
Nie wiem, o jaki przykład chodzi, ale w tym jest pokazane, że można korzystać ze wszystkich pól struktury timeval: [url=https://github.com/espressif/esp-id...
Czy jesteś pewien, że stos Ci się nie przepełnia? Kompilator przed tym nie ostrzega, bo nie zawsze można na poziomie kompilacji przewidzieć rozmiar stosu. Stos w AVRach wypełniany jest od końca pamięci SRAM, jak się stos spotka z danymi, no to koniec... Czy masz w programie sytuacje, że np. wywołujesz funkcję w innej funkcji, albo nawet głębiej? Albo...
No to zła wiadomość. Uszkodzenie jest wewnątrz scalaka. Jeszcze można spróbować rozwiercić obudowę w miejscu gdzie pin idzie do środka obudowy z nadzieją że pin jest przerwany zaraz po wejściu do obudowy. Jeden układ scalony tak uratowałem. Ale jak jest przerwany tuż przy strukturze, czyli przerwany jest ten złoty drucik łączący miedz z krzemem, to...
Jak to jest z atrybutem volatile dla struktur? Gdy struktura ma volatile to wszystko co się znajduje w strukturze jest volatile? Czy dodatkowo każdy element struktury trzeba oznaczać jako volatile? struct nazwa_struktury { uint8_tval1; uint8_tval2; } volatile x; To mogę już używać w x.val1 i x.val2, w przerwaniach i w pętli głównej programu?...
A pytanie jest takie- czy da się to zrobić bez while()? Tylko na przerwaniach. FIFO na instrukcje, kolejkowanie kolejnych tranzykcji. Opracowujesz Sobie zgrabną strukturę: teraz operował. I masz pełną dowolność, prosta maszyna stanów FSM i sprawdzasz za pomocą if co można zrobić i zmieniasz stany. Nie ogranicza Ciebie timeout, bo takiego z reguły nie...
1. Dlatego, że w przerwaniu od przycisku musisz zablokować to przerwanie i uruchomić timer, a w przerwaniu timera odblokować z powrotem przerwanie - to zajmuje jakieś z 8 linii kodu i wymaga dwóch przerwań. Obsługa przycisku w przerwaniu timera zajmuje 2 linie kodu i wymaga jednego przerwania dla dowolnej liczby przycisków. 2. Robi się to, kiedy jest...
Ja też dorzucę swoje 5 gr :) Poniżej delay oparte o timer, chcąc wykorzystać inny timer należy LPC_TIM0 zamienić na inny np. LPC_TIM1. [syntax=c] #include "LPC17xx.h" #include "lpc17xx_gpio.h" #include "lpc17xx_timer.h" void delay_us(uint32_t czas) { TIM_MATCHCFG_Type MatchConfigStruct; LPC_TIM0->IR = 1; // zresetowanie flagi przerwania od rejestru...
Miałem podobny problem z przerwaniem od RTC (przeliczanie/odświeżanie dnia/miesiąca/godziny itd do struktury). Po zainicjowaniu przerwań: [syntax=c]/* Enable the RTC 1s Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemp... = 4; NVIC_InitStructure.NVIC_IRQChannelSubPri... = 0; NVIC_InitStructure.NVIC_IRQChannelCmd...
Przy czasach na poziomie sekund, minut to nie jest to żaden problem. Jeden timer ustawić na stałe przerwanie np co 100ms, w przerwaniu od tego timera przeglądać jakąś tablicę, w której każdy jeden element odpowiada jednemu programowemu licznikowi. Zmniejszać liczniki w elementach w tej tablicy, po czym po wyzerowaniu się wywołać jakąś funkcję. W moich...
Dzięki za odpowiedź. Na symulacji strzałka po prostu leciała po kodzie i przynajmniej ja nie byłem w stanie z tego zbyt wiele wywnioskować. Czy jest inna metoda (instrukcja) która jest podobna do pustej pętli "do-loop until" (poza przerwaniami)?
Problem leży zapewne w kodzie, który odbiera dane z UART, albo w całej strukturze oprogramowania - zagnieżdżanie procedur, ew. samych przerwań. Dopóki tego nie pokażesz nic Ci nie pomożemy.
Problem zmiennej globalnej: - system składający się z wielu plików, kilku lub kilkunastu przerwań, dostęp do tej samej struktury opisującej "dane urządzenie" z przerwań oraz wielu innych miejsc. - tworząc zmienne w funkcji ograniczamy się do tej funkcji, więc po wyjściu z funkcji pod tym adresem może być coś innego - można stworzyć w main tą zmienną...
Wyskoczyły mi takie okienka: http://obrazki.elektroda.pl/6247632700_1... http://obrazki.elektroda.pl/6018121100_1... Ale kliknąłem "wszystkie znalezione" i zaczęło mi odzyskiwać dane "odczyt MFT" ? I teraz nie wiem czy kliknąć przerwij bo komunikat mówi "To spowoduje odzyskanie niepełnej struktury katalogów". Przerwać...
Nie piszę z biblioteką, ale spróbuj wrzucić konfigurację przerwań po timerze, a najlepiej zamiast ładować tam tę beznadziejną strukturę, użyj NVIC_EnableIRQ(TIM1_CCIRQn) czy jakoś tak, bezp. z CMSIS.
Wyłączenie przerwania przed załadowaniem ostatniej danej gwarantuje, że niezależnie od okoliczności nie nastąpi zgłoszenie przerwania TXE. Jeżeli najpierw załadujesz, a potem wyłączysz, to po załadowaniu wskutek działania FIFO lub z powodu innego przerwania nadajnik może zgłosić przerwanie TXE przed jego wyłączeniem i wtedy jeszcze raz wejdziesz w obsługę...
Ja się tam nie dziwię, że Ci nie działa... przy takiej strukturze przetwarzania skankodów na kody znaków możesz mieć bardzo duże opóźnienia. Radziłem Ci już - skup się na razie na 2 rzeczach: 1) odczytaniu bajtu z klawiatury (przerwanie), 2) wypisaniu go na LCD/UART w postaci hex (pętla głowna). Przerwania musisz blokować na jak najkrótszy czas, czyli...
Specjalna struktura w pamięci EEPROM (w wewnętrznej pełen rok się raczej nie zmieści) lub FLASH o stałym rozmiarze dla każdego wpisu, wyszukiwanie binarne i zestaw czterech warunków. Jeśli tablica będzie posortowana według klucza z datą to wyszukiwanie binarne będzie szybkie (max. 8 iteracji). Stąd będziesz miał już właściwy indeks (offset). Potem sprawdzanie...
Ostatnio był podobny temat: http://www.elektroda.pl/rtvforum/topic31... Rozdzieliłbym jednak naukę samego języka od mikrokontrolerów. Rozpocząłbym od opanowania C oraz C++ na PC bazując na dobrych książkach do tch języków. Oszczędzi Ci to czasu w kolejnych etapach nauki ponieważ 90% dobrego kodu będziesz mógł przenieść z PC na dowolny mikrokontroler....
W pętli głównej masz robić wszystko. Przerwania mają ustawiać ci jedynie odpowiednie flagi.
Mnie również wysunął się na pierwsze miejsce dysk z danymi zamiast systemowego tydzień temu i przerwałem instalacje w chwili formatowania około 15%. Po restarcie wszystko wraca do normy bo do 99% formatowanie bada strukturę katalogów i chyba zapisuje coś dla UNFORMAT a dopiero wtedy zaczyna nadpisywać więc na przyszłośc polecam szybkie wyłączenie komputera...
Im bliżej graniczy możliwości chcesz pracować tym bardziej zaawansowanych i precyzyjnych metod trzeba użyć, spójrz na to z innej strony - ile wysiłku i pieniędzy warto włożyć żeby zaoszczędzić kilka złotych na tranzystorach? Temperaturę struktury można oszacować na podstawie jakiegoś parametru zależnego od temperatury ale wymaga to przełączenia tranzystora...
Zachowujesz rejestr B na stosie , a tuż przed powrotem z przerwania odtwarzasz B , więc żadne zmiany poczynione w tym rejestrze w procedurze przerwania , nie odnoszą skutku . Piotrek PS Popraw strukturę programu , bo jest niewłaściwa - pusty wektor dla RESET :(
Jeśli założysz, że te dane są zawsze za obszarem wektorów przerwań ( niezależnie jakiej wielkości) to nie musisz przeszukiwać całego 1MB tylko ograniczyć się do pierwszych kilku KB. Jeśli bootloader nie znajdzie takiego paternu w tych pierwszych kilku KB to można przyjąć, że firmware nie jest wgrany lub jest uszkodzony. W takiej strukturze danych za...
Moim zdaniem AVR to stanowczo za małe mikrokontrolery, by zarządzać w nich dynamicznie pamięcią. Już sama funkcja malloc zajmie całkiem sporo pamięci FLASH. Pamięci RAM też w większości AVR nie ma jakoś wyjątkowo wiele, by było czym zarządzać. Inna sprawa, że malloc/calloc/realloc i free mają zastosowanie do tablic, których rozmiary nie są znane w trakcie...
Witam, 1. wg. mojej wiedzy w tym konkretnym przypadku jest to operacja atomiczna (przypisanie do zmiennej 'Pomiar', domyślam się że to jakiś uint) i wyłączenie przerwań/przerwania nie jest konieczne. Gdybyś jednak miał np. strukturę Pomiar {int srednia_z_10, srednia_z_5; } to wtedy należałoby to zabezpieczyć. 2. Możesz wyłączać tylko jedno przerwanie(UART)...
No niestetety nie jest prenumeratorem a sciaganie z ftp za pomocą kodów sms-owych zawsze skutkowalo pomniejszeniem mojego salda i nic nie znaczącymi kodami dostepu. Takie pytanie odnośnie przerwań od liczników. Czy elementy struktury inicjującej timery t.j. TIM_Period,TIM_Prescaler mam traktować jako kolejne dzielniki czestotliwosci wzorcowej timera,...
Nie widzę obsługi przerwania USART, które jest aktywne. Zgaduję, że procesor grzęźnie w pętli domyślnej pustej obsługi przerwania. Zamiast bezsensowynch wygibasów z wypełnianiem struktury danych i wołaniem NVIC_Init() ten sam efekt osiągniesz prostym wywołaniem NVIC_EnableIRQ(USART2_IRQn);
Nic nie radzi sobie z dziurami, ale kopiując plik w strukturach logicznych błędy odczytu mogą spowodować przerwanie operacji i utratę już uzyskanego rezultatu, a kopiowanie posektorowe omija uszkodzony sektor i idzie dalej.
Posumujmy: mamy ocenić, czy narzut czasowy na obsługę przerwań w nieznanym urządzeniu o nieznanym schemacie i nieznanym oprogramowaniu o nieznanej funkcjonalności i strukturze nie będzie przeszkadzał w tej nieznanej funkcjonalności. Proponuję udać się do wróżki - inżynier tutaj nie pomoże.
(at)ElektrodaBot podaj kod źródłowy w języku C na mikrokontroler PIC16, dekodujący sygnał DCF77. Założenia są takie, że przebieg z odbiornika DCF77 podawany jest na wejście przerwania zewnętrznego INT0 a program ma uzupełnić odpowiednią strukturę zawierającą pole daty i czasu z dokładnością co do sekundy. Program bez funkcji delay, ma działać jako maszyna...
Kontynuując, aby sprawdzić aktualne wywołane przerwania w systemie, sprawdzamy rejestr NVIC->ICPR (w cortex-m0+ to NVIC->ICPR IRQn_Type . Kasowanie przerwania odbywa się po przez wpisanie 1 pod zgłoszone przerwanie, czyli jeśli na 3 bicie mamy 1, to ponownie tam wpisujemy 1, wtedy jest ono kasowane. Ale mam teraz inny problem, mianowicie za nic...
Kod który podałeś działa poprawnie i generuje przerwania. Więc tu problemu nie ma. Skoro ci coś nie działa to błąd leży w innym miejscu. Swoją drogą podziel ten program na moduły, rozbij na funkcje, bo ma fatalną strukturę i jest kompletnie nieczytelny.
o dzięki, szukałem dzisiaj tego bitu w PM, ale nie mogłem znaleźć. Rzeczy związane z samym rdzeniem są opisane na stronie ARM - w dokumentacji od ST można czasem coś znaleźć, ale zwykle nie ma to sensu. http://infocenter.arm.com/help/index.jsp... Mam takie pytanie co do atomowego przepisania zmiennej nr. 1 do...
Ale co konkretnie? Proces włączania i wyłączania? Proces włączania tranzystora IGBT jest uwarunkowany strukturą MOS bramki i jest zbliżony do procesu włączania tranzystora polowego mocy, z tą jednak różnicą, że czas obniżania napięcia przyrządu jest przedłużony w skutek przechodzenia tranzystora p-n-p (występującego w schemacie zastępczym) przez zakres...
Nie. Bootloader jest oddzielną aplikacją, z własnymi segmentami danych. Skacząc do niej niszczysz wszystkie struktury danych aplikacji z której skaczesz. Powrót jest więc niemożliwy - chyba, że uruchomisz aplikację od nowa. Z tego też powodu przerwania uruchomione w aplikacji nie mogą być wykorzystane przez bootloader - konkretnie mogą, ale będą one...
A próbował Pan odczytać tę pamięć? Do czego zmierzam - stan logiczny na pinie 7 ma wpływ na możliwość zapisu pamięci a nie odczytu. Ten pin może być nawet nie podłączony. Z PDF- u Mode (MODE). The MODE input is available on pin7 (see also WC feature) and may be driven dynamically. It must be at VIL or VIH for the Byte Write mode, VIH for Multibyte Write...
Witam Kolegów, Wiem, mógłbym to sprawdzić, ale może ktoś zna odpowiedź bez sprawdzania. "Zwykłe" zmienne, które używane są w pętli głównej jak i w przerwaniu należy zaopatrzyć w specyfikator volatile... z wiadomych względów. Ja to jest w przypadku pól struktur? Jeśli struktura używana jest zarówno w pętli głównej jak i w przerwaniu to musi być volatile,...
StringIndex jest zerowany w pętli głównej po skopiowaniu zawartości Stringnew do innej tablicy. No to już wiesz, gdzie szukać błędów. A dlaczego USART2 nie może nadawać i innym momencie? Co prawna nie nadaje, jest tylko to, co widać na terminalu. Dlatego, że: - może spowodować to oczekiwanie w przerwaniu USART4 - może to powodować rozsypania logiki...
źle Cię uczono z tym ustawianiem znaczników - taka technika programowania nie ma ani sensu, ani uzasadnienia praktycznego. To taki mikrokontrolerowy zabobon. Obsługa przerwania nie ma być "jak najkrótsza". Ma być "nie za długa", tak, aby nie kolidowała z innymi przerwaniami. Jeśli obsługa przerwani polega tylko na ustawieniu znacznika, to lepiej wyłączyć...
..Poza tym - tak jak napisałem już w innym topicu - po co deklarować struktury, zmieniać w nich milion niepotrzebnych zmiennych i wywoływać dziwne funkcje , skoro identyczny efekt daje w 99% przypadków zapis typu: USART2->CR1=0x206C; Pewnie, a po 3 miesiacach każdy będzie pamiętał co oznaczała wartość 0x206C... Nie mówiąc już o osobie, która potem...
Akurat "zarządzanie pamięcią" pod Windows ma niewielki związek z programowaniem mikrokontrolerów, podobnie jak typowe struktury programów, które pisze się na komputery osobiste. Podszkol się lepiej z przerwań i pisania programów w konwencji automatów.
Witam; jestem początkującym, więc proszę nie śmiejcie się z pytania. Ale ledwo co w miarę dobrze zrozumiałem pojęcie wskaźników i zaczełem je używać a teraz chciałbym zrozumieć wskaźniki na funkcję. Tyle tylko, że kompletnie nie mogę zrozumieć ich sensu, do czego służą, kiedy się przydają. Czy mógłby któryś kolega podać mi jakiś uproszczony przykład...
Jak pisałem, C może być, tylko, musisz wywalić na dzień dobry tabelę wektorów przerwań, kod startowy C, a potem dobrze przemyśleć strukturę kodu. IMHO nie ma to za wielkiego sensu, bo i tak wylądujesz na niskim poziomie.
Żeby odzyskać dane? Pierwsze to kopia a potem odzyskiwanie i to po pewnie sygnaturach (bez struktury folderów)...
Korzystam z ds'a układu MCP4728, rev. E. 0. Maksymalna częstotliwość zegara dla I2C przy zasilaniu ~3V (nie 5V), to 400kHz. 1. Załadowanie danych do 4 rejestrów to 83 bity, strona 38. 2. Czas przesłania danych do 2 układów, czyli 8 kanałów, to (1/400 * 83)*2 = 415us. To daje maksymalną częstotliwość odświeżania rejestrów 2,41kHz. 3. W Twojej propozycji...
Bez przesady. To struktura scalona, czy tam będzie 1000 czy 10000 tranzystorów to cena taka sama.
Witam ponownie, Wszystkie opisy portów przerwań itp znajdzie kolega w datasheet do uP wszystko dostępne na stronie Atmela. Jak kolega chce wykorzystać to co ma to proponuje driver na 3 tranzystorach bipolarnych (tzw push-pull). Jak będzie problem z doborem wartości elementów mogę pomóc. PS. Jeśli tranzystory nie mają diody źródło-dren w strukturze wynikającej...
Freddi dlaczego komentarz jest nie zgodny z działaniem? Dzięki za ta druga strukturę ale chciałbym to zrobić na razie bez obsługi przerwania, a bardziej od działającego pwm zależy mi żeby zrozumieć czemu mój kod nie działa ;/ Preloadowanie ARR również nic nie zmieniło
Podłącz głośniki basowe bezpośrednio pod wzmacniacz i napisz co się dzieje. Jeśli problem występuje po podłączeniu bezpośrednim pod wzmacniacz ( a wykluczasz winę wzmacniacza i kabli) to wiadomo że wina po stronie samych głośników. Czy przy naciskaniu palcem na membranę czuć wyraźny opór? Czy po wduszeniu membrany powraca ona do swojego pierwotnego...
Witam wszystkich. Czy ktoś może wie, jak rozbudować kontroler PicoBlaze do obsługi wielu źródeł przerwania, tak by nie modyfikować struktury procesora?
Nie masz racji i było to już wyjaśnione. Procedura obsługi przerwania może zmodyfikować zmienną w rejestrze bez wiedzy wątku.
(at)lazor Dlaczego patrzysz przez pryzmat architektury, którą znasz, a nie odnosisz się do artykułu? Wszystkie 3 części dotyczą prostych struktur 8-bitowych jakie były na rynku 10-20 lat temu, gdzie jedynym efektem przejścia do obsługi przerwania jest załadowanie licznika rozkazów adresem ISR i ustawienie flagi obsługi przerwania. A jeśli robisz w userlandzie...
Gdy program odpalam na sprzęcie i podglądam rejestry debuggerem, okazuje się, że przedstawiona funkcja oprócz ustawienia wymaganych bitów w rejestrze MCR ustawia jeszcze dodatkowo przerwanie dla Mach3 i reset dla Mach2 A co stoi na przeszkodzie, aby obejrzeć krok po kroku kiedy one się ustawiają? Albert
W układzie resetu nie ma, jest tylko podciągnięcie 10k do VCC, bo programuję poprzez PDI. Ale spróbuję rzeczywiście dodać w następnej wersji PCB. Chodziło mi o to aby struktura była taka jak jest stosowana w układach resetu, czyli rezystor do zasilania, kondensator do masy obwodu. W ten sposób zmniejszasz podatność pinu na przypadkowe zmiany stanu...
Dokladnie, musisz ustawic stos. U mnie struktura wygladala tak .include "m8def.inc" .org 0x00 rjmp reset RESET: ldi R16,low(RAMEND) out SPL,R16 ldi R16,high(RAMEND) out SPH, R16 main: rjmp main
Tak 99% to zdjęcia. Czyli kupić DMDE Express o odzyskiwać pliki na nowy dysk? Czy mogę coś jeszcze podesłać co pomoże naprawić strukturę MFT?
Witam Jakie korzyści daje zapis rejestrów poprzez wypełnianie struktury? Pytam bez jakikolwiek złośliwości z czystej ciekawości. Pozdrawiam
Jaki kompilator? Nie pokazałeś deklaracji struktur danych - z tego co widzę to nie obsługujesz przepełnienia wartości zmiennych "odebrano" i "wysłano" - to miałyby być bufory cykliczne? w _putchar() gdy wysyłka_wyłączona == 1 powinieneś od razu wpisać bajt do rejestru SBUF, inaczej będziesz czekał na odbiór bajtu żeby zinicjalizować wysyłkę w przerwaniu....
Nie zauwazylem zadnej struktury dla SysTicka poza tymi definicjami. Zajrzyj do core_cm3.h , tam jest gotowa funkcja z CMSIS SysTick_Config(uint32_t ticks) i tam też znajduje się odpowiednia struktura w tym headerze. SysTick jest dostarczany z rdzeniem przez ARM. Dlatego konfigurację NVIC, ITM czy SysTick nie szukasz na stronach producenta mikrokontrolera...
Wydaje mi się że zliczanie timerem czasu między impulsami nie będzie jakoś znacząco mniej zasobożerne. Timer ma swoje przerwania, wiec się raczej mylisz... Co do podanego kodu obsługi przerwania INT0 , to z dużym prawdopodobieństwem samo wywołanie transmisji po RS może być dodatkową przyczyną problemów, gdyż obsługa tego przerwania jest nieoptymalna...
A ten "szum", to klasyczny "biały szum", czy może przydźwięk, brum itd ? (at)sshoocker Jacek zadał bardzo ważne pytanie na które nie odpowiedziałeś. Musisz nazwać ten szum, albo nagrać i podesłać tu jego próbkę. Różne szumy mają różną specyfikę powstawania, i inaczej się z nimi walczy. W przypadku typowego szumu białego walczy się za pomocą prawidłowej...
wiele plików z $Root (niedziałających) pokrywa się z $Raw (działają ale złe nazwy + brak informacji o plikach typu data utworzenia czy rozdzielczość zdjęcia). - wyszukiwanie RAW odnajduje pliki po nagłówkach, także te, które są zaalokowane w strukturach logicznych systemu plików. Ale nie odnajduje atrybutów plików, które są opisywane w metadanych struktur...
1. Kiedy wykonuje się konstruktor klasy? (w stosunku do programowania wartości we flash) Albert Na etapie kompilacji. 2. Co właściwie chcesz osiągnąć, bo chyba idziesz w zupełnie złym kierunku. Albert W klasie posiadam strukturę z której dane w przerwaniu są wysyłane do LCD. Chciałem dodać sobie osobny wskaźnik (stały niezmienialny ) na ten bufor żeby...
Uczę się programowania uC w C. Bazuję na STM32F411. Programy opieram na bibliotekach HAL. Ostatnio sporo czasu poświęciłem na szukanie błędów w swoim kodzie. Okazało się że struktura mojego programu była nieprawidłowa. Dopiero po jakimś czasie przypomniało mi się że przerwania powinny być jak najkrótsze. I teraz mam pytanie: Co można dawać w przerwaniach,a...
Algorytm jest jeden - to nie procesory wielowątkowe a zwykłe ATMegi tam siedzą. Po prostu w algorytmie ujętych jest więcej zmiennych, i np. na początku sprawdza zmienne zbędne w programie głównym i dopasowuje ich wartość, a reszta zmiennych regulowana jest do pracy kotła aby utrzymać daną temperaturę. A wykonanie zmiennych i realizacja nastaw ... banał...
Tak jak napisał Jdsoul , trzeba się zapoznać dokładniej ze sprzętem i wszystko powinno się dać zrobić. Zamiast procedur wywoływanych z ROM-BIOS, stworzysz sobie własne procedury w C (dość szybko to się robi) i będziesz z nich korzystał. Nie pamiętam już struktury DSM51 (kiedyś czytałem o tym książkę Gałków, ale nigdy nie miałem tego w rękach), jeżeli...
Chyba najprościej ręczny. Zauważ jeszcze, że jeśli zapisujesz na pendriva, to urządzenie, które na niego zapisywało, musi dokończyć ten zapis, nie wolno tego przerwać, bo powstaną błędy struktury systemu plików i trzeba będzie używać jakiegoś chkdsk, albo fsck, żeby je naprawić - zwykle z utratą części danych.
Hmm sugerujesz sprawdzenie wartości rejestrów : NVIC->ISER oraz NVIC->IP ? No już nie przesadzajmy - biblioteki CMSIS są OK (te w których jest np EnableIRQ itd., ale na pewno nie ma tam bzdurnych struktur). 4\/3!!
Hmmm to ciekawe. Czyli NVIC jest elementem wspólnym rodziny ARM7 i jego dokumentacja jest umieszczona poza specyficzną dokumentacją danego procka? Czy dobrze rozumiem? W takim razie chciałbym zrozumieć jak mogę "ręcznie" wykonać to co wykonuje funkcja: [syntax=c]NVIC_EnableIRQ(TIM7_IRQn);[/sy... ..i czy w ogóle jest sens się w to bawić? Bo z tego...
Już prawie mam obmyślone skuteczne rozwiązanie. Po co ID? Jeśli przed nadejściem statusu transmisji rozpocznę inna transmisję to nie będę miał pewności do której transmisji należy status, który później nadejdzie. Jeśli ustawie je jednak w kolejkę i przekażę całe sterowanie wysyłaniem do przerwania zegarowego to jestem w stanie to ogarnąć. To samo przerwanie,...
kopiowa struktura struktura krzemowy struktura tranzystor
regulator moment oporniki radia wyciek pompy paliwa
kable modus głośników instrukcja serwisowa unitra
Wymiana procesora Intel i5-3570 na nowszy model Siemens EQ.6 S500 - Wolne Podgrzewanie Wody