Masz narzucony zegar 12MHz i on jest podstawą do obliczeń. Timer będzie taktowany zegarem 1/12 Fosc czyli 1MHz i tego nie zmienisz. Masz do odmierzenia 2 czasy 3360us i 10640us. Wybierając tryb 2 Timera utrudniłeś sobie sprawę bo maksymalny okres który możesz zliczyć do 256us. W takim przypadku musisz zrobić dodatkowy programowy licznik. Największy...
np. Nie da się. TImer0 może zliczać tylko z pinu PD4. I to z PinD.4 a nie PortD.4 ;) Można i z PinD.0, ale nawet przerwania żadnego do tego nie ma więc trzeba by programowo. A nawet jak przerwanie by było (mowa o przerwaniach INTx) to Timer tego nie zliczy. Trzeba by programowo zwiększać zawartość licznika Timera0, ale po cholerę. Jeżeli to ma być...
Załączoną instrukcję programowania chociaż przeglądnąłeś? :D Na str. 307 znajdziesz opisane obszary pamięci. W skrócie: tak jak robisz i nie wchodzisz z adresami na obszary specjalne jest w porządku, dodatkowo masz jeszcze pamięć H "retentive", D na rejestry "niebitowe". Możesz też włączyć automatyczne nadawania adresów z wybranego zakresu. Zerknij...
Przy czasach na poziomie sekund, minut to nie jest to żaden problem. Jeden timer ustawić na stałe przerwanie np co 100ms, w przerwaniu od tego timera przeglądać jakąś tablicę, w której każdy jeden element odpowiada jednemu programowemu licznikowi. Zmniejszać liczniki w elementach w tej tablicy, po czym po wyzerowaniu się wywołać jakąś funkcję. W moich...
zastosować do timera (przy przepełnieniu) programowy licznik na zmiennej
Może by tak te impulsy na próbę podać na zwykły licznik/timer i zobaczyc ile zliczy na sek. i czy zlicza stabilnie? Przynajmniej bedzie wiadomo czy to problem bardziej sprzetowy, czy programowy.
Póki co to dokładność będzie +- czas miedzy przerwaniami timera sprzętowego. Czy istnieje jakiś sposób na zwiększenie dokładności takiego zegara? ...poza zwiększeniem częstotliwości przerwań timera/licznika? :)
mariooo: niby jak hcesz przehować zmienną zmienno-przecinkową w 51? avr'y mają bit carry dzięki czemu idzie sobie liczyć zmienne bardzooo duże.. co do metody liczenia są 2 inne metody: 1: puścić timer. programowo odliczyć 200 impulsów.. po tych 200 impulsach sprawdzić jaki czas upłynoł (wartość licznika) 2: puścić timer. programowo zliczać impulsy podczas...
Szkoda, że nie chciałeś się dokładnie zapoznać z data sheet dla xx8xC52... 1. Licznik T2 może zliczać impulsy z wejścia T2 (P1.0), a wejście T2EX (P1.1) może służyć do zmiany kierunku liczenia lub generowania przerwania na opadającym zboczu. T2EX może też być wyjściem sygnału o programowanej częstotliwości. 2. Tak, dostęp do górnych 128 bajtów RAM jest...
Sprzętowe to na pewno specyfikacja, możliwość realizacji konkretnych typów pomiarów (analogowe, cyfrowe itp), kompatybilność z konkretnymi modułami (np RT, HS itp.) A programowe to opis poszczególnych opcji które mogą być realizowane programowo jak liczniki, timery, komunikacja, obsługiwane protokoły. Wszystkie potrzebne informacje znajdziesz w manualach...
a instrukcje start timer1 i stop timer1? to tak najprościej, bo wogóle to to można zrobić na timerze0, przerwaniu i jednym liczniku programowym...
Chodziło mi z strony programowej jak to jest zrealizowane używasz timera ? Tak, jeden z liczników programowych (a mam ich w przerwaniu kilka do różnych celów) się tym zajmuje. Szukałem i nie mogę znaleźć - jaka to obudowa do tego sterownika? To zwykła popularna i tania obudowa Z78.
Ja bym zrobił to w drugą stronę. Tworzysz 3 zmienne globalne jako liczniki (tak jak masz TCNT dla timera). W przerwaniu od timera jedyne co robisz to inkrementujesz te zmienne. W ten sposób częstotliwość zmieniasz poprzez wartość tych zmiennych (do ilu ma liczyć twój programowy timer). A pwm robisz na 3 ifach w pętli głównej (wypełnienie zmienisz poprzez...
Jeśli ja dobrze rozumiem załączonego pdf'a to to jest jeden licznik z dwoma progami / komparatorami. Na moje oko to liczy do progu PS1 i odpala wyjście 1 na czas t1 a jak doliczy do progu PS2 odpala wyjście 2 na czas t2. i jeszcze sprawa timerow. Jeden zatrzymuje papier po odliczeniu, by nóż trafił w nieruchomy, i tam mam 200ms, a drugi timer wyzwala...
Witam Proponuję zrobić to troszkę inaczej. Przerwanie zaprogramuj tak aby ustawiało jakiś bit co jedną sekundę. Program główny ma mieć taką konstrukcje. czy sekunda: jeżeli tak to mrugnąć 5x diodą wyzerować czy sekunda jeżeli nie skok na czy sekunda czy sekunda 2: jeżeli tak to buzer 4x wyzerować czy sekunda jeżeli nie to skok do czy sekunda...
Nie opisałeś dokładnie sposobu obsługi, więc trudno o szczegółową odpowiedź... Przyciski obsługiwane niezależnie mają oddzielne liczniki, a zależnie - wspólne. Przy takiej ilości to pozostaje obsługa liczników programowych w przerwaniu timera. Reszta procedury w petli głównej sprawdzająca po kolei stan liczników i jeśli są wyzerowane dla danego przycisku,...
Nie podałeś jeszcze jaki masz kwarc ale kiepsko to widzę... Timery 51 są 16bitowe (max), czyli mogą odliczyć najwyżej 65536 cykli maszynowych, ewentualni mogą zliczzać impulsy zewnętrzne ale to wymaga dodatkowego generatora. Zazwyczaj robi się to tak, że przerwanie jest np. co 10ms i czas 1s czy dowolny inny się odmierza przy pomocy licznika programowego.
const int stepPin = 8; unsigned long stepperTimer; int currentStepperSpeedDelay = 500; // bieżąca prędkość krokowa opóźnienie byte stepInState = 0; // stan wysoki lub niski dla następnego kroku int stepCounter = 0; // licznik kroków int targetSteps = 200; // docelowa ilość kroków bool running = false; // flaga informująca, czy silnik działa void setup()...
TV to czas w formie "S5T#2S" (opóźnienie załączenia,wyłączenia,impulsu) Jeśli z lewej strony zamarkujesz odpowiedni blok (funkcji,czasu,licznika itp.) i naciśniesz F1 to uzyskasz odpowiednie informacje dotyczące tego bloku. Bloki są widoczne z lewej strony jeśli się ustawi język programowania FUP - (po angielsku prawdopodobnie FB) W języku AWL a M 0.0...
To ze te timery licza Ci inaczej to znaczy ze masz rozno ustawione preskalery do tych liczników. Jednej sekundy na takim kwarcu nie uzyskasz. Bedziesz musiał albo zastosować sygnał zewnętrzny albo licznik programowy dla timerów.
Jak nie radzisz sobie na razie z tym timerem to przynajmniej nie nadużywaj bezpodstawnie Wait. To co Ci zaproponuję nie zwalnia Cię od ogarnięcia timerów! Ustal sobie jakie dopuszczasz maksymalne opóźnienie pętli i użyj go tylko raz np. 10ms. Za rozwiązanie, może nie do końca eleganckie, zaraz zbiorę burę od fachowców ale w wielu przypadkach to naprawdę...
Hmmm, szczerze mówiąc nie bardzo mi się chce analizować program bo troszkę go zamieszałeś i właściwie to już nie bardzo wiem jakie zrobiłeś założenia działania tego progsa. W każdym razie widzę tu badanie krótki/długi przycisk i pomieszanie bezpośredniego czytania pinu z Debounce... jak dla mnie trochę to demotywujące. Rzuć jeszcze raz okiem na moje...
A jakiś przykład kodu jest kolega w stanie pokazać? Ustawiasz timer, tak aby się przepełniał po czasie np. 1,5 znaku. W przerwaniu odbioru, zerujesz licznik timera. W przerwaniu przepełnienia timera ustawiasz flagę - koniec transmisji. Oczywiście w zależności od konkretnych peryferiów dostępnych w MCU, można ten proces zoptymalizować. Do tego dodałbym...
Można by tak: zegar 12 MHz i wtedy cykl maszyny trwa 1 us, timer T0 ustawiasz w tryb 2 (autoreload) wpisując do jego rejestrów TH0 i TL0 wartości takie by przerwanie od niego było co 10us (problem kroku załatwiony). Tworzysz licznik programowy w którym będziesz odliczał potrzebną ilość wcześniej ustalonych przerwań. Po przekręceniu licznika reakcja...
No a zdradź mi tajemnice dlaczego to mają być przerwania a nie callback-i. Jeżeli chcesz funkcje A wolac co każde przerwanie a B co 20 na przykład to zrób sobie licznik. Sprzętowo to tak jak MS napisał nie da się. Jak potrzebujesz licznik w liczniku to albo kaskadujesz timery albo robisz to programowo.
Witam. Potrzebuję materiały szkoleniowe do programowania sterowników mitsubishi. Mam do innych sterowników na ewentualną wymianę. Szkoleniowe materiały zwykle kończą się na timerach i licznikach. Polecam manuale producenta: [url=https://www.mitsubishielectric.com/... Controllers MELSEC Z mojego...
https://obrazki.elektroda.pl/7913784400_... Siła wielu współczesnych urządzeń tkwi w ich oprogramowaniu. Dotyczy to zwłaszcza sterowników przemysłowych, przekaźników programowalnych i komputerów jednopłytkowych. Korzystając z dostępnych na rynku komponentów elektronicznych nie jest trudno zbudować jakiś sterownik programowalny lub przekaźnik....
Czy może jest jakieś oczywiste rozwiązanie, które zrobi to czego oczekuję na atmedze328, tylko go nie dostrzegam? Tak, zwiekszyc długość timera software'owym licznikiem, przy takich częstotliwościach możesz zmieniać stany na portach programowo, w przerwaniu timera, jeśli nie przeszkadza ci związany z tym jitter. Prawdopodobnie że dało by się użyć hardware'owego...
Generalnie w takich przypadkach nota układu twoim przyjacielem. Poczytaj to co napisałem w komentarzach. [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> int main(void) { uint8_t i = 0; DDRD = 0xff; //TCCR2A |= (1<<WGM21)|(1<<WGM22); // źle ten tryb jest zarezerwowany TCCR2A |= (1<<WGM21) // CTC //TCCR2A |= (1<<CS20)|(1<<CS21)|(1<&l...
..... wymagane jest precyzyjne odmierzanie czasu (transmisja, inicjalizacja, itd.) Jak precyzyjne to odmierzanie czasu ma być i jaka jego wielkość? Liczniki programowe z wykorzystaniem sprzętowego timera są bardzo dobrym rozwiązaniem i do obsługi 1WIRE w zupełności wystarczy. Jeżeli zależy Ci na bardzo dużej precyzji uwzględnij w obliczeniach czas...
Myślę, że nie jest to niemożliwe, ale trudne. Bez specjalnych trików się nie obędzie. Preskaler timera na 64 i porównywanie wartości dodatkowego licznika programowego z tabelą wartości. Najoptymalniejsze tu będą wstawki w asemblerze.
Pięćdziesiąt lat temu powstał pierwszy programowalny układ logiczny do zastosowań komercyjnych, a dostępne dziś części pozwalają inżynierom przekraczać nowe granice technologiczne w wielu branżach. Mark Patrick, Mouser Electronics https://obrazki.elektroda.pl/4592035100_... FPGA ( field-programmable gate array – bezpośrednio...
Przymierzam się do zrobienia komputerka do samochodu. Jego głównym celem ma być obliczanie chwilowego i średniego zużycia paliwa. Nie wiem czy mi się to uda ale chcę wykorzystać kontroler ATTiny2313 i tu mam problem - potrzebuję zliczać czas wtrysku i ilość impulsów z czujnika ABS lub impulsatora na skrzyni, potrzebuję też odmierzać czas... i tu mam...
PLC po obliczeniu wszystkich linijek wyświetla wynik. Większość PLC przepisuje stan pamięci wyjść (tutaj %Q) na fizyczne wyjścia na koniec cyklu, po wykonaniu całego programu użytkownika. Ale są wyjątki. Komórki pamięci reprezentujące stan wyjść mogą być wielokrotnie zapisywane i czytane w jednym cyklu. Ale jest to niezalecane, bo bardzo pogarsza czytelność...
Rzeczywiście na oscyloskopie z przeliczenia częstotliwość wynosi około 100Hz... Dodano po 41 Posiadam dwa silniki, także wykorzystuje licznik T0 i T1 ...
No to wg. mnie wywazasz otwarte drzwi. Skoro w wiatraku masz enkoder to wystarczy dowiedziec sie co to za rodzaj enkodera i napisac aplikacje. Jezeli zwykly impulsowy enkoder 2-fazowy to musisz znac ilosc impulsow na obrot. Szybkim licznikiem liczysz z niego imulsy a timerem liczysz czas i ustawiasz przerwanie na wartosc zadana timera. W tym przerwaniu...
Jak byś podał więcej szczegółów to może byłoby łatwiej. Zainteresuj się produktami ARRAY CO. W Polsce jest sklep Telmatik, kupowałem kilka razy i do prostych zastosować są jak najbardziej ok. Soft jest darmowy, trzeba tylko kabelek nabyć. Na serii SR robiłem kiedyś maszynę pseudo CNC do cięcia kamienia w plastry. Mnóstwo wejść, wyjść, wewnątrz liczniki,...
Od strony 156 na początek o Timerach wykuć na blachę i przeanalizować w praktyce liczniki programowe i badanie klawiatury z mojego programu (tych jest wiele różnych rozwiązań ale moje jest specyficzne i bardzo antydrganiowe), którego linka podawałem wcześniej - to na początek.
Zadanie wyraźnie dla mikrokontrolera. Wystarczy program i sterowniki segmentów. Dłubanie tego licznikami CMOS możliwe, ale nie miniaturowe. Dla początkującego może trochę prostsze niż mikrokontroler. Dla liczników CMOS musiałby być generator sygnału 1 Hz. Do tego licznik sekund 0-59, dalej licznik minut 0-59, licznik godzin. Licznikom skraca się cykl...
http://obrazki.elektroda.pl/3784732200_1... Witam, chciałbym przedstawić projekt jaki miałem jakiś czas temu okazję wykonywać a mianowicie uniwersalny programowalny sterownik logiczny. Projekt składa się z trzech części - sterownika, układu odpowiedzialnego za programowanie sterownika/komunikację układu z komputerem. Ostatnim elementem...
Widzisz ja zajmuje sie programowaniem w Assamblerze nie w c(BASCOM), moje pytanie bardziej brzmialo jak ustawic rejestry od licznika(np T0) zeby pracowal on jako generator, reszta ukladu(tj ladowanie itp, to juz wiem jak wykonac), otoz generator ten ma miec T=0.02s(czyli 50Hz), ma to byc przebieg prostokatny o wypelnieniu 50%, negacje tegozsygnalu bede...
jak ustawisz na counter to liczy z wejscia p3.4. a teraz gate=internal/external to jest tylko ustawienie czy timer bedzie wlaczeny programowo czy sprzetowo. jak dasz external to timer liczy gdy na p3.2 jest stan 0
Software PWM możesz zrobić na dowolnym pinie wyjściowym cyfrowym. Użyłbym timera 8-bitowego. Należy wtedy włączyć i obsłużyć dwa przerwania: 1. przepełnienie (przy przejściu licznika z wartości 255 na 0) - ustaw wtedy stan wysoki na wymarzonym pinie 2. przekroczenie wartości - ustaw wtedy stan niski na wymarzonym pinie Przykładowy kod: https://www.elektroda.pl/rtvforum/viewto...
8MHz / 1024 (preskaler) / 256 (timer zlicza od 0 do 255 i dopiero się przepełnia) / 100 (ilość przepełnień odliczana programowo (2*50)) = 0.3Hz z kawałkiem. Zmień preskaler timera na 4, o ile taki jest dostępny, nie sprawdzałem, a jak nie jest, to programowy licznik zmodyfikuj.
Czy ten pomiar danych z kilku źródeł jest jednocześnie wysyłany do LCD, czy też dane z tych źródeł są w jakiś sposób kolejkowane w celu ewentualnego przetworzenia, a później wyświetlenia? Funkcja wyświetlania wywoływana jest asynchronicznie co 200ms. Pobiera dane z rejestrów w RAM aktualizowanych na przerwaniach timerów, w których to 16 bit timer +...
I tu jest moje pytanie, gdzie jest błąd w moim myśleniu? Nie masz żadnej zmiennej, która by stanowiła część niezbędnego w tym przypadku "programowego przerzutnika RS". Obecnie opierasz się tylko na stanie pinów wejściowych. Każdy przycisk powinien mieć swój licznik, pomniejszany w przerwaniu; oraz zmienną pamiętającą ostatni stan wejścia i wyjścia....
Traktuj cyknięcie Timer'a jako kwant czasu. Potem licz oddzielnymi licznikami (programowymi) te kwanty jako czas trwania i czas przerwy. Możesz w ten sposób zrobić, co dusza zapragnie. Przykładowo - gdy timer "cyka" co 1 sek. Możesz ustawić sobie, że masz 20 sekund (kwantów timera) czas trwania - potem (drugi licznik) 30 sekund (kwantów timera) czas...
https://obrazki.elektroda.pl/8368409700_... Celem projektu było stworzenie amatorskiego programowalnego sterownika logicznego. Motywacją do stworzenia tego sterownika była potrzeba posiadania uniwersalnego urządzenia pozwalającego w warunkach laboratoryjnych na szybkie przetestowanie różnych algorytmów sterowania przy przebiegach szybkozmiennych....
Witam serdecznie. Próbuję rozwiązać taki problem: Wybrałem sobie Timer0 jako TickTimer na którym realizuje liczniki programowe. Rdzeń działa na 60MHz, a peryferia na 30MHz. Ustawiłem sobie tak ten timer, że generuje mi przerwanie co 10ms (100Hz) i zrealizowałem to na przerwaniu od porównania dla kanału Match0. Przy porównaniu następuje przerwanie w...
No niby tak ale nie do końca. Bo uczysz się interfejsu programu np. Festo uczysz się jak podpiąć kabel do Festo itd. itp. Ale najważniejsze jest to że wykonasz całą serię prostych zadań które wprowadzą cię w język programowania, który jest standardem, i naprawdę jedynie niektóre bloczki typu liczniki, timery troszeczkę się różnią od siebie, czy to w...
Snowbiz wytłumacz mi jak to jest że timer ma 2 wejścia , to w jaki sposób to liczy ?, czy ma osobne jakieś liczniki czy jak ?? czy trzeba liczyć programowo w zależności na którym wejściu pojawi sie impuls ?
Jak mogę wykorzystać rezonator kwarcowy 32768Hz do wytworzenia przebiegu prostokątnego o częstotliwości 50Hz lub 60Hz do taktowania układu zegara LED TMS3450NL? Wprowadzenie Dziękuję za pytanie dotyczące wykorzystania rezonatora kwarcowego 32,768 kHz do wygenerowania przebiegu prostokątnego o częstotliwości 50 Hz lub 60 Hz dla taktowania układu zegara...
Przetrzyj oczy, wypij kawę Komentarza nie zauważyłem. To w pętli głównej timerem programowym określasz kiedy chcesz odczytać temperatury, a nie w przerwaniu... To już lepiej licznik dodać do timera. Będą przynajmniej równe odcinki czasu. Z resztą sposobów jest wiele. Grunt to nie używać wait i nic się nie będzie zacinać, a po odczycie danych z czujników...
(at)ElektrodaBot przygotuj przykład kodu sterującego dla PLC, który będzie realizował włącznik bezpieczeństwa czyli załączenie działania maszyny poprzez naciśnięcie dwóch przycisków, zatrzymanie pracy będzie możliwe poprzez puszczenie jednego z nich lub dwóch lub naciśnięcie trzeciego przycisku awaryjnego zatrzymania. Przygotuj kod do porównania w...
Zwiększenie częstotliwości w Atmedze można zrobić programowo, zmieniając jakieś timery, ale pewnie wiąże się to z jakimiś skutkami negatywnymi. Co o tym myślisz? Skutki są, ale czy one są negatywne? 1. musisz zastosować układ który szybko przełącza tranzystory. 2. zaprojektować układ i płytkę porządnie, tak aby nie promieniować za dużo zakłóceń. 3....
Zdaje się, że PWM-y generują przerwania a te pochodzą jak stwierdziłeś od zegarów. To w czym problem? Wyzwalaj pomiary A/D od przerwań PWM. Jak będzie za gęsto to dodaj prosty licznik w zmiennej z porównaniem i uruchamiaj przetwornik co n-te przerwanie od TOVn. Biorąc sygnał z wyjścia PWM i dzieląc go przez 2 uzyskasz przebieg o stałym współczynniku...
Ok, czyli programowo muszę zrobić to tak: Odpalam timer na 1min i liczę impulsy. Ilość tych impulsów to aktualna prędkość po przekroczeniu minuty kasuje licznik i od nowa zliczam ?
Chciałbym zaimplementować tryb CTC w liczniku T0, który nie ma takiego trybu domyślnie. Brakuje mu rejestru OCR0 itp. W przykładzie zmieniam wartość OCR2. Zmiana tej wartości powoduje, że podłączona dioda miga ze zmienną częstotliwością. Timer T1 i T2 działa dobrze. Pozostaje mi przekopiować funkcjonalność timera 2 do timera 0. Teraz chyba dobrze przedstawiłem...
3. Co masz na myśli funkcje czujników niedostosowane do przerwań ? Bo są w nich delaye ? Jeśli tak to jak inaczej miałbym poczekać na zakończenie jakiejś konwersji ? Poczytaj o maszynie stanów. Np tak: zmienna licznik odlicza za pomocą np. timera programowego odcinki czasu przykładowo 50ms poniżej pseudokod procedura_nieblokujaca() // wywołanie jeżeli...
Witam wszystkich Czy może mi ktoś takie dziwne zachowanie timera. konfiguracja config timer0=timer ,gate=internal , mode=0 czyli licznik 16bitowy z programowym ładowaniem początkowej wartości wpisuje wartość 10000 bo chce mieć przerwanie około 10ms przy Xtal 12Mhz czyli robie tak Load timer0 , 10000 po czym wrzucam go do avsima i co widze TL0=F0 i TH0=F0...
Const odlicz=65436 rem dla zegara 12MHz odliczy tylko 100 impulsow (100us) dim licznik as word dim koniec as bit Config Timer1 = Timer , Mode = 1 , Gate = Internal On Timer1 etykieta Counter1 = odlicz do start timer1 bitwait koniec,set reset koniec rem petla powtarza sie co 100 us loop etykieta: licznik = counter1 rem To ma eliminowac czas od momentu...
kolego, powyzsze watki mowia zeby wykorzystac czestotliwice procesora + licznik cykli, wszystko jest w winapi, wiec kontrolowane systemem win a jaki jezyk do tego uzyjesz jest bez znaczenia. jezeli upierasz sie na dos, to wiem ze kiedys mozna bylo wykorzystac timer 8253/8254 piszac procedure w asm, np: procedure Wait; assembler; {----------------------------------...
Witam, .......... Czy arduino uno posiada może wbudowany licznik który działa niezależnie od programu? Tak aby przerwaniem co sekunde mógłbym sprawdzać jaka jest wartość w liczniku który liczyłby impulsy? TAK! Arduino posiada ich trzy, funkcjonujące totalnie niezalenie od wykonywanego programu, z pewnymi jednak warunkami lub ograniczeniami. Są to :...
Można zrobić to też na układzie timera CD4541 jest w nim odrazu oscylator. http://pdf.alldatasheet.com/datasheet-pd... W 4060 jest też wbudowany układ wzmacniaczy do oscylatora tylko nie wiem, czy się wyrobi dla tak niskich częstotliwości. Możesz spróbować wg noty aplikacyjnej. Wtedy nie musiałbyś stosować dodatkowego scalaczka....
emarcus:: Czy Ciebie całkiem pogieło? Jak chcesz pomnożyć częstotliwość rozkazem MUL? Ewentualnie jak chcesz tym pomnożyć impulsy? Bez obrazy ale to zupełnie co innego. Dodano po 19 Na mój gust cos takiego: $regfile = "M8def.dat" $crystal = 8000000 $hwstack = 64 '---------------------------------------...
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....
Potraktuj to, co napisałem poniżej z rezerwą, bo mnie już pamięć zawodzi, ale może jednak na coś naprowadzi W komputerze typu PC są dwa podstawowe systemy odmierzania czasu: tzw. timer na najwyższym przerwaniu sprzętowym, czyli 0 i zegar czasu rzeczywistego, tzw. RTC, na przerwaniu 8 Ten pierwszy możesz programować, tego drugiego właściwie nie (i nie...
no dobra tmod skałda się z dwóch czwórek następujących bitów: GATE,C/T,M1,M0 m1 i mo ustalają tryb które znasz. C/T określa funcję c/t=1 Counter czyli zlicza impulsy doprowadzone do wejścia T(0lub1 w zalezności który licznik) c/t=0 timer zlicza cykle maszynowe (właściwie to powinno być C/ (negacja) T, tylko nie wiem jak to napisać) :) :( Gate - bramkowanie...
Nie robić programowo - do odmierzania czasu służy timer. Możesz zaprogramować timer na stałą częstotliwość i zliczać czas w przerwaniu timera. Co określony czas przeliczasz impulsy na prędkość i zerujesz licznik impulsów.
Dlatego, że podczas symulacji Atmel Studio symuluje procesor, w efekcie wie ile wykonał instrukcji i jakich - program jest wykonywany instrukcja po instrukcji, nawet jeśli dajesz mu run. W trybie debugowania sprzętowego pomiędzy pułapkami sprzętowymi może minąć dowolna liczba, dowolnych instrukcji. W efekcie nie ma jak ich policzyć i cycle counter nie...
Bo to jest w sumie logiczne. Działanie urządzenia. Jego logiczna funkcjonalność jest zamknięta w ramach tej klasy. Obiekt tej klasy jest głównym obiektem i to jasne że jego konfiguracja i działanie musi się odbywać właśnie w main() A jak taka "giga klasa" ma się do przerwań, które jakby na to nie patrzeć jest nieodzowną częścią świata niskopoziomowego...
Jeśli coś mniejszego od Raspberry/Orange Pi, to proponuję zacząć od poszukania oprogramowania niezbędnego do działania z Arduino i z modułem STM32, oraz sprawdzenia, jakie możliwości daje który moduł. Z tego, co pamiętam, STM32 jest dużo szybszy, najtańsze moduły do obu są w cenie kilkunastu zł - moduł STM32C8T6 od około 14zł, Arduino Pro Mini od 12.60zł...
Mniej więcej dobrze rozumujesz ale Logo z tego co wiem jest taktowane częstotliwoscią 96MHz , tak że sam Timer jest o wiele niedokładniejszy niż ten czas kiedy na bramce nor mamy stan wysoki , Praktycznie w żaden sposób nie wpłynie to na jakąś niedokładność w twoim układzie. A napewno tego nie zobaczysz. Powiedzmy że cała ta instrukcja z zerowaniem...
No z delay na pewno nie :). Ustaw sobie w przerwaniach timer programowy co 1s, a w pętli głównej możesz zrobić "liczydełko" reagujące na zbocza. W każdym tyknięciu timera w przerwaniach zapisz ile impulsów zliczyło i wyzeruj licznik. To co zapiszesz to w zasadzie gotowy wynik, który co 1s będzie aktualizowany. To chyba najprostsze rozwiązanie. Można...
Witam! Metod jest wiele. Możesz stworzyć kaskadę timerów, możesz sprzęgnąć timrem z licznikiem i zliczać interwały odmierzone timerem. Ja jednak najczęściej przy długich czasach stosuję metodę oparta na zliczaniu czasu wykonania ostatniej pętli programowej (SMB22) i sumowaniu tych czasów.
Wartość początkową ustalam odejmując 256 i 125, stąd TCNT0 = 131. Dlaczego tak to liczysz? Używasz trybu normalnego Timera0. Timer 0 w trybie normalnym liczy od 0 lub wartości początkowej ustawionej w rejestrze TCNT0 do wartości 0xFF. Przy 8 MHz i podziale przez 256 obliczenia wyglądają następująco: 8Mhz/256 = 31 250 31 250/256 (od 0 do 0xFF) = 122...
1)Okej, czyli procedura przerwanie_od_T0 trwa 1 s ? 2)Gdzie tutaj miejsce dla właściwej treści programu, pomiędzy TR0=1 ,a while(1) w programie głównym? 3) Chciałbym uzyskać procedure która trwa równo jedną sekundę używając timerów, bo ponoć tak jest najdokładniej. Chciałbym później ta procedurę, SEKUNDA wykorzystać w dalszej części programu. 4) pojecia...
Hehe... no to następny pomysł - a jak szybko obraca się pętla główna programu? Nie wiem jak masz skonstruowany program, czy w ogóle jest? Dużej precyzji czasów chyba nie potrzeba, nie ma różnicy, moim zdaniem, czy przytrzyma się przycisk 1s czy 1,1s, więc może ten pomysł wsadzić do pętli głównej i bez przerwań. Wtedy w zależności od szybkości pętli...
No cóż ... Ja za Ciebie tego nie zrobię, zwłaszcza że w dziedzinie programowania mikrokontrolerów sam jestem początkujący. Ale jeśli Ty masz to zrobić, to rozumiem, że masz jakieś choćby podstawowe wyobrażenie o budowie mikrokontrolera. Na przykład w takim AT90S2313 są dwa timery/liczniki, jeden 8 bitowy, a drugi 16 bitowy. Można je wykorzystać - uruchamiać...
Szczerze powiem elektronik ze mnie żaden, jak mam schemat to umiem to poskładać do kupy. t Tak jak już wyżej sugerował kolega jarek_lnx, praktycznie lepiej już użyć, nie samego 555 a jakiegoś licznika przy czasach rzędu godziny. Na przykład: https://obrazki.elektroda.pl/5854452900_... tutaj jest użyty licznik programowalny 40103 ustawiony...
https://obrazki.elektroda.pl/1533250900_... BK7231T/BK7231N to popularny SoC WiFi i Bluetooth, szeroko stosowany w produktach Tuya Smart. BK7231 można znaleźć w inteligentnych gniazdach, inteligentnych żarówkach LED, inteligentnych przełącznikach itp. BK7231 zwykle występuje w postaci modułów, które są pin-to-pin kompatybilne z modułami...
Dziękuję, działa :) Jak użyć timera (tzn. jak wyciągnąć z niego np zmienną dodawaną, lub resetowaną co określony czas?) Boję się jeszcze TIMERów :) , ale chodzi mi po głowie ten licznik programowy, jeśli już pracuje z rozdzielczością 1/1000s, to można go wykorzystać do generowania zmiennych trwających określone czasy zamiast wstrzymywać program tymi...
czego można się nauczyć przez półtorej godziny w tygodniu Mozna się dowiedzieć, że takie coś jest - nic więcej - całkowicie Ciebie rozumiem, studia zaczynają się w domowym zaciszu wśród kabelków. dlatego oczekuję od was abyście mi doradzili co zrobić w moim przypadku Ja ze swojego podwórka mogę Tobie zaproponować pobranie programu Logo! Soft Comfort...
Witam, z powodzeniem wiele razy wykorzystywałem kwarc 12MHz do odmierzania czasu w '51. Używałem wtedy trybu '0' timera, w którym cykl zliczania młodszej połówki TL licznika jest skrócony do modulo 32, natomiast TH przeładowywany był stałą 256-50=206. W ten sposób przerwanie od timera nadchodziło z częstotliwością: 12000000Hz ÷12 ÷32 ÷50 = 625Hz Dalsze...
1. Właśnie o PINy najbardziej mi chodzi... z tego powodu muszę użyć jakiś dodatkowy moduł. 2. Wysyłam sprzętowym SPI, ładuję 1 bajt, wysyłam, potem kolejny itd. (zależnie od ilości rejestrów) a na samym końcu zatrzaskuję. 3. PWM realizuję programowo poprzez timer, używam mojego licznika który w kolejnych przerwaniach się zwiększa. A następnie przyrównuję...
Ludziska. Skoro dodatkowy licznik programowy Wam się nie podoba, to trzeba kopiować wartość licznika sprzętowego do zmiennej i porównywać (mniejsze, większe) z tablicą wypełnień. Cały "PWM" wtedy należy przenieść do pętli głównej. Oczywiście Prescaler = 1 nie jest najlepszym rozwiązaniem w takim wypadku. Jeśli nie jest potrzebna dokładna synchronizacja...
ESP8266 jest ze dwa rzędy wielkości mocniejszy od AVR'ów I tu muszę niestety bardzo surowo odpowiedzieć. Po pierwsze nie rozumie kolega wyrażeń, którymi się posługuje. Po drugie nie zna kolega rzeczywistej wydajności rdzenia Xtensa (są porównania do AVR i STM), po trzecie nie rozumie kolega ograniczeń tego SoC/MCU. A w porównaniu do tych "słabych"...
Pętla odpada - będzie jeszcze dodatkowo przekłamana przez przerwania - np. RS-a. Czemu nie chcesz skorzystać z drugiego timera? Chyba właśnie tak to zrobię. Dzięki za oświecenie :) Co prawda timer policzy tylko młodsze 16 bitów a starsze 16 bitów będę obsługiwał programowo w przerwaniu timera. Ale nie widzę tutaj problemu, zdążę policzyć przed następnym...
Fajnym i szybkim sposobem jest podpięcie czujnika do przerwania zewnętrznego. no właśnie o tym pisałem... Wykryte w ten sposób zbocza opadające i odpowiedni licznik programowy (to są wolne przebiegi) pozwala jednoznacznie odczytać kod. mierząc tylko i wyłącznie zbocza opadające będzie trzeba domniemac że jezeli w czasie trwania bitu nie zostanie wywołane...
Przeanlizowałem na szybkiego tą notę aplikacyjną i z tego co widzę każdy z bloków jest tak jakby osobnym układem, czyli zegar chodzi sobie autonomicznie sam, dokładnie tak samo jako w procesorach gdzie jest sprzętowy TIMER, oczywiście taktowany też zegarem systemowym. Czyli mam rozumieć, że mogę stworzyć osobne 32 bloki w każdym będzie jedna zmienna...
Ten program co Ci go podałem w linku zajmuje 1538 bajtów ( z obsługą LCD- tak naprawdę niepotrzebne). Dla sześciu synałów z programowym PWM.. W Bascomie Ci nie pomogę bo zanim się go nauczyłem to przesiadłem się na C. Ale zasada jest taka sama. Sprawdzamy co 20us sygnał na PINX- albo na kilku PINX. Sprawdzenie jest wykonywane w przerwaniu od jakiegoś...
dzięki Panowie za pomoc - trochę mi rozjaśniło drgania styków są mi znane - można załatwić sprawę programowo lub sprzętowo jak zrobię to wyjdzie w praniu reasumując: - ustawiam pin timera jako wejście i podciągam go do plusa wewnętrznym rezystorem - konfiguruję timer jako licznik - ustawiam zmienną ( nazwa ) do przechowywania sumy impulsów i ..... powinno...
wpadłem na ten post bo kiedyś też myślałem o takim projekcie. Chciałbym dorzucić pewną swoja idee która wtedy mi wpadła do głowy jeśli chodzi o pomiar paliwa, nie wiem czy to zadziała, ale gdy wytłumaczyłem ją znajomemu mechanikowi to stwierdził że wątpi :-) mnie jednak wydaje się że powinna działać i to dokładnie. Założenia: Mamy silnik z wtryskiem....
Czyli zliczać impulsy i jak będzie jakaś ich ilośc to zatrzymywać licznik? Ale potem bym musiał czas czekania robić na innym timerze bo też chciałbym żeby to się działo sprzętowo a nie programowo na waitms(). Generalnie to ja chce zrobić sonar i najlepiej jakby przebieg na wyjsciu portu wygladał tak: http://www.snow.republika.pl/timery.jpg
Nie do końca wiadomo co chcesz zrobić? Korzystając ze sprzętowych zasobów tego problemu nie przeskoczysz. Pozostaje oczywiście jak najbardziej słuszne działanie programowe. Tworzysz zmienną w programie która będzie inkrementowana co 20ms w przerwaniu od tego licznika. Najlepiej do tego typu celu nadaje się tryb CTC.
(at)jta można wzbogacić o kondka, jak najbardziej. Można prościej, bez oporników Jak zwykle proszę o schemacik. zastąp sobie oporniki kreską... i sam narysuj schemacik oczywiście trzeba obrobić programowo impulsy co 20ms. Możesz to opisać bardziej szczegółowo jak byś to zrobił. Ja do takich rzeczy odpalam sobie licznik (timer) który robi mi przerwanie...
Zumek zaproponował nam prace timera w trybie CTC (Clear Timer on Compare match) - zerowanie licznika (i wywołanie przerwania OC1A) po wykryciu zgodności rejestru TCNTn z OCRn. Można w ten sposób "skrócić" timer do potrzebnej wielkości. Odpowiada to mniej więcej "skracaniu" zakresu liczenia timera przez wprowadzenie wartości początkowej tyle, że licznik...
hmmm zrobienie timera na procku to w zasadzie bardzo prosta sprawa bo nie trzeba go nawet programowo robić wystarczy skorzystać z timera sprzętowego. Trzeba go tylko poustawiać, dobrać częstotliwość kwarac, preskaler, wygenerować przerwania i ew zliczać jeszcze jakimś licznikiem jeśli będą potrzebne dłuższe czasy. Ale praktycznie używając 16bitowy timer...
Chyba wszystko się zgadza. Co 32us licznik się przepełnia i zwiększana jest zmienna licznik o 1. Po 256 takich zwiększeniach zmienna licznik sie przekręca. Teoretycznie powinno być 122Hz. Dokładnie, przecież częstotliwość takiego programowego PWM'a oblicza się w ten sposób: F_CPU / pojemność timera sprzętowego (tutaj 256) / rozdzielczość PWM'a (tutaj...
http://obrazki.elektroda.pl/9576945700_1... Witam. Chciałbym się pochwalić swoim projektem serca, wykonanego na LED oraz mikrokontrolerze AtMega8A. Schemat: http://obrazki.elektroda.pl/8036237000_1... Jak widać schemat jest bardzo prosty, zasilanie całego układu jest z gniazda mikro USB typu B, każda dioda ma rezystor...
programowa timer programowa licznik licznik timer
katalizator wydech prądu gniazdku zapalniczki router uderzenie piorun
Brak kontrolek półbiegów w John Deere 6330 Tylne drzwi Skoda Fabia I nie otwierają się - przyczyny i rozwiązania