Hej Niewiem czy windzie jest dostepny timer o precyzji mikrosekund. Ale znalazlem taki timer, moze sie przyda: ZEN TIMER v2.2: The Zen Timer is a high precision (microsecond accuracy) timing library for 16 bit real mode, 16 bit protected mode and 32 bit protected mode programs. Supports...
Witam, Chcę zbudować bardzo prosty zegarek a tak właściwie stoper. Chciałbym żeby mylił się co najwyżej 1min/tydzień. Napisałem program z użyciem timera, ale zegarek po ośmiu godzinach spóźnia 20 sekund. Czy wewnętrzny oscylator działa stabilnie, to znaczy jeżeli ma częstotliwość odbiegającą od 4Mhz...
Problem bierze się stąd, że rzadko kiedy przerwanie jest wywoływane co jakiś "okrągły" czas, np. co 100us. Zwykle użyty kwarc i preskaler powodują, że odmierzane odcinki czasu pomiędzy przerwaniami nie są "okrągłe", a co za tym idzie łatwe do liczenia. Dodatkowa zmienna f ułatwia nam zliczanie milisekund....
Witam! Postaram się wyjaśnić kilka niedomówień. 1. W S7-200 są 4 timery 1ms, 16 – 10ms i 235 -100ms. 2. Z pomiarem czasu z rozdzielczością mikrosekund za pomocą timera nie poradzi sobie większość PLC i to nie tylko małych. Należy pamiętać, że o tym ,czy timer doliczył czas ,czy nie jest sprawdzane...
A ja proponuję może najpierw się zastanowić nad tym do czego opóźnienia i wtedy dobrać sposób czy na timerze czy bez timera. Tak mi się wydaje, że próby zaprzęgania Timerów do super "idealnego" odmierzania tak gigantycznego czasu jak 1 sekunda to jak strzelanie z armaty do komara (choć może się mylę...
Na wyjściu TSOP1736 normalnie jest 1. Zaobserwowałem, że podczas trzymania przycisku pilot wysyła najpierw pełny kod, a potem tylko po (chyba) 3 bity oznaczające zapewne powtórzenie. Z kolei inny pilot wysyłał co chwilę to samo. Nie mierzyłem tego dokładnie, ale na pewno były więcej niż 3 transmisje...
Chodzi o to że protokół dmx ma takie ramki jak na obrazku na razie za pomocą UART zrealizowałem ramkę danego kanału, które to dane wysyłam za pomocą nóżki Tx, ale brakuje mi jeszcze mi początkowej ramki "Mark After Break (MAB)" MAB następuje natychmiast po zakończeniu Break i ma postać impulsu HI...
Rozumiem, ze zmienne zadeklarowales jako volatile, czy zapomniales o tym?:) Druga sprawa - komplikujesz. Ustaw 16-bitowy timer tak, zeby np. mial impuls co 1us, albo czesciej, w zaleznosci jaka potrzebujesz rozdzielczosc. Impuls, ktorego czas badasz wyzwala przerwanie, odczytujesz zawartosc 16 bitowego...
Witam, chciałem zrobić sterowanie silnikiem krokowym przy wykorzystaniu Timera. Niestety milisekundy są za długie a potrzebuję uzyskać większe prędkości. Wcześniej zamiast timera miałem delayMicroseconds(); ale z timerem jest łatwiej, tylko nie mogę znaleźć sposobu żeby obliczał w mikrosekundach. Czy...
Hi wszystim!!! Dziala!!Chocby z predkoscia 1Mhz,wiecej nie sprawdzalem. Oto kod: Czas podajemy w mikrosekundach. procedure DELAY(czas:integer); var zm1,zm2 : int64; cykle : int64; begin cykle:=round(czas/1000000...
A jaka rozdzielczosc pomiaru potrzebujesz ? To chyba zasadnicza kwestia. Czyli na ilu bitach chcesz mierzyc te kilka mikrosekund ? Pozdrawiam, yego
Wczytaj sobie kod do AVR-Studio i uruchom symulację. Będziesz widział, że czas pomiędzy przerwaniami będzie rósł o parę mikrosekund co każde przerwanie. Wszystko przez czas jaki mija od zgłoszenia przerwania, a wykonania instrtrukcji ładującej nową wartość do licznika. Daltego warto zrobić opcję z dodawaniem: TCNT2...
1) Procedura obsługi przerwania trwa mikrosekundy ;) Wywoływana jest co 50ms a dopiero 20 wywołań daje jakąś zmianę/ efekt 2) Program działa w pętli nieskończonej. Właściwy kod umieścił byś w pętli While(1) 3) Nie widzę przeszkody ;) 4) Proszę bardzo: 5) Nie, nie przerywają odliczania....
Po pierwsze to ty jak zwykle w temacie, gdzie chodzi o AVR 8bit zaczynasz opowiadać jak to ty robisz na ARM'ach - a to nie ma nic wspólnego z tematem. Po drugie - panie kolego - może już przestań opowiadać o Delayu 750ms, bo myślałem że co do tego to chyba się rozumiemy - że to jakaś bzdura i tak...
Podejrzewam, że będzie potrzebna jakieś formowanie impulsu ze zbocza. Albo poszukać innych rozwiązań: 74HC123 (podwójny przerzutnik monostabilny, co pozwala uzyskać dwa różne czasy; jest też podobny układ z serii CMOS 4000) - nadaje się do czasów od mikrosekund do minut, jakkolwiek wymaga układu RC o...
Układy proponowane wyżej nie spełniają wymagań - koledzy nie zwrócili uwagi, że tu trzeba regulować 4 czasy. Sposób - układy 74HC/HCT123 - 4 przerzutniki łączone szeregowo w pętlę i wyzwalające się po kolei pierwszy -> drugi, drugi->trzeci .... czwarty->pierwszy. Każdy z przerzutników może mieć regulowany...
Tojmak987123 pomyliłeś pojęcia: Szerokości wypełnienia nie mierzy się w Hz tylko w procentach lub jednostkach czasu (np. mikrosekundach). Twój program wywołuje przerwanie Timera0 co (256-194)*64 cykli zegara, Timer1 jest ustawiany 5 razy rzadziej czyli co 19840 cykli zegara tylko tyle możesz nim...
bardzo krótki czas zgrzewania (dziesiątki milisekund), To jest bardzo długi czas - jakbyś chciał zgrzać np. drut miedziany do blachy miedzianej, to czas powinien być liczony w dziesiątkach nie mili, a mikrosekund. Dla innych metali (np. niklu) może milisekunda jest akceptowalna. Myślę, że mogę oszacować...
Dziękuję Wam za cenne informacje. Ustawienie bitu UG w rejestrze EGR timera oraz ustawienie preskalera wg obliczeń poprawnie odmierza czas wg założeń. Ja również nie ustawiałem bitu UDIS w CR1 - wręcz jego ustawienie ponownie powoduje resetowanie się preskalera. Drugim moim pomysłem było ustawienie czasu...
Proszę zapoznać się np. z tym tematem : [url=][C++] Dokładny timer, mikrosekundy.
Poniższy artykuł przedstawia – krok po kroku – wykonanie niewielkiego, kieszonkowego oscyloskopu cyfrowego. Nie jest on tak dobry jak zwykły warsztatowy oscyloskop, ale z drugiej strony można zabrać go niemalże wszędzie. Poza tym – nie wszystkie projekty DIY muszą mieć sens. „Przeglądając...
Mikrokontrolerem można odmierzać okres - jeśli działa z zegarem 1MHz, to można na nim zrobić generator dający się ustawić na 1000Hz, 999.001Hz, 998.004Hz,... przy mniejszych częstotliwościach odstępy będą coraz mniejsze. Nie da się cyfrowo zrobić równych odstępów, jeśli sygnał ma być równym prostokątem. Można...
Uporządkowałem trochę bałagan w kodzie, może będzie Ci łatwiej przeanalizować uwagi BlueDraco. Powodzenia [syntax=asm] MOV R5,#0 ;? pod jakim adresem jest ta instrukcja i kiedy się wykona ;?dlaczego definiujesz ręcznie adresy danych zamiast użyć dyrektywy DS sek1 equ 55h sek2 equ 56h ms1 equ...
Jakiego typu jest absolutnie absurdalny i perwersyjnie wypaczony pomysł, aby mając OSa robić takie delay'e w wątkach ??? Również o podobną perwersję zakrawa wykonywanie przerwania timera co mikrosekundę tylko po to, zeby zmniejszać tam jakąś zmienną. Wez timer, skonfiguruj go jako one-shot, skonfiguruj...
Dlaczego nie użyjesz wzorca rubidowego? Oczywiście można użyć drogiego i sporego gabarytowo własnego wzorca, ale szukam prostszego rozwiązania. W zasadzie do mojego zastosowania sprawdza się dobre TCXDO czy OCXDO, ale zainspirowały mnie metody automatycznej kalibracji z użyciem modułu GPS - daje dokładny...
Jednak zrób to z timerami. Twój procesor wykonuje jedną instrukcjŁ an ogół w jedną mikrosekundę. Pętla, w której odliczasz jednomikrosekundowe opóźnienia samy wykonuje się kilka mikrosekund - tak zrobione opóźnienia są trudne do określenia, w każdym razie niewiele mają wspólnego z tym, co chcesz...
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. Zasadniczo można by wykorzystać do takiej kontroli...
Witam, Od pewnego czasu przestawiłem się z AVR na STM32, zbudowałem sobie proste ramię robota na 5 serv + sterownik Maestro od pololu, wszystko ładnie śmiga. Tydzień temu kupiłem sobie takie Gamepad: . Chciałem za pomocą tego pada sterować ramieniem. I już na 1 kroku się zupełnie pogubiłem. Otóż,...
11.0592 / 12= 0.9216 tyle trwa okres zegara w mikrosekundach . Poniewaz F=50 hz okres 20ms / 2= 10ms =10000 mikrosekund 10000 / 0.9216 = 10851- tyle taktow musi policzyc licznik timera, przerwanie wystapi gdy licznik doliczy do 65535 +1, poniewaz liczy od 0 do 65535 ,trzeba mu wpisac wartosc...
Jeśli bez timerów to zadeklaruj 4 zmienne typu long ( dla odliczania dużych wartości - to będą czasy przerw ) i 4 zmienne typu byte (czas impulsu) zerujesz zmienne przed pętlą . W pętli incrementujesz kolejno te cztery zmienne. sprawdzasz komendą if czy kazda z nich osiągneła założoną wartośc...
Niniejszy artykuł stanowi tłumaczenie anglojęzycznego skrótu artykułu opublikowanego przez autora w miesięczniku Радио. Po zbudowaniu kilku różnych (opisanych w innych artykułach na stronach autora) mierników temperatury i wilgotności autor zdał sobie sprawę, że...
Panowie postanowiłem wykonać test wbudowanych w atmel studio typów fixed point vs float. Na razie tylko samych _Accum z saturacją ale to co zobaczyłem nie napawa optymizmem gdzie jest błąd?Dodam że -atmel studio 7, -wewnętrzny zegar 8MHz -Atmega16. -Do pomiaru czasu używam timer 1. Najpierw kod,...
No tak... ;) Mam jeszcze takie pytanie, napisałem ostatnio funkcję opóźnienia (delayus/delayms). Generalnie działa poprawnie, ale dzieje się jedna dziwna rzecz, której przyczyny nie mogę znaleźć. Opóźnienie zrobiłem z wykorzystaniem timera TIM2. Działa to tak, że gdy jest wywoływana funkcja delayus...
Cześć, chciałem przeportować kod do odbioru RC5 autorstwa Dondu za ATMega8 na ATTiny13 - REzystory diod 470Ω, nie zmieniłem na schemacie. Pilot samoróbka, ale 100% pewniak. No więc w czym problem? Uruchomiłem przykład na ATMega8, wszystko pięknie śmiga. Program kompiluje się dla Tiny13...
Witam, na wstępie dodam że jestem bardzo początkujący w programowaniu. Staram się stworzyć program który by włączał i wyłączał funkcję RGB, poprzez pilot RC5. Staram się to zrobić po kolei i najpierw próbuję gasić i zapalać pilotem diodę. Problemem jest to, że program reaguje na każdy przycisk a nie...
Nie jest tak, że w wszystkie przerwania mają ten sam priorytet? Nie jest to tak. Generalna zasada jest taka, że w pierwszej kolejności zostaje wykonana procedura obsługi przerwania, które pojawiło się prędzej. Jeśli w czasie wykonywania tej procedury nie włączymy flagi globalnej I a pojawi się...
Skoro już jesteśmy przy konstruktywnych krytykach, to i ja dodam kilka uwag: 1) Schemat jest bardzo słabo czytelny. Staraj się stosować Vcc i GND, bo np. okolice resetu wyglądają na pierwszy rzut oka co najmniej dziwnie. Warto rozdzielić sekcje zasilania i głównego obwodu. Oto kawałek jakiegoś mojego...
Co to jest Prescale ? Timery w mikrokontrolerach AVR nie muszą być taktowane zegarem systemowym - często jest on za szybki dla potrzeb projektanta. Inżynierowie z Atmela rozwiązali ten problem, umieszczając dodatkowy (nieco ukryty) licznik zwany prescalerem. Z tego licznika otrzymujemy kilka nowych...
Wprowadziłem stosowne zmiany w moim kodzie: - dodałem odpowiednie opóźnienia po zmianie stanu linii EN oraz RS (1 mikrosekunda), - nieco zmodyfikowałem ustawienia wyświetlacza. [syntax=c]/* * main.c; plik zgodny z biblioteką CMSISv1p30_LPC17xx/inc/LPC17xx.h * CMSISv1p30_LPC17xx/src/system_L...
Witam. Timer mikrokontrolera '51 taktowanego zegarem 11.059200 MHz zliczy w ciągu jednej sekundy 921600 impulsów. Ze względu na wielkość timera (2 bajty) może Kolega zliczać setne części sekundy - ustawić przerwanie co 9216 impulsów. Każde wywołanie przerwania zwiększy zmienną o 1, czyli mamy w niej...
Nemo: Przeciez nie ma to znaczenia gdyz przerwanie nastepuje co rowny okreslony czas, tylko ze z opuznieniem a opuznienie zedu mikrosekund nikomu chyba nieprzeszkadza ;) Zgloszenie przerwania --> skok do timer 0,1s Zgloszenie przerwania --> skok do timer 0,1s Zgloszenie...
Proszę o sprawdzenie kodu konfiguracyjnego, Na razie dla STM32VLDiscovery. Skonfigurowałem Timer, ADC i DMA. Nie mam jeszcze skonfigurowane przerwania od zakończenia DMA. Funkcja Board(); [syntax=cpp] #include "stm32f10x.h" #include "Board.h" void RCC_Config(void) //konfigurowanie sygnalow...
Wydaje mi się, że to może działać tak: Zrób sobie przerwanie EXTI na zbocze narastajace na linii A enkodera, w przerwaniu sampluj linię B, dzięki czemu ustalasz kierunek - w tym samym przerwaniu ustalasz stan linii U/D i odpalasz timer, ktory wygeneruje impuls STEP. Latency rzędu 1us jest osiągalne...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem...
Witaj !!! Tak jak napisał kolega LightHouser, nop to rozkaz, który nie robi na prawdę nic ale zajmuje cykl rozkazowy. W standardowym procesorze '51, zastosowano preskaler przez 12. Znaczy to, że częstotliwość taktująca (kwarca) wstępnie jest dzielona przez 12. Jeżeli zastosujesz kwarc np:12MHz to naprawde...
Co do bascoma...jako ze generuje wolny kod to nie możesz wepchnąć rozbudowanej obsługi licznika w przerwanie, bo pogubisz takty albo wykopyrtniesz procesor bo sie stos przepełni(w przypadku gdybys w obsłudze przerwań nie wyłączał przerwań, a w trakcie trwania jego obsługi wystąpiło następne przerwanie...
Autor przedstawionego poniżej projektu zmierzył się z zadaniem skonstruowania cyfrowej perkusji z wyjściem MIDI. Układ taki wykorzystywany jest przez wielu perkusistów do ćwiczeń lub też uzyskiwania nowych brzmień. Dzięki niemu możliwe jest podpięcie padów perkusyjnych z wyjściem analogowym do...
Kłaniam się automatykom i opisuję problem: Sterownik chcę wykorzystać do wizualizacji procesu naważania surowców używając: --- Siemens S7 1200, 1211DC/DC/DC, ---belki tensometrycznej 3 kg, Mavin NA27, ---przetwornika tensometrycznego A/C, HX711, ---transoptorów do konwersji napięć 24/5 V, HCPL2611(6N137), ---programu...
To jest parametr konfiguracyjny systemu - chyba wciąż 1 milisekunda Chyba masz na myśli max czas wykonywania tasku. Przy przełączaniu tasku przerwania mogą być blokowane ale nie na ms, raczej to będą ns. Na Arduino nie ma systemu, który by blokował przerwania Ale robią to wszelkiej maści i rodzaju...
ja mam zewnętrzny ram więc mam pamięci pod dostatkkiem ale nie rozumiem idei Twojej propozycji. pozdrawiam PC Idea polega na licznikach softwarowych obsługiwanych w procedurze przerwania timera. Jeśli programujesz w innym języku niż asm, to nie przejmuj się tym, że napisałem coś o RAM, każda...
Zaznacze na początku, że nie jestem jeszcze zbyt mocny jeśli chodzi o mikrokontrolery. Napisałem (na podstawie kodów znalezionych w sieci) programik, który za pomocą przycisków pozwala zwiększać/zmniejszać wypełnienie sygnału (PWM) i traktuje nim diodę. Chciałbym za pomocą dwóch innych przycisków traktować...
Witam Nie znam C ale ciągle na forum robicie błąd pisząc że serwo steruje się sygnałem PWM, sterowanie powinno się odbywać sygnałem o szerokości około 1-2ms i stałym okresie powtarzania 20ms. Pierwsze doświadczenie, zmieniamy przy PWM okres powtarzania na 15ms, PWM się nam nie zmienia a szerokość...
Chyba zlokalizowałem źródło problemu. Niestety nie wiem jak je usunąć. Chodzi o funkcje zwracające czas w mikrosekundach i milisekundach - read_ms() oraz read_us(). Po wysłaniu poprzez USART do PC wartość którą wpisuję jako argument do funkcji kalman_calculate tj. (read_ms()-timer) pokazały mi się na...
No tak, nie sprecyzowalem. Na razie efekt miał być taki że switch (PD.0) miał włączać timer. Docelowo będą dwa switche, jeden włącza (PD.0) a drugi wyłącza (PD. 1) timer. Przeanalizuj więc ten przykład: [syntax=basic4gl] 'Timer0 measures time interval betwneen two falling edges: 'input#1 - PIND.0,...
Witam, Chciałbym mierzyć czas miedzy dwoma sygnałami gdzie pierwszy sygnał generuje START, a po kilkunastu mikrosekundach taki sam sygnał dochodzi z drugiego źródła i generuje STOP pomiaru. Odstęp między tymi sygnałami wynosiłby od kilku do kilkudziesięciu mikrosekund. Chciałbym do tego wykorzystać...
Najprościej można tak: 1. Ustaw przerwanie zewnętrzne na pinie ECHO wyzwalane na obydwa zbocza. 2. Gdy przychodzi przerwanie odpalasz timer pracujący z rozdzielczością powiedzmy 1us. 3. Gdy przychodzi kolejne przerwanie (od opadającego) to wyłączasz timer i sprawdzasz w rejestrze timera ile mikrosekund...
Nie działa Ci z to z millis bo może źle używasz. Jak masz przez 200ms kręcić kołem to wstawiasz w loop funkcję, która włącza kręcenie kołem i zapisuje czas startu, w kolejnych wywołaniach sprawdza czy już minęło od chwili startu 200ms i ewentualnie wyłącza kręcenie kołem. Jak coś zablokuje loop na np....
Szukałem odpowiedzi na to pytanie, lecz nie znalazłem, wiec postanowiłem rozpocząć nowy temat. Otóż mam problem z liczeniem kanałów DMX, a dokładnie z timerem0 którego używam w tym celu. Mikrokontroler to jak w temacie ATmega8, częstotliwość taktowania 8 MHz, ustawienia sprzętowego UART 250 000 baud....
Jeśli ma to być tylko termometr, to obejdzie się nawet bez timerów. Nie ucz się wykonywać poważny kod w przerwaniach. Tam mają być tylko zasygnalizowane pewne działania, np. ustawienie falgi do odczytu czegoś tam, a dopiero kod w funkcji głównej po napotkaniu flagi to robi. Unika się wykonywania zajmującego...
Jest ktoś zainteresowany rozwiązaniem ekwiwalentnym (na przerwaniu), dla 1wire? :] Biorąc pod uwagę fakt, że jeden bit w 1-wire trwa kilkadziesiąt - kilkaset mikrosekund, oraz to, że można go zrealizować w pełni sprzętowo korzystając z UARTu, taka zabawa IMHO nie ma sensu. Przerwanie z jakąś logiką...
Nie rozumiem jak i kiedy mam ładować te wartości - prosiłbym o jakiś przykład. Czy mógłbyś to rozpisać (tak jak ja w pierwszym poście), zarówno dla timera jak i rejestru compare? Nie wiem jak z czasami tego ładowania ponieważ generowane impulsy są rzędu mikrosekund. Nie zaburzy mi to zależności czasowych?...
Windows nie jest systemem czasu rzeczywistego, a już na pewno nie jest nią platforma .NET :) Jest raczej nastawiony na obsługę zdarzeń. Sam pomiar czasu czy porównanie dwóch czasów zajmuje ileś-tam mikrosekund, więc raczej nie zrobisz super-dokładnego zegara, który się nie będzie rozjeżdżał z czasem....
Kolego dondu: deklaracja zmiennej licznik: unsigned long int licznik=0;//zmienna globalna licznik Fuse bity ustawione prawidłowo (temat wałkowany setki razy).Zegar definiowałem początkowo w ustawieniach konfiguracyjnych AVR Studio, później gdy zaczęły się problemy przez #define F_CPU. Do mirekk36: ...
Te czasy to chyba chodzi o mikrosekundy a nie milisekundy? Przy odstępach rzędu ms nie byłoby najmniejszego problemu, jako że najdłuższe co może być, czyli reset pulse trwa zaledwie 480 us. Ale ok, napisz coś więcej o tym pomiarze obrotów. Dlaczego wykorzystałeś wejście INT, zamiast wejście taktujące...
Jako, że niedawno zakończyłem dość poważny większy projekt to w ramach relaksu naszło mnie na realizację kolejnej pchełki, która od jakiegoś czasu zaprzątała mi głowę :) Dość często potrzeba mi odmierzyć niewielki odcinek czasu bez zbędnej dokładności. Zazwyczaj używałem do tego celu timera w...
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,...
Timer 16-bitowy chodzący w kółko, linie INT0 i INT1 zaprogramowane na przerwania od obu zboczy, obsługa przerwań odczytuje wartość timera i wykonuje stosowne obliczenia. Jeśli procedury obsługi innych przerwań będą poprawnie napisane, nie ma powodu, żeby to nie zadziałało. Powinieneś uzyskać rozdzielczość...
Stosuję przekaźnik S14-2C-0505. W dokumentacji widzę dwie wartości - 36 i 47 Ohm. No to najprościej zmierz. Dla 47R i 5V, daje to prąd około 100mA. W sumie dużo. Dla 10V będzie to aż 200mA. Wcześniej pisałeś że 4 takie przekaźniki pociągną 280mA. Więc nie ma co liczyć tego dalej. Trzeba najpierw...
Najpierw zastanów się po co chcesz odmierzać pojedyncze mikrosekundy... Moim zdaniem nie ma w ogóle takiej potrzeby. Nastaw timer na taki czas, jakiego naprawdę potrzebujesz. Podtrzymuję zdanie, że taka obsługa LCD (z opóźnieniami na timerze) ma same wady.
Witam wszystkich Elektrodowiczów! Otóż stoję przed problemem szybkiego rejestrowania stanu wejść cyfrowych. Problem wygląda następująco: - jest to układ 10 analogowych komparatorów napięcia (10 kanałów), który może pracować z rzeczywistą prędkością próbkowania/porównywania sygnału ok. 10 ns każdy, -...
Zastanawia mnie ocena tego postu przez innych użytkowników Mnie też zastanawia za co mnie zminusowali... Czyżby, zgodnie z sondażami, większość Polaków miało problem z czytaniem ze zrozumieniem? W sensie czy wykorzystujesz jakieś sprzętowe peryferia typu przerwania zewnętrzne/ timer Dobre...
AVE... XC8 nie ma dobrej biblioteki do obsługi LCD 16x2. Ta stworzona przez Microchip działa tylko przy określonej kolejności podłączania pinów do wyświetlacza i nie ma poprawnej inicjalizacji trybu 4-bitowego, inna, dostępna w odmętach internetów nie obsługuje wszystkich modeli wyświetlaczy oraz...
A jaką precyzję mają te rezystory? Mierząc ich wartości dokładnie wyszło mi, że stosunek wyszedł około 64,3 do 1. Jeden z nich miał 1%, drugi chyba 5%, akurat takie miałem. A z innej beczki powstał mi nowy problem, ogólnie kod został dosyć skopiowany z jakiegoś artykułu, więc może być parę...
Ale przecież w przerwaniu timera triak w odpowiedniej chwili włączam, więc skoro mam go wcześniej wyłączyć to późniejsze włączanie nie będzie miało sensu, gdyż w kolejnym wywołaniu przerwania timera ten triak zostanie niepotrzebnie wyłączony. Właśnie tak. MOC3023 z Twojego schematu potrzebuje pewnie...
hmm chodzi o to ze od momentu w ktorym rozpoczynam zliczanie dajmy na to 200us [w asemblerze komenda setb tr0] do momentu w ktorym nastapi skok do obslugi przerwania uplywa wiecej niz 202us. [202 bo juz wliczam tutaj skok do przerwania ktory trwa 2 cykle]. zakladalem tez ze moze tam jeszcze jakas jedna...
Assembler tu nic nie pomoże. Standardowy timer jest zbyt wolny. Musisz sam oprogramowac zależności czasowe. Poczytaj coś o funkcjach HPT (coś w rodzaju QueryPerformanceCounter i inne). Dzięki nim można osiągnąć rozdzielczości kilkunastu mikrosekund.
Istnieje coś takiego jak HPT (High Performance Timer), pozwalające odmierzać czasy na poziomie mikrosekund i faktycznie było już omawiane na tym forum. Rozdzielczość czasu mocno zależy od sprzetu. Trzeba mieć to na uwadze, pisząc program.
A czy mogę prosić o przykład funkcji do C (linux) która odmierza dokładnie mikrosekundy? Prosze bardzo : setitimer (musisz dolaczyc naglowek <sys/time.h>).Za pomoca funkcji signal (<signal.h>) ustaw sobie funkcje callback-owa do odpowiedniego sygnalu (patrz ustawienia timera).Szczegoly...
Co do programu który przedstawiłeś, to sie nie wypowiem, bo C dla AVRów sie nie uczyłem, zacząłem od asemblera i przy tym zostane :) Jeśli chodzi o podpięcie nadajnika bezpośrednio pod uC to na pewno to nie wystarczy. Jeśli w ogóle nadajnik będzie cos nadawał, to osiągniesz bardzo małe odległości, mysle...
Juz rozumiem :) Dzieki Fantom. Tutaj poazalem wielkosc tego bufora calego - po okolo 30 kB wywala EBUSY - a maksimum okresla czas w mikrosekundach... #define ALSA_PCM_NEW_HW_PARAMS_API #include <iostream> #include <alsa/asoundlib.h> int rmHeader(FILE* fd, FILE* out...
no przecież jest wszystko tam dokładnie napisane Co pewien czas masz wysłać jeden Bit ( 1.778ms) czyli polecam zrobić tak: procedurka czekaj; begin sleep(889); end; procedurka jeden; begin //wystawjeden przez 889mikrosekund na porcie czekaj; end; procedurka specjalnybit; begin ...
Witam, Chciałbym przedstawić mój pierwszy układ na mikrokontrolerze. Jest to dość nietypowy zegar... Czas oraz datę ukazuje za pomocą ośmiu diod LED. Układ wykorzystuje bezwładność ludzkiego oka. Ukazanie się obrazu jest możliwe dzięki bardzo szybkim (kilkaset mikrosekund) zapalaniu się i gaśnięciu...
Witam Chcę zrobić w miarę dokładny timer na ATMega8. Ten na którym wykonuje prototypowe projekty działa ale się bardzo późni. Otóż przedstawiam problem: Wykonałem układ zapalający diodę LED przy pomocy ATMega8 ( nic więcej - taki prościutki układ). DO tego napisałem program...
Witaj migot. Już byłem na tej stronce, i jest fajna. Jednak nie opisuje ona sposobu wyliczenia częstotliwości na timerze. Znalazłem fajny program tj. kalkulatorAVR i porównując przykład z innego programu doszedłem jaką podać wartość aby uzyskać przepełnienie co daną ilość mikrosekund. Dzięki za zainteresowanie....
Witam. Zadeklarowałem zmienną Losowa_Waga jako Word - niestety sytuacja się nie zmieniła. Na swoje usprawiedliwienie mam tylko to, że przy sprawdzaniu porawności programu korzystałem z polskiego helpa do Bascoma AVR (help v. 1.11.7.7) i tam w przykładzie był Integer ;) . Instrukcję Print przeniosłem...
Witam No to po urlopie to pewno masz więcej energii na działanie, a myślałem że już zrezygnowałeś z tego wyzwania :wink: Mam pewien problem z uruchomienie pliku .exe (próbowałem wklejać bibliotekę do katalogu Windows i system32, oczywiście na początku uruchamiałem wszystko w jednym katalogu no...
Możesz liczyć impulsy na podstawie przerwań zewnętrznych wyzwalanych zboczem, a nie na liczniku sprzętowym. W tym przypadku powinno być to lepsze rozwiązanie, bo będziesz mógł zastosować prosty algorytm, który zaproponowałem i uzyskasz kolejne cyfry wyniku bezpośrednio w oddzielnych rejestrach. Zliczanie...
Witam, Mam drobny problem z wyrabianiem się w czasie na Atmedze8 z wewnętrznym zegarem 8MHz (zewnętrzny kwarc niestety nie wchodzi w grę ze względu na ograniczenie miejsca na PCB). Ogółem piszę w C, ale procedury dla których czas wykonania jest ważny napisałem w asmie. Problem jest taki, że nie wiem...
hmm... ok, chyba zaskoczyłem .... ze 117 strony dokumentacji ATMega8: Kiedy AS2 jest nie jest ustawiony (0), to Timer/Counter 2 is taktowany z I/O zegara. Kiedy AS2 jest ustawiony (1), to Timer/Counter 2 is taktowany z kwarcu połączonego do pinów TOSC. Tak czy inaczej, chce mieć możliwość precyzyjnego...
#define _NOP() __no_operation() Drobny problem - to definiuje _NOP a nie __no_operation ;-( Więc zakładam, że odpowiada to emulowanej instrukcji NOP MSP430 - czyli 1 cykl maszynowy ( 125 ns dla 8MHz) Co do zegara to nigdize w programie nie zmieniam jego taktowania, zakładam...
W instrukcji CONFIG SERVOS jest taki parametr jak RELOAD = xxx. Liczba xxx określa jaki czas w us będzie pomiędzy kolejnymi przerwaniami licznika taktującego generator PWM dla układów serwa. I będzie to rozdzielczość tego układu. Zatem jeśli wpiszesz 10 to SERVOS(1) = 100 da nam 100x10us = 1ms impuls...
C znam dosc dobrze, studiuje informatyke chciałbym bardziej napisać coś samemu niż korzystac z gotowców, nie wiem jak dokladnie odmierzać czas rzedu mikrosekund na tym polega problem- napisanie funkcji która odczeka potrzebna chwile. Którego timera najlepiej uzyc... PIT, RTT PWM Dodano po 16 ...
Mam problem z napisaniem programu rozpoznającego stany w sieci. Na wejście INT0 procesora podpiąłem sygnał z sieci 1Wire. Chciałbym rozpoznać trzy stany w sieci: - reset (czyli ściągnięcie linii danych do 0 na 480us) - nadanie 0 - (czyli 10us stan niski, 80us stan wysoki) - nadanie 1 - (czyli 80us...
mikro = 0.001 [mili] mikro = 1 / 1000 [mili] czyli jedna milisekunda(ms) ma tysiąc mikrosekund(us). Mam pytanie: czy to działa z metodą wysyłania kwadratowej fali? Bo ja chcę zrobić pilot który będzie wysyłał parę komend, ale nie wiedziałem jak zmodulować sygnał. bardzo bym prosił o potwierdzenie...
Raczej tak. Opoznienia z delay.h sa w assemblerze (glownie) wiec wiadomo dokladnie ile taktow sie wywoluja, sa tez sprytnie optymalizowane, tak, zeby odmierzane czasy byly jak najdokladniejsze. Twoje procedury sa o tyle gorsze, ze sa czesciowo w C, wiec opoznienie bedzie zalezec od wersji kompilatora,...
Żeby nie zużywać za dużo timerów, można zrobić jeden chodzący "wolno" i tylko czytać jego wartość w dwóch kluczowych momentach; potem odejmować i jest git. Wtedy, korzystając z przerwań typu "pin change", możemy jednym prockiem obsłużyć stosunkowo sporo kanałów (wychodzi mi 21 wejść dla Atmegi 88, pozostawiając...
Nie. Przecież opóźnienia rzędu mikrosekund ci nie przeszkadzają. Nic więc nie stoi na przeszkodzie, żeby wysłać całe polecenie na raz. Opóźnienie potrzebujesz do odczytu skonwertowanych wartości ciśnienia/temperatury. Tu zamiast czekać ustaw flagę w przerwaniu timera, w pętli głównej ją sprawdzaj, jak...
beznadziejny_elektronik -> tak jak pisze janbernat czerp informacje ze źródeł a nie z powielaczy w internecie wprowadzających swoje błędy, chociaż powiem ci szczerze , że na tej stronce też jest to poprawnie opisane więc nie wiem skąd takie wnioski wyciągnąłeś void _delay_us(double _us) Funkcja...
Przerwanie do dosłownie kilka komend. Służy tylko do multipleksowania wyświetlacza. Jeśli się dobrze orientuję, to trwa ono kilka/kilkanaście cykli zegara, czuli kilka mikrosekund. Przy czasie tych opóźnień nie powinno mieć to znaczenia. Zresztą poniżej kod przerwania: ISR(TIMER1_COMPA_vect)...
Po pierwsze to najspokojniej w świecie możesz używać dowolnej nośnej z zakresu 24-38kHz na nawet 22-40kHz i to nie wpłynie znacząco. Najlepiej zawsze 36kHz i będzie OK. oki, ja mam 36 wiec jest dobrze:) ptrail - no toć przecież widzisz pan, że ma to być impuls o określonej długości, tyle że...