Do tego potrzebny jest koordynator tasków (zadań). Masz przerwanie czasowe które liczy czas do przodu np. na systicku co 1 ms. Ustawiasz zadany czas jaki chcesz odczekać. Koordynator wywłaszcza zadanie i sprawdza warunki. Gdy w twoim tasku zakończył się czas, wówczas task wraca do gry. Nie wiem czy pomogłem, trzeba trochę znać budowę systemów operacyjnych...
należy "podpiąć się" pod przerwanie 1ch. Przerwanie to jest generowane 18.2 razy na sekunde. #include <dos.h> #include <conio.h> #define cint 0x1C typedef void interrupt(*intproc)(void)... // typ wsk na proc. przerwania void interrupt far zegar(void){ // nasza nowa obsluga przerwania // instrukce które mają być...
Witam, Magistrala 1-wire posiada dość mocne restrykcje czasowe co do trwania poszczególnych stanów na DQ. Przerwanie Timera, a wiec wykonanie podprogramu związanego z obsługa przerwania, powodowało zmianę długości tych czasów, gdyż są one generowane softwaerowo przez Bascom. Czasem może się zdarzyć że kolizja i tak wystąpi pomimo że teraz wszystko jest...
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Kiedyś umieściłem na obecnie niedostępnej stronie and.elektroda.eu materiał o dekodowaniu sygnału DCF. Urządzenie potrzebne było w urządzeniu, które wymagało synchronizacji czasu w pomieszczeniu gdzie wyprowadzenie anteny zewnętrznej do GPS było utrudnione. Poniżej umieszczam treść oryginalnego materiału, który może być pomocny przy budowaniu urządzeń...
Ale Kolega lubi sobie życie komplikować... W programie głównym programujemy dowolny timer na zgłaszanie przerwań z częstotliwością coś pomiędzy 30 i 300 Hz, a następnie usypiamy procesor w pustej pętli. Definiujemy stałą określającą czas włączenia w okresach timera: [syntax=c]#define CZAS_WLACZENIA xxxxx <- wpisz liczbę okresów timera[/syntax] przerwanie...
nie wiem za bardzo co twój program ma robić (i nie o to chodzi) ale musisz się troszeczkę nauczyć inaczej konstruować programy. Żelazna zasada to to aby programy w przerwaniach (obojętnie na jakich prockach) wykonywały się możliwie jak najszybciej tak aby nie przeszkadzać programowi głównemu w pętli głownej ale też innym przerwaniom!. przemyśl czy nie...
Generalnie port jest zatrzaskiem więc nie ma sensu się martwić czy dana informacja się zmieni czy nie do czasu kolejnego zapisu do portu :) To daje ci sytuację taką korzystną sytuację że nie musisz się martwić o to co rozbi procek w tym czasie. Pytanie jak bardzo zależy ci na dokładności odmierzenia czasu w przypadku zapalania diody na około 1s lub...
Lpt to jest nic innego jak 17 pinów odzwierciedlonych w 3 portach 0x378 - 0x37a, rs232 to jest cały kontroler który ma 2 bufory, 2 rejestry przesówane, detektor błędów (parzystości), blok współpracy z modemem (wejścia/wyjścia: dtr,rts,dsr,cts,ri,dcd), programowalny generator częstotliwości więc system ustawi ten układ na jakąś częstotliwość, wpisze...
Ok no to zaczynamy na początku (po konfiguracji itp.) powinieneś mieć coś takiego: [syntax=c] if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5) /* Sprawdzamy czy trzeba ustawić zegarek */ { /* Zawartosć licznika RTC nie jest prawidłowa, należy ustawić zegar */ /* Konfiguracja oscylatora, preskalera itp. */ RTC_Configuration(); /* Funkcja w której ustawiasz...
http://obrazki.elektroda.pl/6914408400_1... http://obrazki.elektroda.pl/8024236400_1... ATxmegi to łakomy kąsek dla kogoś, kto już poznał "stare" AVRki - zwiększona szybkość (32MHz!), o wiele więcej peryferiów (5 UARTów! 16 kanałów PWM!), modularna budowa i można używać tych samych dobrze znanych narzędzi. Ale potem...
http://obrazki.elektroda.pl/6223122300_1... Domyślną metodą kontroli napięcia 230 V AC jest kontrola poprzez triak. Tak zrealizowany jest każdy ściemniacz. Kontrola taka oparta jest o kontrolę fazy - triak jest otwierany jedynie na pewną część sinusa napięcia przemiennego. http://obrazki.elektroda.pl/2250705900_1...
Temat się trochę zdezaktualizował, bo napisałem go już kilka lat temu ale tak jakoś mi zeszło z publikacją. No ale najwyższa pora to przepchnąć, i może się jeszcze komuś przyda. Zasilacze ATX są były często przerabiane do wykorzystania jako zasilacz laboratoryjny albo jako zasilacz do jakiegoś specjalnego obciążenia (np. do diod LED mocy). O przeróbkach...
IRQ tester https://obrazki.elektroda.pl/3243423400_... IRQ Tester to proste narzędzie, głównie do testowania czasu odpowiedzi na impulsy, lub czasów międzyzboczowych dostarczonego sygnału. Program został napsiany na ukontroler AVR Atmega168, a jego głównym zadaniem jest funkcja multiwibratora monostabilnego, którego działanie polega...
https://obrazki.elektroda.pl/5092109900_... Witam, Odkąd w moim aucie pojawił się pilot do bramy wjazdowej na posesje nie chciałem aby leżał on gdzieś na wierzchu albo żebym musiał go szukać w czeluściach jakiegoś schowka. Postanowiłem więc, że zintegruje go z autem, jednakże nie chciałem dodawać żadnych nowych przycisków, tylko użyć...
http://obrazki.elektroda.pl/9589280700_1... HPS 2014 Hybrydowy laboratoryjny zasilacz sieciowy. Parametry użytkowe zasilacza w skrócie: 1. Wykorzystanie tanich i łatwo dostępnych elementów. 2. Wydajność prądowa min 3A (dla niskich napięć może dochodzić do 5A). 3. Rozdzielczość DAC 12bit. (filtrowany PWM 4.9kHz) 4. Rozdzielczość ADC...
http://obrazki.elektroda.pl/9303655200_1... Witam, Tu: http://www.elektroda.pl/rtvforum/topic33... znajduje się opis powielacza czasu automatu schodowego. Obiecałem tam, że na bazie tamtego układu opracuję „inteligentny” automat schodowy, i oto jest :). Jego „inteligentność” jest zawarta w założeniach...
[syntax=c] #include <avr/io.h> //#include <EEPROM.h> #include <avr/eeprom.h> //#include <Wire.h> //#include <LiquidCrystal_I2C.h> //LiquidCrystal_I2C lcd(0x20, 16, 2); // Ustawienie adresu ukladu na 0x27 #include "HystFilter.h" HystFilter potA( 1024, 128, 3 ) ; // 10 bit ADC = 1024, 64 discrete output values required, margin...
Mam nastepny problem z calym tym srodowiskiem... :/ chodzi mi o uzycie regulatora PID, generalnie znalazlem sobie jakis algorytm, ktory generuje przerwanie czasowe po podaniu wartosci zadanej dla PID. I wiem, ze musze uzupelnic tabele (tzn. Kp, Ti, Td itd.) mam pytanie jak sie tworzy takie tabele? Bo mam niby przyklad, ale niewiele z tego rozumiem......
Pierwszy sposób nie bardzo pasuje - ze względu na fakt, że obostrzenia czasowe są tutaj bardzo duże i w zasadzie krytyczne, a nie wiadomo w którym miejscu będzie program w pętli głównej po ustawieniu flagi zanim zacznie wykonywać część impulsową. Drugi sposób jest chyba bardziej odpowiedni - masz na myśli ładowanie timera kolejną wartością opóźnienia...
https://obrazki.elektroda.pl/9520538200_... Jest to raczej sprzęt dla fanów atmegi ;) Z punktu widzenia ekonomii nie ma wielkiego sensu. Stosując elementy smd oraz inny mikrokontroler można zrobić sprzęt i lepszy i tańszy. A części użyłem jakie miałem na stanie. Właściwości : - 1,2,4 kanały analogowe min (max 100,50,20 ksps) pasmo...
Witam! Poza tym kto powiedział, że czas trwania kolejnych cykli w PLC jest taki sam? gdyby kolega wiedział cokolwiek o sterownikach S7-300 wiedział by że OB35 w którym przetwarza dane kolega rwrojtek to przerwanie czasowe niezależne od cyklu programowego gwarantujące powtarzalność odstępów czasowych (dt).
kurczę ja zawsze zapominam przy tym obliczaniu, że jeszcze się Timer musi przepełnić ;) - dzięki za sprostowanie tylko uprzedzę, że w twoim programie pierwszym używaliśmy (i ja używam nadal preskalera 8 a nie 64). Jak na próbę ustawiłem 64 to już była masakra dla oka ;) uuuf ok - czyli przy 8MHz i preskalerze = 8 - nasze przerwanie wykonuje się co 256us...
Małe szanse. Przerwanie wydobycia to w zasadzie zamknięcie tematu i brak możliwości jego wznowienia. Nie zauważyłem by kolega Sstalone odniósł się do pokładów już eksploatowanych i proponował czasowe zaprzestanie ich eksploatacji.
Przykład aktualnego (taniego) modelu znanej marki. Nie widać w nim postępu w stosunku w stosunku do lat 80-tych. Najtańszy laminat jednostronny. Duża liczba zwór. Zwory na płytce mają też swoje zalety, szczególnie jeśli są dobrze opisane(w lepszym sprzęcie). Ułatwiają pomiary i diagnozę od strony elementów, przy włączonym sprzęcie do zasilania. Poza...
Żeby timery działały procedura (podprogram) musi być wywoływana w każdym cyklu. Jeżeli w którymś z cykli warunek nie pozwoli na wykonanie CALL to timery nie będą poprawnie pracować. Np. możesz zrobić program sekwencyjny. Uruchamiasz procedurę A a w niej timer. Timer odlicza czas i ustawia bity sterujące, które powodują zablokowanie wywoływania procedury...
Skoro masz już zainicjowany HSC i zlicza impulsy to połowa pracy za Tobą. Teraz musisz jak wiesz co stały czas - najlepiej sterowany przerwaniem przeliczać ilość impulsów na czas. W związku z tym wykorzystaj systemowe przerwanie czasowe np co 100ms. MAIN: za bitem SM0.1 wstawiasz: -MOV_B (IN:100, OUT:SMB34) -ATCH (INT:INT_0, EVNT:10) jeśli INT_0 masz...
Sprawdź zależności czasowe w programie , sprawdź czy przerwanie nie powoduje konfliktów .
Zawsze zostaje Ci w zapasie przerwanie od komparatora analogowego które tez jest na oba zbocza, dodatkowo ma zaletę ustawienia poziomu np. odcina szumy. Ale ja bym się Bascomem za to nie brał - precyzyjne zależności czasowe tylko asembler. Pozdr. N.
Jeśli nie chcesz do tego przerwania sprzętowego, ani sprzętowego pwm to jedyna opcja to zrobić sobie listę wskaźników do funkcji i swój program w tę listę wrzucić (czy to automatycznie, czy ręcznie), a w międzyczasie trzaskałbyś zmienianie tej diody. Generalnie nie jest to rzecz trywialna - szczególnie by zależności czasowe się zgadzały. Weź sobie przerwanie...
Przerwanie zwiększa czas trwania cyklu o czas przerwania? Czyli 0B1=10ms, OB30 1ms czyli razem 11ms? Nie powinno tak się dziać. W większości sterowań, nie wiem jak w Siemensie bo go nie używam jest opcja RunTime monitor, praktyczny margines bezpieczeństwa to 70%. To, że cykl jest nastawiony na 10ms nie oznacza, że tak długo on faktycznie się wykonuje....
Przesądy... ;) Nie "jak najszybciej" a "odpowiednio szybko"; np. jedyne w systemie przerwanie zgłaszane co 100 us może być obsługiwane przez 99 us i wszystko będzie ok. A co do diody - cały kod, który robi to, co trzeba w przerwaniu zgłaszanym co 10..20 ms, wygląda tak (na STM32F0): [syntax=c]static uint8_t bstate = 0, led_timer = 0; bstate = (bstate...
Witam ponownie Rozumiem, że będzie tylko jeden enkoder mierzący pozycję przecinanego elementu. Natomiast poruszanie się wózka z piłą będzie sterowane z analogu w trybie prędkości. Przy powyższym założeniu próbowałbym zrobić coś takiego: - enkoder odmierza odległość na jaką "wysunął" się przedmiot - na przerwaniu sprzętowym wykrywam moment odmierzenia...
Co do kodu: 1. Na początek zrezygnuj z przerwań. Obsługa 1wire wymaga dużej precyzji "czasowej" - opóźnienia liczą się w µs. Jeżeli w czasie trwania komunikacji 1wire pojawi się przerwanie to zależności czasowe się rozjadą. Jak już będzie działać to możesz wrócić do przerwań, ale wyłączać je na czas wysyłania/odbierania bitów z 1w. Lub jeszcze...
Główna trudność jest w zrozumieniu tego co piszesz, projektowanie czegokolwiek wymaga ścisłości, dokładnych danych jak to ma działać. Ja też tego nie rozumiem. Prosilem o wykresy czasowe z czasami. Bo TEŻ nie mam pojęcia jak się zachowuje jego radio. Gdybym miał dane to zrobiłbym schemat na 4017. W małych mikrokontrolerach można zrealizować wybudzanie...
Chodzi mi tylko o odbiór. Więc, jeśli jest nadawanie z prędkością np 115200 i trafi sie w czasie nadawania przerwanie np zaraz po bicie startu to zrobi sie czasowe przesunięcie które może zniekształcić całość. Skoro jeden bit przy takiej predkosci to tylko kilka mikrosekund to problem jest. Czy więc ma sens otaczać printf funkcjami "cli" i "sei" ?
Nie wiem, jakich czasów się spodziewasz. I jakiej dokładności. Nie wiem też, czy s7-222 ma przerwania czasowe. Jeżeli czasy w setkach ms i przerwania czasowe są, to: robisz 1 przerwanie co np. 5 ms. W przerwaniu czytasz wejście i sprawdzasz, czy się pojawiło na nim dodatnie zbocze. Jeżeli nie, to do licznika czasu dodajesz 1. Jeżeli tak, to wynik przepisujesz...
Pewnie najprościej i najpewniej będzie się podpiąć jakimś GPIO pod pin Rx CANa i włączyć przerwanie zewnętrzne z '1' na '0'. Patrząc na parametry czasowe ramki (obojętnie 'A' czy 'B'): http://en.wikipedia.org/wiki/Controller_... to na końcu leci EOF czyli siedem jedynek. Jakbyś odpalił to przerwanie zewnętrzne na dwa zbocza i zaprzągł timer...
Nie. Nie ma sensu robić pętli zdarzeń, gdy parametry czasowe gwarantują, że nadążymy z obsługą przerwań. jeśli mamy tylko jedno przerwanie, to i tak musimy nadążyć, więc pętla jest bez sensu. Jeśli mamy więcej niż jedno przerwanie, to obecność pętli, w której coś się robi, praktycznie uniemożliwia usypianie procesora w celu oszczędzania energii, co...
Witam Problem jest nastepujacy uzywam timer0 do multiplexowania. co 4ms wywoluje mi sie przerwanie od przepelnienia timera wyswietlajac cyfre na kolejnym wyswietlaczu. Dane do wyswietlenia sa globalne. w petli while co pewien czas(0,5 s ) wywoluje funkcje ktora zczytuje dane z czujnika ds1820 po 1wire. Na wyswietlaczu LED pojawia sie co jakis czas 'zaklocenia'....
Chciałbym aby ktoś mi napisał prosty program z wykorzystaniem przerwania. aby wskakiwał do niego co określony czas np 1 sekundę by niezależnie co dzieje się w programie co Np sekundę czy 5sek wyskakiwał do procedury przerwania czyli przerwanie wykonywane co określony czas a nie na podstawie wymuszenia stanu logicznego na pinie do loop przerwanie: Mam...
Zasilasz LEDa impulsami. W programie zmieniasz stosunek czasu portu wlaczonego do czasu portu wylaczonego - czyli dwie petle czasowe jedna dla LEDON, druga dla LEDOFF. Jezeli bedzie to z czestotliwosia np. 1kHz lub wiecej, dla oka LED bedzie rowno swiecil. Zeby inne czesci wykonywanego programu nie wplywaly na sterowanie LEDa, proponuje petle ON i OFF...
1. Zapomniałeś o filtrowaniu pomiarów, o czym pisałem parę dni temu. Pomnożenie wyniku przez jakąś liczbę, a nestępnie podzielenie go przez tę samą liczbę raczej nie daje filtracji. 2. W jakiej to nocie prezeczytałeś, że wynik dzielenia 8000000 przez 1024 i przez 7 wynosi 1000? Zwykle parametry czasowe wylicza się podczas pisania programu, a nie "wyczytuje...
żeby uzyskać w miarę przyzwoitą jasność świecenia, to chyba jeszcze wypadałoby zbuforować wyjścia rejestru, bo inaczej to tylko zabawa dla superjasnych wyświetlaczy ( trudno o inny kolor niż czerwone ) chyba, że ktoś postara się o jakieś egzotyczne wysokoprądowe wersje rejestru. z tego co wiem nie jest o nie łatwo i nie są już tanie. ja nie twierdzę,...
Aha, masz na myśli nie przerwanie zewnętrzne, tylko przerwanie od np przepełnienia timera. Moim zdaniem rozwiązanie to, choć poprawne, jest gorsze. Z INT0 i RC jak nic się nie kręci, to nic się nie wykonuje. Procesor np może spać. U Ciebie będzie się budził i sprawdzał, czy nic się nie stało. Żeby był odpowiednio dokładny musi skanować często. U mnie...
Przecież sam sobie udzielasz odpowiedzi. Jak wyłaczysz timer to komunikacja z DS-em jest prawidlowa. Z czego mozna wywnioskować, że obsługa przerwania timera wplywa na transmisje z DS-em i oczywiscie, bo tam (w DS-ie) jest dość dokładne uzaleznienie czasowe i jeśli w takim miejscu (czytasz DS-a) wystapi przerwanie od timera to cała komunikacja idzie...
Niestety nie znam algorytmu, który ma być realizowany ale z doświadczenia wiem, że KAŻDY problem ma co najmniej dwa rozwiązania i zamiast wykonywać wszystkie instrukcje w jednym przerwaniu może wystarczyło by je rozbić na sekwencje... Znacznik z przerwania dla kodu w pętli głównej ma sens tylko w przypadku gdy ramy czasowe są elastyczne i nie ma obowiązku...
jeśli wyzwalane jest przerwanie to AVR automatycznie zeruje flagę I w MCR i blokuje wszystki inne przerwania. po zakączeniu przerwania flaga jest przywracana do poprzedniego stanu. można ją recznie ustawić na początku przerwania. z tego co wiem to po ustawieniu flagi I wszystkie zaległe przerwania powinny zostać wykonane.
Witam Proszę o wyrozumiałość jako iż słaby jestem w Arduino i C+ ale walczę i chciałbym się tego nauczyć udało się i napisałem prosty kod do sterowania nawadnianiem. Założenia: 1. Otwarcie pierwszego elektrozaworu 1 podpiętego do pin 3 2. Włączenie pompy podpiętej do pin 2 3. Odczekanie 15 minut - czas nawadniania 4. Otwarcie elektrozaworu podpiętego...
A kto powiedział,że on musi mieć dokładnie jakieś tam parametry czasowe ??. W większości przypadków wystarcza prosta pętla czasowa - aby zachować minimalne czasy trwania impulsów.Przy takiej transmisji synchronicznej zegar może się "kołysać" .Nawet gdy wstrzymamy na chwilę transfer na złączu (np. gdy wystąpi nadrzędne przerwanie i procek coś tam ważniejszego...
opóżnienie czasowe odliczanie czasowe podtrzymanie czasowe
ubuntu karta graficzna electrolux kontrolka mikrotik podział pasma
nawijarka toroid nawijarka toroid
JavaScript © – jak wypisać znak praw autorskich Unicode, HTML, przykłady Mitsubishi Colt 2023 – przewód niebieska osłona z białym paskiem, kable niebieski, czarny, biały – funkcja w instalacji silnika benzynowego