F 08 - poszukaj bo dużo tego. Prawdopodobnie grzałka.
Zmienną używaną w przerwaniu deklaruje się jako volatile (wykluczona z optymalizacji), inaczej będzie cyrk... volatile unsigned char licznik Ładniej by to wyglądało scalone... tzn... void czekaj(void) { licznik = 30; TCCR0 = 0x05; do{}while(licznik); } ISR(TIMER0_OVF_VECT) { licznik--; TCCR0 = 0; //wypadałoby...
Zmienna count powinna być volatile .
Nie używaj delay() tylko timera lub funkcji millis(): https://www.arduino.cc/en/Reference/Mill...
Stos dla przerwań ustawiłeś? 4\/3!!
Zamiast delay użyj timera i usypianie uC. Dodam, że moje połączenie i2c nie zawiera tych oporników i magistrala do działania potrzebuje włączonych wszystkich czujników. Planuję to poprawić ale potrzebuję informacji jak / dlaczego / po co. Przeczytaj więc o podstawach I2C i zapoznaj się ze schematami modułów, których używasz.
W dobrze napisanym kodzie delay nie jest potrzebny. OW robi się na przerwaniach - UART albo timer.
Moim zdaniem za cienkie kable i nieodpowiedni tranzystor na ogrzewanie szyby. Może sterować tylko przekaźnikiem do szyby lub lusterek, ale nie będę się przy tym upierał bo można go kupić jako "ENGINE MANAGEMENT DELAY TIMER RELAY DBC3203"
Wiem że zaraz mi się oberwie od innych ale na szybko to pokombinuj z wartością OCR0 - zwiększ ją np do 150 , po drugie możesz przełączyć na inny preskaler mniejszy niż 256. Lecz nie spodziewał bym się wielkiego efektu. Aby otrzymać pożądany efekt musisz zmienić plik ds18b20.c i zamiast wyłączać i włączać przerwania w funkcji temperatura musisz je włączać...
Zgadza się, ale autor miał już problem z ogólnym działaniem programu. Wybór delay, millis, czy przerwania timera, to raczej szczegóły. Kod z #6 zadziała tak samo, ale łatwiej do niego dojść. Chyba. Pozdrawiam.
Szkoda, że nie wiadomo na czym jest zrobiony( rzeczony timer oczywiście). Dokładnie, miałem właśnie o tym pisać znając życie Chińczycy ukryli układ pod wyświetlaczem aby nie czynić dodatkowej roboty i zdzierać z niego symbolu. Widać od spodu PCB (w miejscu wyświetlacza) piny prawdopodobnie odpowiedzialne od programowania układu sterowania. Mym skromnym...
Mnie razi używanie delay(). O ile przebolałbym to w samym setupie to w pętli głównej jest nie do przyjęcia. No ale czat uczył się na kodach z netu. Poproś go by zamiast delay() użył timera lub choćby millis() ciekawe czy dobrze mu pójdzie.
asm na pewno jest taki sam (szczegolnie ten ktorego uzywalem, bo to same podstawy), gorzej z timerami na ktorych opieraja sie dluzsze opoznienia (od ms w gore). nigdy nie zajmowalem sie dspic30, wiec... nie wiem jak to tam jest z tymi timerami. najwyzej dostosujesz sobie <: __________________________ modul sklada sie standardowo z pliku c i h. ponizej...
Ustaw skok omijający szczebelek z timerem lub użyj timer "SS": retentive on-delay timer.
Najprymitywniej: [syntax=c]void mydelay(uint16_t delay) { int f; for (f = 0; f<delay; f++) _delay_ms(1); } [/syntax] A powinienes zrobic w przerwaniu timera.
CZEKAJ3: MOV R2,#255 CZEKANIE: DJNZ R2,CZEKAJ3 obawiam się że to będzie chodzić w nieskończoność. Rzeczywiście, wrzuciłem to do jagody i była nieskończona pętla, jednak trochę nad tym posiedziałem i wyszło coś takiego: LJMP START ORG 100H START: ... LCALL CZEKAJ ... LJMP START CZEKAJ: MOV R0,#255 MOV R1,#255 MOV R2,#255 ODLICZAJ: DJNZ R2,ODLICZAJ...
Ta biblioteka nie używa sprzętowego PWM. Według opisu używa jednego 16Bit Timera na każde 12 serv. Tak wiec Timer 16Bit jest już zajęty, PWM sprżętowy tego timera również jest niedostępny, ale możesz sobie te serva podłączyć pod dowolne piny a do odmierzania czasu zamiast Delay musisz/możesz użyć innego Timera :D
Jak przeprowadzałeś ten test dla tych 2 kanałów (wschód - zachód)? Uzywając już docelowych fototranzystorów? Co z wejściami dla sensorów północ-południe, też miały coś podłączone czy wisiały w powietrzu? Co do kodu to przydałaby się jakaś histereza, i zmiana algorytmu żeby nie blokował się na jednym kierunku - aktualnie jak jest nierówność na jednym...
Nie każę stosować timera. Tylko takie użycie delay powoduje dość sporą jego niedokładność. Jeżeli mamy stałe skoki czasu to można to zrobić tak: [syntax=c]uint8_t delayTimeInSeconds; void delay() { int i; for (i = 0; i < delayTimeInSeconds; i++) { delay(1000); } }[/syntax] I obsługę przerwania/przycisku zrealizować tak: [syntax=c]#define MAX_DELAY_TIME_IN_SECONDS...
Witam Nigdzie jakiejś w miarę definicji licznika i timera nie znalazłem. Może mi ktoś powiedzieć czy takie coś jest poprawne? Moduł czasowy (timer) - Działanie modułu czasowego odpowiada sposobowi działania przekaźnika czasowego z opóźnionym załączaniem lub wyłączaniem. Maksymalnie można zaprogramować 128 modułów czasowych oznaczonych instrukcją T0...
Witam, chciałbym stworzyć funkcję delay za pomocą sprzętowego timera. W tej chwili mój kod wygląda tak: main , czyli standardowe miganie diodą. [syntax=c] delayus(10000); GPIOC->BSRR=GPIO_BSRR_BS9; delayus(10000); GPIOC->BSRR=GPIO_BSRR_BR9;[/syntax] Funkcja delay_us: [syntax=c] void delayus(unsigned int us) { TIM3->ARR = us; // Auto reload value TIM3->CNT=0;...
Porada: napisz to od nowa. W obecnej wersji masz delay w przerwaniu EXTI i brak przerwania timera do obsługi wyświetlacza.
akurat delajka z timer32.c [syntax=c]******************************... void delay32Ms(uint8_t timer_num, uint32_t delayInMs) { if (timer_num == 0) { /* setup timer #0 for delay */ LPC_TMR32B0->TCR = 0x02; /* reset timer */ LPC_TMR32B0->PR = 0x00; /* set prescaler to zero */ LPC_TMR32B0->MR0 = delayInMs *...
Można zamienić mam findera 80.01 nowego (BE) Signal OFF delay. Power is permenently applied to the timer. The output contacts transfer immediately on closure of the Signal Switch (S). Opening the Signal Switch initiates the preset delay, after which time the output contacts reset. https://www.finder-relais.net/en/finder-...
Witam, poniżej program, którego celem jest zliczanie impulsów zewnętrznych. Problem polega na tym, że po skonfigurowaniu rejestru TCCR0B, program się blokuje ( nie ma komunikacji z monitorem portu). Jeśli ktoś ma pomysł na to, to będę wdzięczny. void setup () { TCCR0B |= (1 << CS02) | (1 << CS01) | (1 << CS00); Serial.begin(9600);...
A potrzebujesz to zasilać napięciem ponad 12V? Może https://www.avmarket.eu/modul-przekaznik... albo https://www.gotronik.pl/przekaznik-12v-z... ? Albo wpisz do Google: delay timer 10a relay site:aliexpress.com - znajdziesz za $3 z darmową wysyłką.
Kolego Robaku w bibliotece lcd.h mam taką linijkę: #define XTAL 1000000 /**< clock frequency in Hz, used to calculate delay timer */ Jednak czy to w jakiś sposób może wpływać na działanie funkcji delay.h w pętli głównej programu ? Nie ukrywam, że to właśnie także do obsługi LCDka ten poprawny delay, ktory powinien dawac równo sekunde przy wywołaniu...
Ja dorzucę jeszcze jedno - jakby nie napisał ISR to odmierzanie przerw przez delay w pętli głównej już nigdy nie będzie działało prawidłowo - odliczany czas powiększy się o czas realizacji wszystkich przerwań. To można ominąć w prosty sposób wywalając te delaye i robiąc opóźnienia na timerze.
Parametr, który chce mieć możliwość zmiany, to nastawa PT , czterech timerów TON... W ten sposób pokazany przez Ciebie, uda mi sie to..? Źle cię zrozumiałem, pisałeś o czasie cyklu w poście, a chodziło Ci o delay dla timera. W bloku TON wejście PT przyjmuje tylko zmienną tupu TIME, możesz użyć: T#5s dla 5 sekund Albo użyć INTa i castować go do TIME...
Do 15zł. nie znajdziesz. Natomiast AWZ516 od Pulsara może się nada. Koszt około 53zł netto. Dzięki ale nie potrzebuję aż tak zaawansowanej konstrukcji Szukam czegoś na NE555 Tutaj http://www.aliexpress.com/item/NE555-Del... znalazłem tanio ale nie do końca spełnia wymagania...
Tak, niedokładność czasu delay wynika głównie z tego, że dodaje się do tego czas wykonania innych funkcji, w tym szczególnie funkcji obsługi przerwań. W przypadku odpowiedniego użycia timera tej niedokładności nie ma, a w każdym razie nie akumuluje się ona, tak jak w przypadku delay. Oczywiście jeśli coś ma być wykonywane w superdokładnych odstępach...
Używanie delaya jest niemądre (marnujesz prąd). Zrób coś takiego (pisane z palca, więc może wymagać poprawek). [syntax=c]#include <avr/interrupt.h> #include <avr/sleep.h> unsigned long int timer=0; ISR(TIMER0_COMPA_vect) { timer++; } ISR(ISR_from_pin)//check which in doc { timer=0; } int main(){ config_timer(); config_sleep(); config_ports();...
(at)Pawel_1985 Jeżeli już blokujesz to po Ci te wszystkie przerwania etc etc. Zakładając jeden tick na µsek [syntax=c]void delay_us(unsigned delay) { //uint32_t start = TIM1 -> CNT; //dla 32 bitowego timera uint16_t start = TIM1 -> CNT; //dla 16 bitowego timera while(TIM1 -> CNT - start < delay); //while((uint16_t)(TIM1 -> CNT -...
Nie widzę nic śmiesznego w "zestrojeniu". Wcześniej realizowałem kod w oparciu o delay(), i jak chciałem interwał jednosekundowy to okazało się, przy wartości delay(1000) timer opóźniał się, dopiero przy delay(765) pracował synchronicznie z zegarem komputera (do wiadomości kolegi Jankowskiego) :)
wiadomo ze chodzi o cos co odczeka jakis czas, czy to delay czy timer to sprawa drugorzedna
Witam Serdecznie Na początek kod: [syntax=c]#define F_CPU 4000000UL #include <avr/io.h> #include <avr/iom128.h> #include <util/delay.h> #include <avr/interrupt.h> volatile uint8_t i=0; int main(void) { DDRA = 0xFF; ASSR &= ~(1<<AS0); TCCR0 |= (1<<CS01) | (1<<CS02); TIMSK |= (1<<TOIE0); TCNT0 = 131;...
Dziękuję za odpowiedź. W takim razie mam jeszcze jedno pytanie: czy użyć do tego timera zamiast delay ? I w jaki sposób mam wywołać timera kilka razy w jednej funkcji ?
W pralce Indesit WISL 85 szybko migają diody blokada drzwiczek i delay timer oraz wybielanie (nad pierwszymi dwoma przyciskami funkcyjnymi od lewej strony). Pralka cały czas pobiera wodę. Przeszukałem forum pod kontem hasła "WISL 85" i nie znalazłem opisu takiego problemu - były inne błędy. Kondensatory wyglądają OK, nie napuchnięte ani rozlane. Co...
Akurat odmierzanie czasu na podstawie takiego delay opartego o timery jest całkiem precyzyjne. Z drugiej strony tak właśnie implementuje się delay na ARM, jako timer używa się SysTick. Z pewnością. Ale nie robi się tego w tak brutalny sposób, że angażujemy jeden timer do tylko jednego odliczania opóźnienia. Lepiej to zrobić w taki sposób: [syntax=c]void...
Witam. Szukam timera przemysłowego 20-30 cm z odliczaniem 10-0 s (start, reset) albo czy można zadaną wartość on-delay timer (S7-300 Siemens) jakoś przekazać na zewnętrzny wyświetlacz. Pozdrawiam
Inaczej się ominąć problemu zmiennej nie da? Bo pętla np. o wartości 100 z funkcją _delay_ms(1); wykona się jednak nieco dłużej niż w 100ms, a tu akurat są to czasy dość krytyczne. Dodano po 2 Po usunięciu błędów z delayem, został jeszcze inny, ale nie potrafię go zidentyfikować. Dołaczam ekran: http://obrazki.elektroda.pl/3451236200_1...
Problem pewnie leży w procedurze. therm_read_temperature(temp); Tam zapewne masz jakiegoś delay-a ustawionego (na czas potrzebny na konwersje temperatury przez DS-a). Musiał byś pokombinować, żeby przebudować tą funkcję a delay-a wbudować najlepiej w obsługę przerwań z timera z którego korzystasz. Np. Timer przerywa częściej, za każdym razem...
użyłbym timera :)
Edit: 14:48 (at)mpier dobra wskazówka, jednak chodzi w trybie PWM, Phase Correct, 8-bit clk/64 . Przy czym nadal nie rozumiem czemu wartość przeze mnie wpisana ginie, a nie przepisze się w kolejnym cyklu. To będzie chyba to. Nie ma się kiedy zapisać, jeśli timer nie zdążył się "przekręcić". Wstaw odpowiednio długie delay() po zapisie do OCR1A, to się...
Zamiast delay wykorzystaj inny timer.
Hm, wydaje mi się, że całe rozwiązanie opisałeś w treści zadania. Stwórz sobie zmienną typu int i zliczaj wyłączenia pompy na zbocze opadajace. I1 (N) -> ADD 1 do licznika Kiedy licznik =20 wrzucasz np off delay timer na 5 sekund (do wystawienia elektrozaworu) i w tym samym networku resetujesz licznik (Move 0) W załączniku wrzucilem drabinkę zrobioną...
Pozbądź się delay-ów. Opóźnienia licz za pomocą timera. Wtedy wyłapiesz dokładnie moment, w których ma się dziać to co planujesz.
Muszę zrobić tak że niezależnie od ilości czasu otwarcia wyrażonego w ms pierwsza część czyli pick (pierwszy stan na oscyloskopie) zawsze ma wynosić 1ms a reszta to naprzemienne otwarcie/zamknięcie w tempie które uniemożliwia zamknięcie cewki. Pierwszy pik możesz zrobić po prostu używając delay w microsekundach, kolejne piki używając PWM Caość można...
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.
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...
np. https://obrazki.elektroda.pl/2853103900_...
Zobacz: On Delay Stopwatch Timer ONDTR_* Nie wiem jaką potrzebujesz dokładność, ale może wystarczy liczyć np.: 100ms impulsy i sprawdzić ile trwa powiedzmy 10 cykli.
Nie umiem arduino i zrobiłem na rejestrach dla UNO z megą 328/328p. Powinno działać. Dla mega wystarczy zmienić nazwy rejestrów w funkcjach startujących i zatrzymujących timer. Obsługa opóźnienia zrealizowana na timerze pierwszym. [syntax=c]#include <avr/interrupt.h> volatile int timer_cnt=0; // tutaj definiujesz co po jakim czasie przekaznik...
[syntax=c] { alltime.setValue(Lengthoftitle); calyCzas = (Lengthoftitle - actualSeconds ); tim.setValue(calyCzas); alltrack.setValue(calyCzas); timProcent++; if (timProcent == Lengthoftitle ); { timProcent = 0; } delay(200);[/syntax] Lengthoftitle - cały czas timera actualSeconds odliczanie sekund [/code]
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ść....
Też tak mi się wydaje. Sprawdzę po niedzieli czy to problem z delayem od HALa bo z tym programowym problemu raczej nie ma. Stosuję dwie funkcje ponieważ jedna daje opóźnienia w ms - HAL_Delay(), a druga to zrobiona programowo na timerze funkcja delay() która ustawia opóźnienie w mikrosekundach.
No tak, nie podałem że po main() jest definicja. To teraz dalej całość: [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> volatile uint8_t pwm0=56; volatile uint8_t pwm1=108; volatile uint8_t pwm2=60; volatile uint8_t pwm3=70; volatile uint8_t pwm4=80; volatile uint8_t pwm5=85; volatile uint8_t pwm6=90;...
BlueDraco i tak właśnie zrobię jak mówisz wyrzucę delay. Opóźnienia zrobię na flagach i timerze . Po prostu coś delay nie służy przy obsłudze uart choć nie wiem dla czego teoretycznie powinno śmigać bez problemu.
Witajcie może ktoś doradzi coś w moim problemie przy starcie prania mają migać oprócz przycisku( czerwonego) "włączona"! 4 (zielone) przyciski: 1. Delay timer(opóźnienie uruchomienia urządzenia) 2.Wybielanie 3.Łatwiejsze prasowanie 4.Wyłączenie wirowania Miga tylko 1 i 4 NIE MIGA? 2 i 3 czyli wybielanie i łatwiejsze prasowanie (a maja migać wszystkie,...
Stała rada - żadnych delay(), tylko przerwanie timera i zmiana sterowania serw w tym przerwaniu.
Źle podchodzisz do problemu - zmienna i (czyli numer wyświetlanej cyfry) powinna być zmienną globalną, którą w przerwaniu od timera zwiększasz, a następnie wykonujesz blok switch (i) { ... }. Oczywiście delay w przerwaniu to "bluźnierstwo" :) Preskaler ustaw sobie na 64, wtedy przerwanie od timera dostniesz ok. 400x na sekundę, czyli odświeżanie całego...
z wersją klasyczną też nie będzie problemów jeśli nie będzie korzystać się z żadnych delay'ów. Co to znaczy? Przecież obsługa 1-wire wymaga w miarę dokładnych opóźnień. Miałem zamiar napisać funkcje delay oparte na timerach. To jak mam "rozmawiać" z DS18B20 bez delay-ów?
Cześć, w tej chwili znalazłem łatwiejsze rozwiązanie - "Cyfrowy Timer czasowy 5 V 2 s-2 h - C005 - delay - moduł opóźniający". Można kupić za niecałe 2 złote; jak myślisz, nada on się? https://abc-rc.pl/pl/products/cyfrowy-ti...
Spróbuj tego : .delay NOP DEC A JRNE delay RET .wait LD Y, #55 .wl1 LD A, #255 CALLdelay DEC Y JRNEwl1 RET Mam nadzieje, że ledon i ledoff zakończone są instrukcją RET? Najlepiej pokaż cały program.
Mi bocik uparcie podawał, że w funkcji timerAlarm nie podaje się us lecz liczbę ticków timera. Niestety w Arduino powyżej 3.0 to nie działa - próbowałem bardzo wiele kombinacji, również taką. Przerwanie się nie generuje. Ale udało się wkońcu z botem dogadać i zrozumiał, że podaje ciągle podobne nie działające rozwiązanie :) Podaje, gdyby ktoś szukał...
Wysyłasz procesor pod przerwanie którego niema. To jak myślisz co biedny procesor ma robi jak tam niema nic. [syntax=c] ISR(TIMER0_COMP_vect) { }[/syntax] To musi być dodane. Resztę zrobi kompilator i przestanie się zawieszać.
Pytanie: reaguje na uchylenie o parę mm, czy dopiero wtedy, gdy włączy się oświetlenie wnętrza lodówki? Pewnie to drugie... A baterie kosztują. Trafiłem na moduł, na którym można zrobić opóźnienie alarmu: [url=https://abc-rc.pl/product-pol-14390... Timer czasowy 5V 2s-2h - C005 -...
Problemem jest to jakieś. Jesli timer ma np. okres 550us, a twoja pętla np. 551us to się robi problem - synchronizacja będzie się co raz bardziej rozjeżdżać, a kolejnej impulsy PWM będą co raz bardziej zniekształcone. Zamiast delay zrób tak jak pisałem - w funkcji obsługi przepełnienia timera uaktualniaj OCR. W dodatku musisz tak ustawić preskaler,...
Witam, zakupiłem ostatnio kilka takich modułów http://pl.aliexpress.com/item/Free-Shipp... wszystko ok, ale chciałem przerobić dwie sztuki na moduł czasowy z wyzwoleniem. Robie według opisu jednego z sprzedających z znanego portalu...
Nie licz na gotowe biblioteki, które najczęściej zawierają masę błędów. Napisz swoją obsługę serwa. Timerem wygeneruj impuls zależnie od tego jaki kąt chcesz uzyskać. Wiele serw nie wymaga przerwy pomiędzy impulsami ok 20ms, jeśli jednak ma ona być to też jest proste, po wygenerowaniu impulsu, wywołane zostanie przerwanie, które zmieni konfigurację...
Oj kolego jest wyraźnie napisane: Jestem początkującym programistą... wiec gotowca nie ma co dawać bo człowiek się nie uczy tylko bezmyślnie go używa. Podejrzewam że nie potrafiłby jeszcze zainicjować odpowiednio timer, skoro nie znalazł odpowiedzi na prosty problem. Tak poza tym z timerem tez procek się kreci bez celu oczekując na wciśniecie przycisku....
ok, dzięki za wyjaśnienie. Tym razem spróbowałem to samo z CTC. I jak zwykle coś schrzaniłem... [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> ISR (TIMER1_COMPA_vect) { PORTC ^= 0x0F; //zmiana stanu 4 młodszych diod co sekundę } void ini(void); int main(void) { while(1) { PORTC ^= 0xF0; //zmiana stanu...
Jeśli nie delay, to zastanawiam się jak inaczej to rozwiązać... Ustawić przerwanie od timera, albo przenieść delay do głównej pętli programu.
P.S: W timerze delay jest mi potrzebny bo wysyłam dane po rs485 i muszę odczekać czas ze względu na konwerter. Wiesz dobrze, że wcale nie musisz do tego używać delay'a... 4\/3!!
Ponieważ jest sobota i jestem leniem to gotowego programu pisał nie będę. Poza tym cała frajda z Arduino to napisać własny program, który będzie działał. funkcja Delay jest najgorszym z możliwych rozwiązań, bo podczas jej wykonywania program stoi. Proponowałbym zapoznać się z funkcją timer. Proste przykłady są tutaj https://playground.arduino.cc/Code/Timer...
Nie mam pomysłu jak to zrobić bez delay. Timerami. Dałem gotowca i notę Atmela ale widać admin wyciął. Poszukaj na stronie Microchip (Atmel) jest tam opis nadawania w RC5.
(at)Rzeczo Dobra rada - zapomnij, że istnieją funkcje delay. Zaprogramuj timer, tak, aby co sekundę wywoływał przerwanie. W funkcji jego obsługi zapalasz kolejne diody - robisz przesunięcie bitów z wsuwaniem jedynki. Przy okazji możesz sobie włączyć buzzer, a wyłączysz go w przerwnaiu compare timera, po upływie pożądanego czasu. Zaletą teog rozwiązania...
Witam... Najprościej chyba będzie użyć gotowych funkcji opuźnienia czasowego... Raczej nie ma sensu w tym przypadku pchać się w timer... #define F_CPU 1000000 /* Tu wpisujesz częstotliwość zegara z jakim pracuje uC #define CYCLES_PER_US ((F_CPU+500000)/1000000) /* cpu cycles per microsecond */ void delay(unsigned int us) {...
(at)ebson1307 Tak jak napisał kol. (at)bart-projects - przejrzyj notę użytego procesora, niewykluczone, że timer ma możliwość wprowadzania czasów martwych w generowany przebieg. Jeśli nie - to z pewnością w użytej rodzinie znajdziesz MCU, które taką możliwość posiadają. Robienie tego softwarowo jest możliwe - zrób sobie po prostu pętlę, w której wykonujesz...
może cos takiego ?? [url=https://www.ebay.com/itm/DC-5V-12V-...
Zacznij od przerwania timera. Na waitms i innych delay daleko nie zajedziesz - to ślepy zaułek, tak się nie da napisać żadnego sensownego programu.
Masz prawie stale aktywną linię E - błąd. delay(1) może dać opóźnienie 0, bo możesz tę funkcję wywołać tuż przed "cykmięciem" timera - przy delay() argument musi być większy od 1. Ponazywaj te bity i maski, bo kodu z magicznymi liczbami nie daje się czytać.
https://www.ebay.com/itm/Chromalock-CS-3... Dokładnie taki sam.
https://abc-rc.pl/pl/products/cyfrowy-ti... podłącz pod przycisk MODE może tak..
Dzięki pomocy jednego z forumowiczy ( dziękuję mrh :) ), udało się ustalić, że przyczyną problemów komunikacyjnych z ds18b20 są źle skonfigurowane opóźnienia. Opóźnienia chciałem zrealizować na jednym z timerów 2-5 w trybie one pulse mode. Niestety nie udało mi się do tej pory znaleźć błędu, więc proszę o pomoc w walce z opóźnieniami. Zamieszczam kod...
Szybko Ci poszło przeczytanie wszystkich artykułów na mikrokontrolery.blogspot. W każdym programie jakoś musisz obsługiwać upływ czasu, na pierwszej lekcji do zamigania led użyłeś delay, do paru innych prostych programów to też wystarczy, ale generalnie należy to robić na timerze. Jest to tak oczywiste, że w Arduino zrobili do tego gotowe funkcje, w...
Czemu nie używasz timerów? Czemu używasz delay'ów? Czy funkcja delay wie, jaki masz zegar docelowy? To jest i na timerze i na delayach. Ale i tak pytanie które zadałeś to już raczej dla autora biblioteki którą kompiluję powinno być a nie do mnie. :D
Jeśli chcesz mieć to jako numer wejściowy, musisz wykonać następujące czynności. 1. zmień wszystko: // wait 60 seconds delay_s 60 Do // wait $CH4 seconds delay_s $CH4 więc wykorzystuje wartość kanału 4 2. Następnie dodaj na górze skryptu: // description SetChannelLabel 1 Close SetChannelLabel 2 Stop SetChannelLabel 3 Open // NEW // set label of timer...
Właśnie delay napisany na timerze. Ten delay_ms(700) postawiłem by mieć pewność że czujnik zakończył pomiar, wiem że duży ale potrzebny mi by widzieć wyniki na konsoli. Przy mniejszym opóźnieniu zbyt szybko przewijał się ekran w realterm. Doczytałem faktycznie przy nie pojawieniu się echo należy podać niski stan na echo, będę to miał na uwadze. Nie...
Nie, chodzi o całą obsługę OW zrobioną w przerwaniu timera, bez użycia jakichkolwiek funkcji "delay", a na to narzuca się jeszcze automat związany z pomiarami temperatury, też zrobiony na przerwaniach timera. Motto nr 2: Delay - to twój wróg. Użycie Delay gdziekolwiek poza inicjowaniem działania urządzenia (czyli przed "pętlą główną", o ile ona w ogóle...
Przepraszam moi drodzy, chodzi mi o delay w Ardurino :) Arduino :-) Nie ten dział kolego! Informacje o delay znajdziesz [url=lmgtfy.com/?q=arduino+delay]Arduino delay Na odpowiedź naprowadzi też [syntax=c] void _delay(U32 ms) { struct timer_t* priv = &TIMER; U32 expire_at_tick = priv->tick + ms / priv->MS_PER_TICK; while (priv->tick <...
Napisałem delay oparty o timer konfiguracja TIM1: void TimerConfig() { RCC_APB2PeriphClockCmd(RCC_APB2Perip... ENABLE); TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_ClockDivision=... TIM_TimeBaseStructure.TIM_CounterMode=TI... TIM_TimeBaseStructure.TIM_Period=72; TIM_TimeBaseStructure.TIM_Prescaler=1;.....
Funkcja delay_ms() nie zależy od timera, więc prescaler nie ma dla niej znaczenia.
To w czym widzisz problem ;) Na początku, przy załączeniu spryskiwacza, setujesz jakiś merker, np. M1.0. W następnym networku wstawiasz warunek, że jeśli M1.0 jest=1 to startujesz timer TON. W kolejnym networku Warunek, że jeśli timer TON=1 to resetujesz M1.0. I na koniec oczywiście wykorzystujesz M1.0 do sterowania wyjściem Q spryskiwacza.
Ja kupiłem całkiem sporo rzeczy, ale ostatnio przyszedł taki oto timer, przekaźnik czasowy, czy jak go tam zwać: https://obrazki.elektroda.pl/8812632600_... https://www.aliexpress.com/item/Trigger-... Jak za 10 zł,...
I wszystko działa ok. Problem pojawia sie dopiero gdy timerem chcę obsłużyć sonar: Wg. mnie to takie umieszczanie delay'a w przerwaniu Timera jest ryzykowne. Czy oby na pewno w czasie tych 40 ms nie nastąpi ponowne żądanie przerwania? Trzeba by policzyć czasy i nie mieszać Timera z delay.
I najważniejsze: Przy wykorzystaniu timera, zapomnij o funkcjach delay-opodobnych.
Witam. W WinAPI raczej nie korzysta sie z akcji typu Delay() :). Uzyj kontrolki Timer - ustaw odpowiedni czas i zareaguj na komunikat od tej kontrolki (chyba OnTimer). Dziala to tak, ze Timer, po ustawieniu np: 400ms co 400ms generuje komunikat OnTimer. Dalej powinienes sobie poradzic. Jak nie, to pisz. Pozdrawiam.
(at)dasej Zainstaluj wtyczkę do Arduino IDE o nazwie ESP8266/ESP32 Exception Stack Trace Decoder . Będziesz wtedy konkretnie wiedział, gdzie się program sypie. Inaczej, to jest szukanie po omacku. Delay w esp nie istnieje Naprawdę? :) Kod z Arduino Core dla ESP8266 poniżej. Jest z całą pewnością mniej blokujący niż ten, co zaprezentowałeś w swoim poście....
Wprowadzono aktualizację dla delay_us na BL602. Teraz używa bl_timer_delay_us zamiast nops. Nieprzetestowane.
timer delay stm32 timer delay timer zamiast delay
instrukcja candy zamiennik tranzystor mje13005 podłączenie autoalarmu astra
sterownik pieca tigra mikrokomputer cobra1
Grzech wewnętrzny, radość z domniemanego grzechu, teologia moralna, KKK 1853, psychologia moralna Czujnik temperatury zewnętrznej Iveco Daily 2.3 HPI 2018 – lokalizacja w lusterku bocznym