Zrób to w konwencji automatu - zmienna określające stan i duży switch (stan) w obsłudze przerwania z odpowiednim zachowaniem w każdym stanie. Na ogół wygodnie jest to zrobić przy stałej częstotliwości przerwań timera, odpowiadającej najkrótszemu odcinkowi czasu, który trzeba odmierzać lub takiemu, który jest podwielokrotnością wszystkich odmierzanych...
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...
Witam wszystkich progrmistów w asemblerze... mam wielki problem, dostałem zadanie ( w zasadzie to dwa, treśc drugiego w innym poście) do zrobienia z czegoś z czego jestem zielony i potrzebuje pomocy w rozwiązaniu i zrozumieniu problemu... Za wszelką pomoc bardzo dziękuje Zaprojektować i uruchomic system generujący przerwanie czasowe, spełniający następujące...
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ć...
Wyczytałem, że czas odczytu czujnika to 750ms To zależy od ustawionej rozdzielczości dla sensora: https://obrazki.elektroda.pl/2866156500_... Chodzi o czas potrzebny na ustabilizowanie się pomiaru (konwersji) od momentu zażądania pomiaru do odczytu temperatury. Dodano po 6 Używając przerwań czasowych (TIMER1 co 1ms), Przerwanie...
Ustawia sie to w HWconfig po kliknięciu na procesor otwierają sie zakładki do ustawiania "rożnych rzeczy". W zakładce Cyclic Interrupts masz ustawianie przerwań czasowych. Sprawdź tylko czy twój procesor na pewno obsługuje dwa przerwania bo wg. mnie 314 obsługuje tylko OB35.
Potrzebuje pomocy przy przerwaniach czasowych/zegarowych, nie wiem jak to się dokładnie nazywa. Chodzi o to, że co np.20ms wykonywało się dane przerwanie. Proszę o kod i wytłumaczenie jak to działa.
Na pusto powinna po kilku minutach przerwać, chyba, że na programie czasowym będzie włączona. Wentylator jeśli się załączy to dużo później, ma za zadanie tylko chłodzić sprężarkę.
Kolega el2010tmp ma rację - możesz zrealizować tego typu wielozadaniowość przy pomocy przerwań czasowych. 1. Przy pomocy biblioteki Timer1 definiujesz funkcję, która wykonuje się np. co 5 ms. 2. W tejże funkcji wywołujesz coś w stylu analogWrite(led_level++), aż led_level osiągnie żądany poziom maksymalny. 3. Komunikacja między funkcją przerwania a...
Masz tam Kolego schemat jak byk na napięcie 230VAC oraz 24VAC/DC z dokładnym działaniem układu. Ostrożnie z nap. 230VAC.
Jeżeli jest jak piszesz i wszystko dzieje się w skanie to wygląda że można dużo poprawić aby się od czasu skanu uniezależnić. zrób przerwanie od wejścia czujnika, potem przerwanie czasowe, a potem sterowanie direct wyjściem.
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......
czy problem leży wyłącznie w przerwanym przewodzie wewnątrz drzwi. Czasowo dla testu "wykonaj tymczasowy przewód testowy"! Co dla mnie jest oczywiste, to wcale takie nie musi być dla innych. Jak coś nie wiesz to pytaj!
Witam, Chciałbym w swoim programie wykonać kilka przerwań czasowych klasy OB10-OB17. Moje CPU S7-300 w HW config posiada możliwość aktywowania tylko bloku OB10. OB10 działa mi parametryzując za pomocą HWconfig jak i programowo za pomoca specjalnych SFC. Jak zrobić abym w podobny sposób np. programowo mógł określić czas wywołania np.OB11, OB12? Z góry...
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...
Możesz ten kod umieścić w przerwaniu czasowym lub zrobić podobny licznik w OB1, który będzie dodawał milisekundy, zmierzone np.: funkcją RUNTIME. Jaki ma być cel takiej zabawy?
Utworz sobie tabele z probkami. Bedzie ich 1024. Teraz w zaleznosci od wybranej czestotliwosci w przerwaniu czasowym wysylaj je do przetwornika. dla 10kHz probke bedziesz musial wysylac co niecale 100 ns. Ciezka proba dla procesora. Chyba odpada. Jezeli czestotliwosci nie musza byc zmieniane plynnie to nalezy rozwazyc wykorzystanie pamieci RAM oraz...
Złamany, przerwany przewód od fotokomórki powodował czasowe wyłączenie napędu.
Dlatego tak się dzieje, że _delay_ms(50); powoduje, że procesor mieli sobie coś w pętli przez 50ms nie interesując się niczym innym niż przerwaniami. Jeżeli chcesz coś robić w pewnych określonych interwałach czasowych użyj przerwań od timera.
Możesz wrzucić projekt? Wyjścia mogą być wystawiane przez któryś z bloków OB (przerwania sprzętowe, czasowe, OB100 uruchamiany przy załączeniu sterownika). Inna opcja to możliwość "zasilania" wyjść od drugiej strony - zwarcie w instalacji elektrycznej także spowoduje "zaświecenie" diod na module sterownika, no i wysterowanie tego co jest do wyjścia...
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).
Proponuję okulary, lub przypatrzeć się uważniej. Mała podpowiedź - nie tylko cli i sei zmieniają flagę zezwolenia na przerwanie.
Po namyśle stwierdzałem, że chyba zrobię odwrotnie. Będę wyzwalać przerwanie zboczem opadającym. Linia będzie cały czas na + z poprzez wbudowany rezystor pullup w procesorze. Dzięki temu uniknę zakłóceń. Włączenie przycisku będzie skutkowało zwarciem do masy. No i teraz szukam takiego układu. Przecież to niczego nie zmienia, opadających zboczy też...
wyliczyłem dla 10 ms. Przy zegarze 12 MHz cykl rozkazowy trwa 1 us (tak jest taktowant licznik T0) 1 ms = 1000 us , czyli 10ms = 10000 cykli 65536 - 1000 = 55536 dec = d8f0 hex U ciebie widzę jeszcze jedną nieprawidłowość , w głównej pętli czekającej na przerwanie 2 x masz dostęp do rej. IE, a podczas tego dostępu przerwanie nie może być wykonane. Takich...
Chodzi mi o algorytm. Bo chyba Logo przerwań czasowych nie ma. Czy już ma ?
Witam, W przerwaniu czasowym jak jest dostępne. Jak nie zostają timery. Pozdrawiam,
Pamiętaj że sama transmisja też swoje trwa :) a poza tym nie pokazałeś funkcji printf (może ona bawi się w _delay_ms() ?) Zauważ również że przerwanie występuje niezależnie od transmisji, może dochodzić do takiej sytuacji ze raz przerwanie zmienić Ci wartość zmiennej tuż przed transmisją a raz tuż po niej i to spowoduje Twoje opóźnienia. Spróbuj blokować...
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...
Co to znaczy ukryte w setupie? Chodzi ci o funkcję setup()? Jeśli tak to ona jest wykonywana jednorazowo podczas startu procka więc zaszywanie w niej tego co chcesz zrobić kompletnie nie ma sensu. Normalnie wstaw w pętle główną programu czy ak jej nie masz to na jakimś czasowym przerwaniu odczyt tej tajnej kombinacji klawiszy i jeśli nasta i to obsłuż...
Mało danych. Chcesz, żeby dioda migała na przerwaniach? Czyli przerwanie włącza, następne wyłącza - tak to zrozumiałem. Co do obsługi T0 musisz zrobić obsługę przerwania od adresu 0x0BH (czyli wyzwalanie przez flagę TF0). Wstaw coś takiego po LJMP start na początku: [syntax=text]ORG 0Bh ; start przerwania CLR TF0 CPL P1.4 ; zmiana stanu wyjścia sterującego...
Problem leży w sposobie działania biblioteki TWI_Master i miejsca, skąd jej pośrednio używasz. TIMER0_OVF_vect, jak i każde inne przerwanie, uruchamia się z czasowo wyłączonymi przerwaniami, dlatego ani sonar_request, ani sonar_gets_distance nie zadziała z tego miejsca. Polecenia zostają zakolejkowane, i może tylko TWI::START zostaje wykonany. Możesz:...
Pomyliłeś podłączenie D3 i R16 mają być do katody tyrystora, dodał bym też gasik równolegle do obciążenia, nie widzę powodu żeby robić zasilanie 5,7V używając D1. Trzeba dodać detektor przejścia przez zero, można by go podłączyć do wejścia przerwania.
Ż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...
Nie wiem co rozumiesz przez stwierdzenie: " aby regulacja temperatury była zależna od czasu", jak i kiedy realizujesz obsługę przerwań ale błędy odczytu temperatury prawdopodobnie są wynikiem zakłócania cyklu odczytu ds-a przez przerwanie od timera. Poczytaj o zależnościach czasowych 1-wire. Jest to interfejs asynchroniczny i musisz zapewnić aby poszczególne...
A nie masz li jakichś śmieci na tym przerwaniu? Poza tym, to 1wire jest czułe na opóźnienia i w czasie transmisji nie ma prawa pojawić się przerwanie (przynajmniej w tych krytycznych miejscach - na początku slotu czasowego).
Witam ponownie. Napisałem pewien program, w symulatorze nawet działa. Proszę o sprawdzenie poprawności. Jeśli ktoś by znał rozwiązanie tego problemu w inny bardziej poprawny sposób, proszę o jakieś sugestie ew. kawałek programu. Hmmm. Sprawdzić poprawność? Ja nie bardzo rozumiem samą koncepcję, bo na prostą wydawałoby się sprawę zużyłeś już i liczniki...
Każdy klawisz joya masz podłaczony od osobnego portu czy osobnego pinu w jednym porcie? Jeżeli idzie o 32 MHz , spróbuj podkręcić go o ile warunki projektu pozwalają. Nie sprawdziłem zapisu eepromu ale timery, uart działały do 55Mhz (5 x 11.0592 Mhz) przy standardowym zasilaniu 3.3V. Jutro przetestuję eeprom po przetaktowaniu. Wracając do tematu, jeśli...
Wpisales do SMD48 nowa wartosc biezaca, ale nie dales rozkazu ustawienia jej w HSC. Pod tym blokiem: MOV_D (IN:0, OUT:SMD48) wstaw jeszcze MOV_B (IN:16#C0, OUT:SMB47) jeśli nadal HSC nie będzie się kasował (nie mam teraz możliwości sprawdzenia) to wstaw jeszcze pod tym: HSC(N:1) Co do przeliczeń to przypominam, że przerwanie czasowe, które właśnie robisz...
Rozwiązaniem problemu okazało się użycie zaimplementowanych w mikrokontrolerze AtMega328 tzw. timerów. Dostępna w Internecie biblioteka TimerOne, dodaje gotowe funkcje do obsługi przerwań czasowych. Rozwiązanie to w całości rozwiązało mój problem.
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...
Rozumiem że coś w przerwaniu zrobić chcesz, ale ciekawe jak to sprawdzasz (tę dokładność) Może najpierw zwiększasz w kodzie zmienna a potem dopiero każesz ustawiac jakiś pin którym to mierzysz? Może na odwrót, najpierw pin a potem zwiekszanie zmiennej bo zwiększanie może się czasowo różnić w zależności od wartości.
Timer w przerwaniu obsługuje wyświetlacz LED i inkrementuje zmienną byte, która w pętli głównej w instrukcji Case wybiera konkretne funkcjonalne fragmenty programu do wykonania, których wykonanie czasowo mieści się pomiędzy przerwaniami od timera. W przerwaniu od timera ustawia się także flaga przerwania, która uruchamia za pomocą If Then instrukcję...
Racja wszystko przeczytałem ale to że punkty o funkcjach RESET/STOP jakoś mi umknęły. Już widzę swoją nieporadność w tym temacie. Dziękuję za wszystkie odpowiedzi i pozdrawiam. Problem rozwiązany
najlepiej użyj przerwania czasowego które będzie aktywować się o danej porze dnia Jest to chyba blok OB10 W HW dokonasz konfiguracji
Na Timerze. W przerwaniu od INTx ustawiasz wartość początkową Timera i uruchamiasz go. A w przerwaniu od Timera ustawiasz/kasujesz pin wyjściowy.
Będzie jeszcze wiele innych problemów - jak np. THD, przesunięcia czasowe od innych przerwań. Niemniej jednak jak rozumiem jest o projekt mający na celu naukę elektroniki.
Prawdopodobnie tak, ale z uwagi na okoliczności wystąpienia problemu spodziewam się, że i pełny skan powinien odbyć się w rozsądnych ramach czasowych.
Jesli czas cyklu jest wiekszy od czasu trwania impulsu wejściowego to mamy problem i loterie. Przy dużych cyklach wymuszałem w przerwaniach czasowych przepisaniem PEW do EW. Pozdrowienia
Każde przerwanie ma związaną z nim flagę. Dopóki nie doprowadzisz do sytuacji, w której kolejne, takie samo przerwanie, nie nadejdzie przed obsługą poprzedniego, to żadne nie zostanie zgubione. Po prostu obsługa przerwania się nieco opóźni, co ew. trzeba uwzględniać, jeśli masz sekcje krytyczne czasowo.
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...
Nie pomierzysz czasu między impulsami z enkodera w typowej aplikacji, bo nadchodzą one zbyt szybko. Użyj przerwania czasowego i w nim przechwytuj bieżący stan licznika sprzętowego, zapamiętując przy tym stan poprzedni. Już w normalnej pętli policz różnicę i będziesz miał impulsy/czas. A potem przelicz na czas/impuls jak potrzebujesz.
20ms w przerwaniu to wiecznść. Ale w opisywanej sytuacji na pewno nie zagnieżdzałbym przerwań, a przepisał kod obsługi LCD. Uarty mają FIFO, więc aż tak krytyczne czasowo nie są. Albert
Nie wiem, jakie częstotliwości wchodzą w grę i jak długą masz pętlę programu. Do rozważenia jest wykorzystanie przerwania czasowego (np. co 10 ms) albo sprzętowego (od wejścia enkodera) i liczników. Rodzaj sterownika wydaje mi się sprawą wtórną.
Można to rozwiązać np. tak : jeden licznik programowy może liczyć w górę na innym przerwaniu czasowym, resetowany do zera przez przerwanie bramkujące, przed tym oczywiście wartość licznika służyłaby jako wynik pomiaru do obróbki, a inny licznik programowy liczyłby czas (zmniejszając się do 0) - kiedy zaktualizować wyświetlenie wyniku pomiaru, a jeszcze...
Można dać za sygnalizatorem piątą barierę, której przerwanie zmienia światło ponownie na czerwone i załącza układ czasowy. Timer odlicza czas (orientacyjny przejazd pojazdu od sygnalizatora do zajęcia miejsca na stanowisku + mała zwłoka dla pewności, np. 10%). Po odliczeniu czasu znów uaktywnia się dotychczasowy system (4 bariery i ewentualne przełączenie...
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...
Dzięki za ten krótki programik. Za sprawą tego coś u mnie ruszyło "z kopyta". Moją naukę programowania MCU zacząłem od CCS'a dla PIC i może wydać Ci się to dość egzotyczne, ale konfiguracja I/O za sprawą operacji na rejestrach i sama konieczność tego zabiegu to dla mnie praktycznie nowość (choć faktycznie otarłem się o ten temat przed laty). Poważnie...
Nie bardzo wiem dlaczego CPU 314 nie miał by obsługiwać FB 41. Ja bez problemu w takiej konfiguracji go wywołałem. nie zapomnij ze w zasadzie wywołanie powinno być w OB przerwania czasowego (np OB35 ) i że FB musi współpracować z blokiem DB więc prawidłowe wywołanie to np:call FB41, DB41
A dla czego nie ustawiłeś od razu skalowania w przepływomierzu 0-450 Hz to 0 - 450 l/min lub 0 - 100 Hz to 0 - 100 l/min ? jeden rachunek byś miał z głowy. odliczanie czasu powinieneś wykonać na przerwaniu czasowym a nie na timerze w programie.
Ogólnie rezystory bezpiecznikowe mają trochę problem czy raczej bym powiedziałem specyfikę z czasowymi charakterystykami przerwania ciągłości, na pewno nie jest to substytut bezpiecznika topikowego. Do tego czasu zadziałania wchodzi również w skład zbyt wiele czynników - wielkość pól PCB, temperatura otoczenia rezystora, moc przezeń wydzielana w wyniku...
Set Eifr.intf0 Co ta funkcja robi ? Ciekawi mnie czy wlozenie if'ow w przerwanie nie spowoduje duzych opozniena czasowe. Bo juz o tych waitms 50 wogole nie ma mowy.
1. Wyłączyć przerwanie na czas wyświetlania. 2. Jeśli całość nie jest skomplikowana i krytyczna czasowo wyświetlać w podprogramie obsługi przerwania.
Nie robiłem nic na arduino, ale 21 lat temu napisałem programik w Pascalu do obsługi prostej centralki na przekaźnikach. Wszystko dekodowane w programie. Zajrzałem do tego i generalnie prosta sprawa: - wywołujemy procedurę z przerwania czasowego. Wybrałem 100Hz, dzisiaj nadal myślę że to dobra wartość. Minimalna długość przerwy impulsującej tarczy to...
I tak co 50ms mamy sygnał. 10 x 50ms = 500ms=0,5s. Czyli po 0,5 sek mamy 10 imp? czas będzie dłuższy bo zawsze jeszcze OB1. Dobrze to czaję? Co 50 ms wyjście zmienia stan na przeciwny, czyli taki sam będzie co 100 ms, czyli po 1 sekundzie będzie 10 impulsów. Wykonanie OB1 nie ma znaczenia, bo funkcja jest wywołana w przerwaniu czasowym.
No dokładnie. Ale chciałem żebyś zrozumiał dlaczego tak się dzieje i sam znalazł rozwiązanie. Typowym sposobem jest zablokowanie tego przerwania na czas modyfikacji zmiennych. Jeśli dane przerwane jest krytyczne czasowo i wykonuje jeszcze inne rzeczy mozesz użyć jakiegoś bitu znacznika i ustawiać przed modyfikacją a zerować zaraz po. W przerwaniu sprawdzasz...
51 czasówek się raczej nie da wykorzystać, bo trzebaby wiedzieć, którą wystartować przy wjeździe elementu na linię, a którą zatrzymać i odczytać przy zjeździe z linii. Moim zdaniem trzebaby utworzyć kolejkę (FIFO) na co najmniej 52 rekordy. Każdy rekord - 1 detal. W każdym rekordzie 1 pole - czas przejazdu. Za pomocą przerwania czasowego (lub timera...
Warto sprawdzić czy pralka wznawia wykonywanie programu przerwanego zanikiem zasilania. Czyli jeżeli rusza dalej z programem po powrocie napięcia zasilania to można ten fakt wykorzystać do współpracy z prostym programatorem czasowym.
Super. Dziękuję za odpowiedź. Mam kolejne "trudne" pytania. 1) Skoro sterownik ma maksymalną częstotliwość załączania wyjść równą 100kHz to w jaki sposób poza PWM/PTO mogę to wyjście z taką częstotliwością zasymulować? Przerwania czasowe można maksymalnie co 1ms uruchamiać więc to odpada. 2) Czy jest możliwość uruchamiania przerwania od flagi wewnętrznej?...
Po co? Nie możesz w przerwaniu czekać na cokolwiek. Masz zrobić wyłącznie krytyczne czasowo operacje i opuścić przerwanie natychmiast. To zdarzenie, na które czekasz, ma wyzwolić przerwanie. Od czekania masz zegar systemowy, który zwykle implementuje się do dostarczenia taktu 1ms.
Witaj, Jak się domyślam problem z komunikacją 1Wire. Sprawdź czy w stosunku do częstotliwości z jaką taktowany jest Twój procesor dobrze są dobrane parametry czasowe transmisji. W 1Wire jest zdefiniowanych kilka okienek czasowych - czy są dobrze odliczane? Gdy uruchamiasz transmisję wyłącz przerwania. Pzdr. asd
Sprawdź zależności czasowe w programie , sprawdź czy przerwanie nie powoduje konfliktów .
Witam, Wykonywałem coś takiego. Wykonać to możesz w następujący spsób: 1) Wybierz ukłąd II rzędu o stałych czasowych 2[s], 4[s] i wzmocieniu 1 2) Dokonaj dyskretyzacji np. Ts = 0.1 [s] 3) Zamień opis na układ w przestrzeni stanów 4) W bloku od przerwania czasowego umieść kod do wyznaczania odpowiedzi Wydaje się skomplikowane ale jest łatwe do wykonania...
Zwłaszcza jak NWW wyjdzie dosyć wysoki np 1000. Jesteś optymistą. Przy podanych parametrach (50 i 0,1s) Maksymalne NWW (najmniejsza wspólna wielokrotność a nie dzielnik) to NWW=47*43*41*37= ponad 3000000. Zastanowiłbym się także nad użyciem przerwania od timera zamiast pętli z delayem. Nie ma się nad czym zastanawiać. Użycie timera to konieczność....
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...
Z tego co wiem, to chyba korzysta z przerwań a Cobra1 nie. Na początek możesz nie używać przerwań tylko dać pętlę czasową. W Cobrze przydały by sie przerwania (jakiś 8253/54 czy CTC dla Z-80). Bez przerwań nic sensownego nie da się zrobić (zauważ, że nawet mikrokontrolery dość intensywnie używają przerwań). Jako, że z zakupem 8253 czy CTC mogą byc...
Do czego były wykorzystywane impulsy kontroli czasowej wytwarzane przez maszynę o ,której mówimy. Napisałem do czego służy kontrola czasowa przy omawianiu rejestru, a była jeszcze stosowana np do ograniczenia długości wywoływania sygnałem dzwonienia abonenta B. Praktycznie stosowana była wszędzie oprócz rozmowy dwóch abonentów, którzy mogli rozmawiać...
Logiczniej byloby zrobic to na przerwaniu, tzn. w momencie nadania bitu pierwszego bitu startu program wchodzi w przerwanie i odczytuje kolejne 11 bitow. A co do zaleznosci czasowych to powinny chyba wyjasnic co nieco rysunki, znalazlem je gdzies na dysku ale napewno sa dostepne w jakiejs publikacji w necie (skads musialem to wziasc) http://obrazki.elektroda.net/91_11987852...
Dodawanie czasu cyklu to nie najlepszy pomysł. To raczej informacja orientacyjna a nie jakiś pewnik. Poza tym to wszystko robisz w skanie. Użyj do tego celu przerwania czasowego, i to w nim dokonuj tylko niezbędnych operacji obliczeń pomiaru drogi - np. zapisuj kolejne położenia w kolejnych wierszach tabelki. Resztę obliczeń możesz wywoływać w skanie...
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...
Tak jak w temacie, potrzebuje materialy w jezyku polskim o mikroprocku Z180 (opis, przerwania, przebiegi czasowe, obsluga pamieci zewnetrznych i ukladow wej wyj) do referatu. Dzieki
robilem cos takiego i tez poszedlem drogą licznika i timera. Timer odmierzał kwanty czasu, a licznik przerwania INT0. Dodatkowo wykorzystałem sobie jakieś przełączniki DIP do zmiany szerokości okienka czasowego w których liczone są impulsy.
Od dawna nie miałem do czynienia z elektroniką analogową a zwłaszcza zasilaniem impulsowym, a do pewnego projektu retro potrzebuję napięcia ok. 130V, wydajność prądowa niewielka (odbiornik to solenoid ok. 1k Ohm załączany na sekundę, czyli raczej wystarczy kondensator ładowany np. 50mA, czyli moc kilka W). Wydajność nie musi być najlepsza. Ważne: izolacja...
Witam, Przerwania zewnętrzne można wykorzystać, ale problem będzie z drganiem styków - po zwarciu/rozwarciu styki przycisku drgają kilka-kilkadziesiąt milisekund, więc są duże szanse, że zarejestrujesz dużo więcej zmian stanu niż było w rzeczywistości :) Najprościej zrobić programową eliminację drgania styków używając rejestru przesuwnego. Co jakiś...
To są jeszcze ludzie, którzy używają delaya do precyzyjnego odmierzania czasu? :-) Zresztą ta funkcja też odmierza czasy "z czapy wzięte" w momencie gdy wystąpi dłuższe przerwanie. A sekcje krytyczne czasowo - to chyba już nawet początkujący powinien wiedzieć, że trzeba zrobić atomowo. Więc zamiana siekierki na kijek tutaj ma miejsce.
W skrócie (dużym... bardzo dużym) 1) Algorytm PID będzie obliczany w chwili wywołania bloku OB251 z danymi z aktywnego bloku bloku danych (u Ciebie DB2) 2) Algorytm regulatora jest dyskretny i musi być wywoływany co określony czas -> stąd OB13 (przerwanie czasowe). Okres zgłaszania przerwania i wywoływania bloku OB13 jest ustalany w DB1 (domyślnie 100ms)....
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.
Brak kondensatora na AVREF jest bez znaczenia, to tylko wpływa na pływanie odczytów z ADC. Ja obstawiam, że miałeś płytkę z zimnym lutem i twoje działania usunęły problem permanentnie/czasowo.
Myślę o takim układzie (jpg) - będzie działać??? Nie wiem jak się zachowa Centralka? Czy nie wywoła alarmu? https://obrazki.elektroda.pl/2628743700_... Dodano po 6 ,a jeszcze czy styk rozwierny na początku układu (Przekaźnik czasowy- reset) da radę przerwać obwód (1A) I wyzerować?
Wiem że flaga w rejestrze będzie ustawiona, ale co po niej jak już następny bajt w kolejce... komunikacja posypana. a po co to , nie mozna sprawdzić flagi timera 1,5ms (czy szybciej)/później) później? Pisałem że na przerwaniach Timera tylko ściśle zależnie czasowo..reszta nie zauważy opóźnienia.
Ogólnie mówiąc ten sterownik jest marny. Pompa pracuje cały czas a mogłaby załączać się przy temperaturze 70 stopni. Mogłaby też zmieniać bieg w zależności od temperatury wody na piecu. Przekroczenie temperatury 90 stopni wywołuje alarm piszczący, którego nie słychać jeśli piec nie stoi w stołowym pokoju. Może ktoś wie jak wyedytować kod programu sterującego...
Spakowałem już jednostki do zwrotu, przepraszam. W międzyczasie sprawdziłem dokumenty ESP8266 i ESP32, oba mają wiele zasobów do obsługi ściemniania. Zasadniczo jest to detektor zerowego krzyża i zakodowana lub obliczona tabela intensywności dla opóźnienia czasowego. Przy najmniejszym wysiłku przerwanie sterowane wewnętrznymi timerami ESP. ESP pozwalają...
Mam pytanie dot. tego modułu, czy nadaje sie on do sluchania długich (czasowo) plików mp3, tzn. czy możliwie szybko "przewija" wewnątrz pliku, np, można w miare szybko przeskoczyć do czasu 0:15:00 (15 minuta) w pliku o długości 30 minut? Czy po powrocie zasilania odtwarza ten sam plik od początku czy dokładnie od miejsca (czasowo) gdzie przerwano?
Jeśli dobrze rozumiem, chcesz by przerwanie pochodzące od komparatora wywołało szybką reakcję ( np. odcięcie zasilania czy ograniczenie prądu do zewnętrznego, sterowanego obwodu ), czy tak ? Więc wybierasz przerwanie zboczem narastającym, w obsłudze przerwania ustawiasz flagę i.. tyle. Resztę realizujesz za pomocą tej flagi. Resetować ta flagę możesz...
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...
Zbyt ogólnie opisałeś problem. Na 3V to już w ogóle jest wyzwanie żeby to zrobić. Inteligentne zabawki nie tyle wyłączają zasilanie co przechodzą w swego rodzaju sleep mode, nie wysterowują niczego i biorą ułamki mA czekając na "pobudkę" procesora (zapewne tzw. przerwanie).
Przecież wiesz, że delay w przerwaniu nie powinieneś stosować to dlaczego ponownie je tam wstawiasz? Przyjmij wreszcie postawę, że delay jest be i przestań go używać, oraz że do odliczania odcinków czasowych należy wykorzystywać timery. Patrząc na to co zaproponowałeś powyżej nie wiesz natomiast, że: - wchodząc w przerwanie przerwania są blokowane (flaga...
Chodzi o to, że timer ustawiasz aby co pewien odcinek czasowy skakał wywoływał przerwanie, w którym możesz umieść np. liczniki programowe do odliczania opóźnień. W temacie http://www.elektroda.pl/rtvforum/topic22... jest programik, który po analizie powinien Ci trochę rozjaśnić przerwania, liczniki, itp....
Podczas odbioru danych z pinu PD2 ( funkcja zgłoszenie ) występuje błąd tylko wtedy gdy przerwanie z timera 0 jest aktywne. Gdy na czas odbioru danych zablokuję to przerwanie procesor ładnie odbiera wysyłane do niego dane. I moje pytanie brzmi: Co jest nie tak z przerwaniem? Konkretnie to, co wskazał albertb: ... jeśli masz włączone przerwanie to jego...
Jest coś takiego do zwobienia z normalnego przekażnika/stycznika. Jedną parę styków wykorzystuje się do samopodtrzymania cewki. Działa to tak: Przyciskiem ręcznym załączasz przekaźnik. Styki podtrzymujące "łapią", podając napięcie na cewkę. Jesli zwolnisz ręczny przycisk, przekażnik nadal trzyma ponieważ cewka ma podane napięcie. Aby go rozłączyć należy...
jak wyobrazasz sobie pisanie czasowo-zaleznych procedur z właczonymi przerwaniami. tylko synchroniczne gdzie mozesz zrobic "clock stretching" (I2C na ten przyklad) Może znasz magiczną metode na softwaerowe generowanie przebiegu na pinie o scisle okreslonych parametrach czasowych z właczonymi przerwaniami (szczególnie jak nie wiesz ile zajmie ich obsługa)?...
opóżnienie czasowe odliczanie czasowe czasowe podświetlany
sprawdzić tranzystor 2n3055 ostrość telewizor tomato firmware
corolla obroty kuchnia indesit k3g21
Zastępcze protokoły CAN-BUS dla radia NCS RS-304 w Kia Ceed 2009 Kody błędów skuter Kymco 500 - diagnostyka i naprawa