Jeśli wyeliminujesz drgania przycisku, to najprościej to zrealizować podając wyjście przycisku na wejście zegarowe jednego timera (bedzie on zliczał ilość wciśnięć), a drugi timer wykorzystać do odmierzania czasów 1s - dokładnie co 1 s należy kasować licznik pierwszego timera. Ot i wszystko.
Ale interesujące cię dane znajdziesz w dokumentacji do tego kodera. A tak w skrócie to sygnał ppm do RC wygląda tak: krótka "szpilka" o czasie poniżej 0,5 ms (tak konkretnie poniżej, np 0,1 ms) oznaczająca początek kodu, przerwa 0,5 ms, impuls od 0,5 do 1,5 ms dla kanału nr 1, długość impulsu oznacza połozenie serwa, znowu przerwa 0,5 ms, impuls o zmiennej...
Co zrealizować? Programowe zliczanie impulsów? Ustawiasz timer tak, żeby generował przerwanie co 100 us, sprawdzasz stan portu, robisz xor z poprzednim stanem i testujesz, które bity są ustawione - ustawiony, znaczy zaszła zmiana stanu, czyli inkrementujesz odpowiednią zmienną.
to ja też coś od siebie dołożę spróbuj wszystko zapisać w postaci liczbowe tj nie baw się w przesunięcia bitów i takie tam tylko na sztywno w pisz co masz wpisać do rejestrów, wnioskuje ze używasz darmowego kompilatora spróbuj wyłączyć optymalizacje kodu, ewentualnie spróbuj dopisać w obsłudze przerwania czy to wejście faktycznie ma stan niski. Swego...
chciałbym zliczać impulsy generowane przez transoptor szczelinowy mam taki kod $regfile = "m8def.dat" $crystal = 1000000 Dim Wynik As Long Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , E = Portd.3 , Rs = Portd.2 Config Timer1 = Counter , Edge = Rising Do Timer1 = 0 Start Timer1 Wait...
Witam, Chciałem zrobić licznik obrotów na AVR, wydaje mi się, że najlepszym sposobem jest zliczanie impulsów z kabla WN cewki, i tu mam pytanie, czy ktoś ma schemat aby móc ładnie je zliczać za pomocą Timera i nie rozwalić mC? Pozdrawiam Tomasz.
Po długim analizowaniu problemu narodziło mi się coś takiego: 'pętla główna Dim I As Integer Dim Impulsy As Long Dim Sek As Integer Tccr1a = &H00 'ustawianie trybu pracy timera1 Tccr1b = &H0C Ocr1ah = &H7A 'załadowanie liczby 31250 do licznika Ocr1al = &H12 'przykładowa liczba do odmierzania (1s) Tcnt1h = &H00 ' zerowania rejestrów do zliczania...
Witam, chciałbym przedstawić prosty miernik odległości. Jest to projekt odtwórczy z serii "Elektronika dla wszystkich" Jest to mój pierwszy post na elektrodzie wiec proszę być wyrozumiałym jeśli coś źle zrobiłem Do czego to służy? Układ ten jest bardzo uniwersalnym urządzeniem, które możemy wykorzystać wszędzie tam, gdzie potrzebujemy prostego licznika,...
Witam serdecznie! W jaki sposób optymalnie zrealizować zliczanie impulsów (częstotliwość do ok 10kHz) na co najmniej 12 pinach atmega8? Procesor zdecydowanie nie ma tylu wejść licznikowych... Czy jest to wykonalne? Pozdrawiam, Patryk
M8 ma trzy liczniki sprzętowe. W tym przypadku dwa z nich mogłyby służyć do twojego celu. Jeden jest 8 a drugi 16 bitowy. Mają wejścia odpowiednio na nodze 6 i 11. Można je różnie konfigurować, odczytywać zawartość, wprowadzać zawartość, resetować, włączać i wyłączać. Potrafią też zgłaszać przerwania. Zobacz Config Timer x.
Proponuje skorzystac z licznika, ustawisz odpowiednio rejestry i sam bedzie zliczac wszystko. Czestotliowsc 460Hz dla niego to bedzie tylko rozgrzewka ;)
Witam, Napisalem program na atmega8 do regulatora dwukierunkowego, którego schemat można znaleść tutaj. [url=http://www.modelhobby.republika.pl/... Licznik pracuje z zegarem 8Mhz i prescalerem 64. Czyli licznik powinien zapelnić sie minimalnie po 2ms. Sygnał z odbiornika trwa od 1ms do 2ms. Najpierw zliczam czas impuslu. W zależności...
Zobacz oscyloskopem co wchodzi na uP, bo obawiam się, że procek zlicza oscylacje własne układu LC (cewka zapłonowa, kondensator). Sygnały z układu zapłonowego są trudne do obróbki i wymagają dobrego odkłócania i kształtowania by śmieci nie zliczać (przepięcia, oscylacje). Do tego powinien być przed wejściem uP jakiś układ monostabilny dający impuls...
uczę się programowania AVR w c i na ATMEGA16 napisałem prosty programik mający zliczać impulsy w czasie 1 sekundy timer 1 odmierza czas 1 sekundy timer 0 zlicza impulsy i przy przepełnieniu inkrementuje zmienną do wyświetlenia wyniku zmienna jest przemnażana przez 256 a do wyniku dodawana jest bieżąca wartość rejestru TCNT0 do celów ćwiczenia, jako...
Witam! Jak rozwiazac problem zliczania impulsow z 8 kanalow np. na ATmega8535? ATmega8535 ma 3 wejscia typu timer/counter (ATmega128 tylko 4) a ja potrzebuje zliczac impulsy z 8 zrodel (wentylatory)-w celu pomiaru ich predkosci. CZy jest jakas mozliwosc podlaczenia tego przez jakis multiplekser (jak tak to jaki i jak to podlaczyc )?? Poniewaz jestem...
Witam, chciałbym zbudować licznik impulsów na atmega 8 który by zliczał ile impulsów było w czasie 1 sekundy i wartość tych impulsów wysyłała w postaci binarnej na wyjścia procesora. Dodano po 1 Język w którym bym to chciał to C znalazłem identyczny projekt na forum ale w bascomie a w tym języku się wogóle nie orientuje
Witam Do atmegi 328p, do int0 mam podpięty jedną nogą pc814, drugą do masy, czyli ten pc814 zwiera do masy int0. LCD podłączony do portu D. Wejscie int0 podciagnięte wewnętrznym pullupem. W przewaniu próbuję zliczać te impulsy, ale otrzymuję dziwne rzeczy. [syntax=c]#include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h>...
Witam. Napisałem programik na licznik do 14-stu. Korzystając z WinAVR i USBasp program działa. Jednak ponieważ licznik jest sterowany przez łącze radiowe i ma zliczać za każdym razem od początku paczki impulsów przesyłane np. co 10 sekund, to pomyślałem, że pierwszy impuls mógłby być zerującym. Jeśli to niekonieczne wolałbym, aby nie wykorzystywać Timerów....
-jak można za pomocą takiego licznika wyliczyć :) sobie 1 sekundę. np jeśli użyłbyś sobie kwarcu zegatkowego 32,768kHz to jeśli chciałbyś za pomocą Timera0 uzyskać przerwanie (czyli przepełnienie licznika) co 1 sekundę to obliczasz to tak: 32768(częstotliwość twojego rezonatora) podzielić przez 1024 (to wartość preskalera jaką możesz ustawić dla tego...
Witam! Próbuję zrobić prosty programik w BASCOMIE AVR na ATmega8, który będzie mi zliczał stan wysoki na porcie b.1 i prezentował na wyświetlaczu LCD.Udało mi się już napisać taki kod: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.0 , Rs = Portd.1...
Mam silnik z przekładnią który daje 5 impulsów na jeden obrót przekładni, obrotów jest 139 to liczyłem na piechotę ale chcę wykorzystać Atmege 8 do sterowania tym silnikiem i nie mogę dojść do ładu z liczeniem tych impulsów. Próbowałem liczyć impulsy funkcja DEBOUNCE i szło dobrze dopóki nie zwiększyłem prędkości obrotowej, zaczęło gubić impulsy Następnie...
Witam mam taki problem z przerwaniami int0 chciałem podłączyć transoptor szczelinowy pod wejście int0 atmegi16 i zliczać impulsy tylko jest taki problem ze jak zasłonię szczelinę transoptora to zamiast mi dodać 1 impuls to dodaje mi albo 2 albo 10 jak padnie w czym może być problem poniżej zamieszczam kod i schemat http://obrazki.elektroda.pl/3492000700_1...
Witam! Jestem początkującym w świecie mikrokontrolerów i w swoich działaniach natknąłem na taki oto problem: znalazłem w sieci program do obsługi timera0 w trybie licznika zliczającego impulsy z wejścia T0. Po wgraniu go do mojej ATmegi32L zero odzewu z jej strony. Klikam guziczkiem i diody na porcie A ciemne, myślałem, że to kwestia zbyt długiego stanu...
witam kolegów może ktoś z Was podpowie mi jak zliczyć ilość naciśnięć switcha za pomocą timera w procku ATMega? czytam i czytam i nie mogę załapać - dużo jest o przerwaniach i pomiarze czasu, ale mnie chodzi tylko o to żeby zliczyć pojedyńcze impulsy - naciskam pryszcza i do pamięci, za kilka sekund naciskam 5 razy - ma się dodać do tego co juz było...
Jeszcze zmodyfikowałem program: 1. Dodałem (nie wypełnioną jeszcze do końca wartościami ilości impulsów tabele) 2. Nowe obliczenia co do zmiennej uzależnionej od ADC i ładowanej do OCR2. Nie wiem czy dobrze przywołuję dane z tabeli ? Pozostałe sprawy bez zmian... Dodano po 13 Miałem taki przypadek, że Atmega8 była fabrycznie ustawiona na inne taktowanie...
No Dobra program juz prawie napisałem i głowiłem sie nad wersja ze zmiennym PWM+f... ale z tego co mi odpisałes to wnioskuję ze coś tu mi nie gra... A nie możnaby programowo realizować ten restart co 80ms? Moze napisz dokładniej co to ma być a coś doradzimy :) Pozdro No wlasnie o to chodziło by nie restartorwać tego zewnetrznie bo chyba prosciej zaimplementowac...
masz tu foto
Nie lepiej zerować przez RS'a zmienną która zlicza impulsy ?
Muszę użyć układ dwóch timerów ponieważ w docelowym układzie zakres czasowy Timera1 będzie za mały. Czy procesor zliczy na T1 impulsy generowane na OC2 ? Obawiam się sytuacji, że przy wspólnym CLK gdzieś mi się zbocza miną pomiędzy OC2 a T1 i układ nie zatrybi... Oczywiście że zbocza te mogą się minąć, ale to jest bez znaczenia. Podczas synchronizacji...
Ja zawsze wpisuję Timer1 = var i to jest wartość początkowa licznika , a wpisując instrukcję load , podajesz ilość impulsów do zliczenia , a nie wartość początkową timera, kompilator sam wylicza wartość początkową.( chyba ). Timery zliczają w górę.
Co do kolegi Andrzeja warunki z obługi przewania timera działają bo za zmienną obliczoną podstawia mi 1 W pliku "iom8.h" Warunek if (ICP==1) nie będzie spełniony nigdy . Może źle się wyraziłem w poprzednim poście. To nie jest "raczej" źle, to jest na pewno źle .
Czyli przez BD139 ma być przekazywana masa przekaźnika? Tak, zobacz: http://mikrokontrolery.blogspot.com/2011... Dondu, częstotliwość sygnałów podawanych do AVR będzie tak duża że muszę takim sposobem niwelować drgania Jak duża ta częstotliwość? Czy ty chcesz zliczać te impulsy, czy tylko stwierdzić brak impulsów?
Czyli przyjmujemy, że nie ma problemu z drganiami styków i innymi zakłóceniami. Jeżeli dobrze zrozumiałem zasadę działania czujników oraz Twój cel i chcesz wykorzystać obydwa INTx, to zrobiłbym tak: 1. pod INT0 podpinasz sygnał decydujący o starcie i końcu zliczania 2. pod INT1 podpinasz sygnał, który ma być zliczany Pseudo kod: 1. inicjacja: 1.1 INT0...
witam! mam taki problem: chcę zliczać zewnętrzne impulsy, timer mam skonfigurowany w taki sposób: config Timer0 = counter, edge = falling, noice cancel = 1, na portd.4 mam ustawiny wewnętrzny pull-up i dodatkowo zewnętrzny rezystor podciągający 4,7k.do masy kondensatorek 100 nF. Licznik oczywiście mi liczy ale zlicza też przypadkowe impulsy. widać to...
Witam, mam uszkodzony pin PD4(T0). Jak mogę inaczej niż przez T0 tym licznikiem zliczać impulsy?
Dołacz do wyjscia Timera rezystor 3k3 do masy, powinno pomóc,smieci zostaną "odfiltrowane" do masy. Zmniejsz tez napiecie z 5,6V do poziomy TTL, dając jakiś bufor przed. Napięcie wejśwciowe nei powinno przekraczać napiecia zasilania uC a pewnie z 5V jest zasilany. Pozdrawiam
Jeśli nie licznik użyłbym przerwań. Jednak licznik jest to tego najlepszy. Można nawet hardwarowy zliczać ilość impulsów w odpowiednim okresie. Albo n liczników które zatrzymasz w momencie przerwania. Zliczanie zwykłymi wejsciami może doprowadzić do utraty impulsów.
No, tak dobrze to nie jest. AVR-y (a w nich timery) nie mogą poprawnie zliczać impulsów o częstotliwości większej niż połowa częstotliwości zegara zakladając na wejsciu wypełnienie przebiegu 50%. Niezbędne będzie zatem zastosowanie preskalera. Proponowałbym ATMEGA8 z kwarcem 16MHz i z prescalerem /4 zbudowanym np z cyfrówki 74F74. Mamy zatem poniżej...
Kosmo Timer1=34285 wyszło z prostej kalkulacj. przy zegarze 8000000 i preskalerze 256, timer uP'a zliczy 8000000/256= 31250 "impulsów". Czyli aby licznik sie przepelnil nalezy zaczasc zliczanie od 65535-31250=34285.
Dziękuję Tak to tylko liczenie ilości impulsów, jeżeli w określonym czasie jest ich np. więcej niż 100 to wykonaj coś ... Jak kolego może coś napisać prostego to bardzo dziękuję. Pozdrawiam PS Mam już pomysł, tylko może jest zbyt złożony.
Licznik motogodzin ? czyli jak długo pracuje silnik bez zliczania obrotów (zwykłe mechaniczne tak mają). Biorąc pod uwagę twój wzór to silnik pracujący na wolnych obrotach będzie nabijał mniej motogodzin i odwrotnie jeśli będzie hulał na full to w tej samej jednostce czasu nabije więcej motogodzin . Jeśli wiesz jak zliczać impulsy z wału to dorób sobie...
Potrzebujesz 2 takie czujniki. Diodę czujnika zasilasz na stałe a wyjście podłączasz do pinu Atmegi, która jest wejściem (rejestr DDRx.y=0, x-port, y-pin, bez rezystora pull-up PORTx.y=0). Teraz musisz wybrać czy chcesz zliczać szybkie impulsy- wtedy Twój program musi w regularnych odstępach czasu sumować impulsy, a jeśli wolne to zliczasz czas jaki...
Możliwość jest :) Wystarczy zliczać impulsy z wejścia licznika i podać je na lcd :) Do tego żeby pomiar był z 3ch źródeł, jakiś prosty przełącznik wejścia. Tu jest podobny temat, ale na PICu. http://www.elektroda.pl/rtvforum/topic93... Jeśli nie wiesz jak zacząć, poszukaj programów do obrotomierzy w BASCOMie, i troche zmodyfikuj :)
Z tego co wiem to w ATmega-ch raczej trudno o możliwość zliczania impulsów z 3 niezależnych źródeł zewnętrznych i generowania dla każdego z osobna przerwania (chyba że powyżej ATmega32, ale w grę wchodzi wtedy wysoka cena). Pytanie czy konieczne jest takie rozwiązanie jak zaproponowałeś? Przy pracy uC z prędkością 8MHz (np. jak dla ATmega8, ATmega16...
Impulsy możesz zliczać np timerem, tak aby wiedzieć z jaką prędkością aktualnie się kręci wiatrak. Aby się dowiedzieć ile impulsów generuje na obrót możesz sprawdzić ile obrotów wykonuje wiatrak przy stałym napięciu(np w biosie) a później na oscyloskopie odczytujesz ile masz impulsów na minutę(na podstawie częstotliwości). Co do podłączenia jest bardzo...
chyba masz podpiąć impulsy do PD.4. Bo zliczający impulsy masz ustawiony Timer0. Ja to mówię dla ATmegi8 bo nie podałes jaki procek masz u siebie założony. Dodano po 55 tylko nie zapomnij dać w $regfile="m8def.dat" bo kompilator nie wie dla jakiego procka pisałeś.
Witam, Nie chciałem zaczynać nowego tematu o impulsatorze, więc się podpinam;) więc potrzebuję program do obsługi impulsatora, musi zliczać szybko impulsy, oraz działać poprawnie prawo(dodać impulsy)-lewo(odjąć impulsy). Po przeszukaniu wszystkiego co możliwe, po przestudiowaniu wszystkich programów dowiedziałem się że najszybciej działa na przerwaniach....
Chodzi o ten kod? To mój kod. JESZCZE RAZ NAPISZĘ - impulsy zlicza licznik0 więc musisz podać je na pin o alternatywnej funkcji "T0". Inaczej miernik nie będzie mierzył. Schemat i program to jedna całość. Nie można do danego programu dorabiać dowolnego schematu!
Potrzebny mi jest program pisany w asemblerze na atmega8 lub mniejszy pracujący na przerwaniu zliczający i przetwarzający impulsy o Fmax = 25.600Hz reszta na priva
ATmega8 posiada trzy liczniki/timery, z których dwa (T0 i T1) mają możliwość zliczania zewnętrznych impulsów, dołączanych do pinów 6 i 11. Wg atmelowskiego pdf'a częstotliwość zliczanych impulsów nie może być wyższa niż połowa częstotliwości zegara ATmegi. Dla bezpieczeństwa i zapewnienia prawidłowej synchronizacji podają wartość fclk/2.5 - co w Twoim...
Witam Mam taki mały problem zbudowałem uradzenie składające się z 2 mikroelektronik ale, mam problem i nie mam pojęcia co może być przyczyną. Atmega8 wysyła impulsy PWM do ATmegi32, Atmega32 ma za zadanie w ciągu 1 sekundy zliczać impulsy z 8, wartość PWM jest regulowana i gdy 8 jest zasilana z całkowicie innego źródła np programator, wszystko jest...
Witaj, No save spokojnie możesz użyć.... pod warunkiem, że nie korzystasz w obsłudze przerwania z instrukcji Bascoma bo jeśli tak to nie odkładając rejestrów na stos, zgubisz ich wartości i w najlepszym przypadku będą się działy różne rzeczy. Ja bym napisał wstawkę w asemblerze odkładając wcześniej na stos używane rejestry w tym SREG. Możesz też użyc...
Nie czytałem całości tematu, ale .... GDZIE PRZYCZYNA ZAWIESZANIA ? Szukasz rozwiązania problemu w niewłaściwy sposób. Najpierw znajdź przyczynę zawieszania. Co rozumiesz przez : Czasem podczas komunikacji dochodzi do zwieszenia - układ przestaje odpowiadać po TWI i pomaga jedynie manualny reset. Czy jesteś pewien, że procesor przestaje realizować program,...
Która atmega? W atmega8 możesz użyć: Timer0 - odmierzanie czasu Timer1 - zliczanie impulsów Timer2 - PWM
A może zrobić to z innej strony - wykorzystać Timer/Counter1 z odszumiaczem (Noise Canceler). Licznik może zliczać impulsy z kontaktronu, a przerwanie w stałych odstępach może sprawdzać stan licznika.
Jak nie zliczam?? Przecież w rejestrze TCNT0 zapisywane są zliczane impulsy na wejściu T0...czy nie?
Więc musisz zdecydować o czasie zliczania. najlepiej wykorzystać wejście licznika. Teraz pytanie czy konieczne w twoim przypadku jest zliczanie wszystkich enkoderów jednocześnie czy wystarczy je zliczać pojedynczo i poklei wystarczająco szybko o ile do możliwe. Innym licznikiem odmierzasz czas zliczania. Tu istotne jest aby po uruchomieniu licznika...
Witam, chciałbym zadać dowiedzieć się od szanownej gawiedzi jak podłączyć 'czujnik' który zliczałby czas między sygnałami, oraz jakiś kod w Bascomie (AVR) Moja koncepcja wygląda mniejwięcej tak: podłączam czujnik pod Int0 i czekam na sygnał, kiedy dostaję sygnał uruchamiam timer i kiedy znów dostanę sygnał zatrzymuję timer, zapisuję to co naliczy w...
Programować umiem... http://www.youtube.com/user/Hubert7323 Ale dam sobie z tym spokój. Zrobię to, tak jak ty mówisz. Tylko jakie impulsy ma zliczać ATmega8 ? Czy dobrze myślę, że chodzi o to "piiiii" (przerwa ok.1sec) "piiiii". Czyli muszę mieć telefon i drugą kartę Play Fresh (1 rok) 8) Dodano po 3 Bedzie to SE K300i. ATmega bedzie zliczać cykle silniczka...
Nie lepiej wykorzystać przerwanie ICP1 timer1. Tam przepisywać zapamiętaną wartość timer1 (timer1 w konfiguracji timera zmienna = capture1), i przeliczać na prędkość, znamy przecież drogę (odległość między magnesami) a potrzebujemy tylko czas pomiędzy kolejnymi przerwaniami wywołanymi tymi magnesami. Po co zliczać ilość impulsów (drogi) w danym czasie...
zliczać impuls układ zliczać impuls zliczać impuls timer1
odbiór dekoderze cyfra schemat mozaika cinquecento głośniki
JavaScript ShellExecute – przykłady kodu ActiveX, Node.js, Electron, WSH Schemat instalacji elektrycznej Dodge Durango 2018