Najprościej to bazować na timeout - dopóki coś jest nadawane to odbierasz. W chwili, gdy następuje przerwa w nadawaniu, np. dłuższa niż czas trwania jednego znaku, uznajesz, że nadawanie się zakończyło. Oczywiście to potem można nadbudować kolejnymi warstwami logiki - strukturą pakietu, długością pola danych. Nie bazowałbym na żadnych specjalnych bajtach...
http://obrazki.elektroda.pl/6106634100_1... Przedstawiam projekt inteligentnej stacji meteorologicznej. Jest to nietypowa konstrukcja, zdolna do przewidywania temperatury powietrza atmosferycznego na kolejne 24 godziny. Wykorzystałem do tego celu sztuczną sieć neuronową. Stacja rejestruje co minutę wartość temperatury oraz prezentuje...
http://obrazki.elektroda.net/10_12666033... Witam, Ponoć każdy prawdziwy mężczyzna musi spłodzić syna, posadzić drzewo oraz ... zbudować dom albo robota. Ja wybrałem to drugie - spłodziłem robota dla syna ;) Inny cel to zdalna obserwacja moich 2 kotów w mieszkaniu w najróżniejszych sytuacjach i filmowanie ich nawet gdy się tego nie spodziewają ;)...
Grzałce żadna różnica czy dostaje AC czy DC, ale ze względu na generowane zakłócenia może nie być wszystko jedno - jak poprowadzisz po domu długie przewody na których będą impulsy 250kHz 175V 13A, o stromych zboczach, to problemy z urządzeniami które przestają działać, z powodu zakłóceń, nie będą niczym zaskakującym. Robiąc jakieś przetwornice eksperymentalne...
Styki są mechaniczne i pewnie przy ruchu tarczy są szczególnie narażone na dodatkowe drgania. Jak je najlepiej wyeliminować? Wystarczy zwykły kondensator, czy lepiej coś bardziej wyszukanego i co? I czy ktoś robił eksperymenty jakie parametry kondensatorka lub innych elementów najlepiej pasują do takiej klasycznej tarczy? Programowy debouncing. Czy...
Możesz zrobić programowy PWM. Jest to raczej proste do napisania. Mógłbyś sprecyzować ?? bo samo PWM programowe owszem, ale pomiar z tylu czujników to ponad 1s, a tak długa przerwa w PWM raczej nie bedzie dobra. Chyba ze 2 procesor, ale sam nie wiem, troche skompliowane byłoby uniezaleznienie od siebie wszystkich wentylatorków. :| pomyśle, jednak czekam...
Jeśli nie szkoda Ci zmiennej typu Byte i masz jeszcze miejsce na programowy licznik w swoim programie to możesz zerknąć jak ja rozwiązałem badanie przycisku w tym temacie http://www.elektroda.pl/rtvforum/topic22... Zapewniam Cię, że rozwiązanie to jest bardziej odporne na zakłócenia (drgania) i przede wszystkim przelotowe (żadnych wait) niż jakiekolwiek...
Co ty kurczę, kombinujesz? Przeczytaj instrukcję. Obejrzyj obrazki, Obejrzyj co popełniłeś. Wejście pożarowej linii powinno być podłączone do COM a nie do AUX- . Ten AUX jest mierzony przez elektronikę aby wykryć niesprawność alaumulatora. Powinieneś zacząć od początku. Polecam: Zabrać wszelkie zasilania. zewrzeć kołki nad dużym scalakiem oznaczone...
A co jest złego w odmierzaniu czasu i obsłudze wyświetlaczy w jednym przerwaniu? O ile nie masz typowego zegara RTC (na kwarcu 32768Hz), to właśnie ten sposób jest najlepszy. Zmiany wymaga natomiast Twoje podejście do tej kwestii. Program powyżej jest lekko chaotyczny. Nie rozumiem dlaczego sekundy potrafisz liczyć w 1 zmiennej, a do minut już potrzebujesz...
A pytanie poza konkursem: Dlaczego chcesz to zrobić na UARTcie programowym? Na moje oko UART programowy po prostu gubi dane. Terminal widocznie nie robi żadnej przerwy pomiędzy bajtami a programowy UART jakiejś przerwy oczekuje (poza bitem stopu jeszcze na coś czeka). Trudno mi powiedzieć.
a ja chce zauważyć pewien średnik po while
Spora szansa, że problemem są priorytety przerwań. We FreeRTOS (w sumie w większości RTOSów) przerwanie które używa funkcji systemu musi mieć priorytet niższy lub równy wartości którą sobie skonfigurowałeś jako progowa w pliku FreeRTOSConfig.h. Ponieważ zwykle w tym pliku jest to skonfigurowane tak głupio, że nie wiadomo nigdy o co chodzi, na szybko...
Moim zdaniem jest prostsza metoda. Tworzy się dwa indeksy i tablice buforującą. Oprogramowanie zapisuje znaki to bufora i zwiększa pierwszy indeks (umownie indeks programowy). Po takim zapisie przed wyjściem zezwala na przerwanie. Przerwanie z kolei jak wykryje, że bufor programowy jest różny od drugiego buforu (umownie bufor sprzętowy) to z aktualnie...
Sama idea co najmniej dziwna, plus brak blokowania przerwania. A tak swoją drogą po co angażujesz timer T0 skoro go nie używasz? I jak ma się wywołać przerwanie od T1 skoro nigdzie go nie skonfigurowałeś?
... i zamiast sprzętowego zrób programowy.
(at)exlibris71 Musi być to zrealizowane na jednym timerze. I tak jak u ciebie tak i u mnie wygląda program główny, w którym inicjuję wartości początkowe wyświetlanych cyfr, włączam przerwania i dalej mam pustą pętlę z warunkiem, że jeżeli zmieni mi się bit odpowiadający za częstotliwość odświeżania cyfr, to inkrementuje mi sekundnik i później wywołuje...
Prawie całe ;-) Jesteśmy zgodni co do tego, że da się obojętnie jaki. Ale co przemawia za PNP, a nie zostało jeszcze wspomniane to to, że w układzie z NPN potrzebny jest rezystor kolektorowy, chyba,że możemy odseparować masę nadajnika i MCU. To dodatkowy element i dodatkowe straty. Oczywiście nie jakieś kosmiczne, ale trzeba je uwzględnić gdy robimy...
w UNO miałeś pewnie starszą generację i reduktor z bajpasem do regulacji wolnych, w sekwencji ustawiasz ciśnienie i resztę załatwiasz programowo
Może coś jest z szybkością nagrywania czy też ponownego nagrywania i pen nie nadąża z aktualizacją danych a rejestrator już chce ponownie? Może robić mu przerwy w zasilaniu programowo w celu wyeliminowania tego zjawiska?
Cytuję "bo chyba się wgrało" - jaką masz pewność? Z tego co pamiętam wgrywa się to na uruchomionym silniku "od A do Z". Przerwa w zasilaniu i cegła z radia. Wersja jest bardzo ważna bo jak nie prawidłowa to radio leży i kwiczy. Znaczenie ma też użycie dobrej jakości płyt żeby laser dał radę odczytać bez błędów. Trzeba sprawdzić stan dysku jak jest w...
Witam! ATCH - Blok funkcyjny łączący określony numer zdarzenia "EVENT" z wybranym numerem przerwania "INT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostanie sygnał. W momencie, w którym warunki określone numerem zdarzenia są spełnione zostanie automatycznie rozpoczęty proces wykonania fragmentu programu, któremu zosta! przydzielony numer...
Program będzie pisany na STM32F303 tak więc mocy obliczeniowej starczy. Pod warunkiem, że oprogramowanie będzie napisane w sposób nie blokujący - bez żadnych martwych pętli oczekiwania, delayów programowych, itp... Jeżeli Twoj program będzie inicjatorem działań, to można go ładnie ułożyć tak, żeby wszystko wykonywało się w miarę po kolei (lub przeplatalo)....
...Jakie jest zatem rozwiązanie tego problemu (jeśli jest)? Bascomowy UART programowy działa jedynie wtedy , kiedy wywołamy funkcję z nim współpracującą. W pozostałych przypadkach ( kiedy działają funkcje/procedury nie związane z programowym UART-em ) , nadchodzące dane są "niewidoczne" dla procka :( Np. jeśli masz w kodzie Wait 1 , a w czasie działania...
programowo zrobić z tego przebieg prostokątny???? Nie. Chodzi raczej o programową filtrację pulsowania, czyli funkcję, która będzie ignorować okresowo pojawiające się braki sygnału. Sprzętowo natomiast, możesz "ogarnąć" to np. tak: https://obrazki.elektroda.pl/3507537900_... Kondensator dobierasz z lekkim zapasem, mniej więcej na półtorej...
Odświeżę temat Zrobiłem tak, jak zasugerował niveasoft , czyli na Case Nie wiem czy tak to miało wyglądać. Zostaje ~994ms na inne sprawy do mnie przemawia, tylko może trzeba inaczej do tego podejść. Póki co będę próbował przenieść MAX na sprzętowe SPI - Wtv020SD nie ma pinu CS, więc może sterowanie obydwu układów poprzez pin CS może być utrudnione.
Trochę to trwało, popełniałem wiele podstawowych błędów ale i sporo się nauczyłem. Ale jak mawiał Owidiusz "Finis coronat opus". Okazało se, że zdecydowanie więcej problemów było, mechanicznych niż programowych. W programie w liczniku, po wielu próbach właściwym okazało się rozwiązanie: https://filmy.elektroda.pl/21_1435433513...
Oczywiście, że jest to przesada, jeśli chodzi o sprzęt, ale jak wspomniałem na początku, chciałem przekonać się sam o jego mikromocowości i sposobach uzyskania tejże. A wydawało mi się, że program zegarka, który z założenia ma pracować bez przerwy, będzie dobrą bazą programową do testów. KT
Wykonaj kilkukrotne czyszczenie głowic programowo powinno pomóc. Uwaga zużywa sporo tuszu.
(at)ElektrodaBot Jak skonfigurować rejestry MCP23017, aby nasąpiło przerwanie na INTB. Port B bit 0_4 to wejscia klawiszy, normalnie stan wysoki. Stan niski powinien wywołać przerwanie na INTB. Bezpośrednia odpowiedź - Dla RB0..RB4 jako wejść (normalnie “1”), przerwanie INTB ma wystąpić przy przejściu któregokolwiek z nich na “0”. Minimalny, pewny...
Dostałem czarny kartridż HP 45, który źle drukuje, po przestoju wcale, a po czyszczeniu programowym drukuje z przerwami pół strony w trybie "best". Wrażenie jakby nie dopływał atrament do dysz. Może coś z ciśnieniem w środku? Jakieś sposoby naprawy? Wpadł w moje ręce bo w innej drukarce prawdopodobnie też nie funkcjonował. Mam Photosmart 1000.
Proponuję zmniejszyć przerwę między zmianami kierunków, może nawet do zera. Originał szybciej "odbija się" od krawędzi :)
Witam wszystkich forumowiczów po długiej przerwie, spowodowanej działaniem osób inteligentnych inaczej. Zacznijmy od początku. Wszelkiego rodzaju urządzenia grzejne są typowymi odbiornikami inercyjnymi. W tym przypadku możemy stosować regulację grupową,przyjmując okres regulacji np. 3sekundy. Zamieniamy analogowy sygnał czujki temperatury na cyfrę i...
Wygląda na to, że procedura obsługi przerwania TIMER0_COMPA_vect się nie wyrabia (ma do dyspozycji 80 taktów). Innymi słowy czas pomiędzy przerwaniami jest krótszy od czasu wykonania kodu procedury obsługi przerwania. Wpisanie na początku procedury instrukcji TCNT0=0; powoduje po prostu wydłużenie czasu zliczania timera 0 o czas trwania prologu procedury...
Wykonywanie tak długich zadań jak choćby operacje na LCD w przerwaniach aż się prosi o kłopoty. Zrób sobie w przerwaniach kilka timerów programowych i ich zawartość badaj w pętli głównej Do...Loop i to od tych timerów uzależniaj kolejność wykonywania odpowiednich sekwencji (fragmentów) programu.
Witam, piszę całkiem spory (w moim mniemaniu) program do sterowania silnikiem i paroma jeszcze innymi rzeczami (aktualnie na ATmega32L i 8MHz wewnętrznego oscylatora) i mam niezrozumiały dla mnie problem z obsługą przerwania od timera, kod obsługi przerwania wygląda mniej więcej tak: ... .org 0x0012 rjmp t1Ovf ... t1Ovf: push r16 push r17 in R16,...
No nie ja pisalem, ze C sam sobie z tym radzi. Programista musi sobie z tym radzic, niewazne w czym pisze. Fakt, ze nieczesto zachodzi potencjalnie niebezpieczna sytuacja przeklamania danych przez przerwanie nie jest zadnym przeslaniem do tego by ja ignorowac. Przerwan wcale nie trzeba wylaczac i wylaczac (moim zdaniem nawet nie powinno sie tego robic)...
Na tego typu problemy jest jeden prosty sposób, wielokrotnie dyskutowany na forum: automat w przerwaniu UART. Jeśli ma być wykrywana "przerwa w transmisji" najpierw trzeba zdefiniować, co to jest ta "przerwa". Jeśli "przerwa" - to brak nowych danych przez czas np. potrzebny na transmisję jednego bajtu - UART potrafi takie coś wykryć w sprzęcie. Jeśli...
Przez UART nie możesz przesyłać danych bez żadnych przerw - musisz co jakiś czas odczekać. W TWoim przypadku sensownie byłoby czekać do zmiany położenia enkodera i transmitować nową daną po wykryciu zmiany. Przy zmianach położenia możesz mieć wahnięcia podobnie jak przy drganiu styków przycisków - wypadałoby to programowo odkłócić. Poza tym zwróć uwagę...
Udostępnianie opinii na temat instalacji obiektowych i okablowaniu Chciałbym przekazać ważną moim zdaniem informację, szczególnie dla młodych i początkujących instalatorów. Mianowicie poza samym systemem alarmowym t.j. centralą czujkami oraz sygnalizatorami bardzo ważną rolę odgrywają przewody, którymi to wszystko jest połączone. Kiedyś postanowiłem...
Potrzebuje taki sygnał do płytki z arduino, bo nie wiem jak to programowo zrobić o ile w ogóle się da. Sprzętowo, czy programowo, robi sie to tak samo, gdy zaniknie napiecie trzeba poczekać dłużej niż czas przerwy w miganiu i ponownie sprawdzic, sprzętowo uzywa sie przerzutnika monostabilnego, programowo odmierza czas timerem. W realizacji programowej...
Migają po 3 razy i przerwa, te które pisałem wyżej...
Może być fizyczna wina układu (np przerwa w obwodzie, sterownik), a może programowa-w sterowniku silnika ustala się, czy są grzałki nurnikowe czy nie. Sprawdź zatem konfigurację sterownika
Program masz całkowicie źle napisany. Zacznij od sterowania serwami, ale tak, żeby nie używać delay. Czyli całe sterowanie musisz zrobić w przerwaniach. Najlepiej tak, że w procedurze obsługi przerwania inkrementujesz jakąś zmienną i porównujesz ją ze zmiennymi określającymi szerokość impulsu dla konkretnego serwa (skoro masz 10 to będziesz miał tablicę...
Witam. Od 3 dni siedzę już nad programowym PWM. Wykorzystuję do tego przerwanie na timerze, ale coś nie działa tak jak powinno otóż jak nie mam ustawionego stanu 1 na ostatnim bicie portu to PWM dziwnie się zachowuje. //Includes #include "avr/io.h" #include "inttypes.h" #include "stdio.h" #include "util/delay.h"...
Co by było gdybym miał wysłać np. 19 bitów. Przecież nie mamy informacji który aktualnie bit jest wysuwany w danej chwili, by zastopować transmisje zmieniając, stan lini SS (CS). Jest to wogóle wykonalne ? AVR to 8-bitowiec, więc sprzętowy SPI będzie działał zawsze na 8bitach. Można to zrobić ale programowo...tylko oczywiście będzie wolniej. SPI w...
Co do pierwszego postu: To jest wynik pisania czegoś takiego jak "TIMSK = 0x80;" W ten sposób załącza się przerwanie OCIE2:"Timer/Counter2 Output Compare Match Interrupt Enable" a nie TOIE2:"Timer/Counter2 Overflow Interrupt Enable", który jest bit niżej. W symulatorze dokładnie widać, że jest wykonywany nie ten wektor przerwania. http://obrazki.elektroda.net/94_12161272...
Ja robiłem dokładnie to samo :) Programowy UART sprawdza się, ale jak program nie jest za bardzo pocięty przerwaniami timerów itp. Poza tym trzeba "czekać" na dane, chociaż w bascomie nie robi to większej różnicy.
W windowsie też są mutexy - i zarówno winda jak i linux to są jakieś systemu operacyjne dzięki którym masz w ogóle mechanizm zwany mutexem (oraz wiele innych) - mechanizm programowy. Przerwania to całkiem co innego a przecież też występują w komputerach i w systemach operacyjnych
Witam. Apropo 3. żeby TSOP działał poprawnie, sygnał nadawany w podczerwieni musi mieć przerwy, np. 10 impulsów, przerwa o długości 10 impulsów (10 to minimum). jak to zrobić programowo? po przez timer ctc sie nie da przerwan zrobic. Tylko w czsie przerwy nie moze sie zaswieca dioda
8MHz / 1024 (preskaler) / 256 (timer zlicza od 0 do 255 i dopiero się przepełnia) / 100 (ilość przepełnień odliczana programowo (2*50)) = 0.3Hz z kawałkiem. Zmień preskaler timera na 4, o ile taki jest dostępny, nie sprawdzałem, a jak nie jest, to programowy licznik zmodyfikuj.
atmega programowy rozdzielczość programowy programowy timer
landi renzo instalacja gazowa pc5580b425 amica pogodowa stacja 433mhz
regulacja elektrozaczepu warto robić magister
Peugeot 3008 elektryczny hamulec ręczny – aktywacja, tryby, awaryjne zwolnienie Firmware Update for TD System K45DLJ12US TV