Proszę, gotowy przyklad rozwiązania. Napisałem przy kawie i potestowałem w symulatorku czy się nie pomyliłem gdzieś ;) [syntax=basic4gl]$regfile = "m8def.dat" '$sim 'dla symulatora Config Portd.5 = Input : Set Portd.5 : Czuj_1 Alias Pind.5 Config Portd.6 = Input : Set Portd.6 : Czuj_2 Alias Pind.6 Config Portd.7 = Input : Set Portd.7 : Czuj_3 Alias...
Witam, planuje wykonanie sterownika w wersji 5.2 (bez PH, taki mi wystarczy w zupełności). Chciałbym do Skalara podpiąć także karmnik który już mam i tu moje pytanie: jak mógłbym to zrobić? Z tego co się dowiedziałem to da się włączać wyjścia sterujące na co najmniej minutę - ja bym potrzebował albo jeden impuls który zwarł by switch karmnika, albo...
Witam częstotliwość impulsów 1 impuls/minute (1/60Hz) - ma to być powielenie wskazań licznika kWh. więc częstotliwość duża nie jest. a wejście sterujące - styk ( podający tylko impuls zwierny - jak przycisk resetowy).
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....
Przeczytaj post #4 Z początku też myślałam, że chodzi o generator, ale nie. Chodzi o programowany licznik impulsów z wyjściem przekaźnikowym.
Witam, Mam problem z programem na Atmege8a, mianowicie: Piszę program sterujący pracą silnika (za pomocą L293D) który dodatkowo będzie zliczał w czasie impuls od przerwań zewnętrznych i tu pojawia się problem: kiedy napisałem program obsługujący tylko pracę silnika, wszystko działa sprawnie, kiedy napisałem program zliczający impulsy w czasie, również...
jeden kondensator mniejszy i równolegle z nim trymer a drugi pozostaje bez zmian zmiana położenia trymera spowosuje lekką zmianę częstotliwości kwarcu i taktowania procesora. licznik w procesorze będzie pobierał impulsy właśnie z oscylatora kwarcowego mówimy o atmega... a może liczniki liczyły Ci źle bo korzystasz z wewnętrznego oscylatora RC, który...
Dzięki za tak szybkie odpowiedzi :-) 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. Tak, zmienne mam jako volatile, ale rzeczywiście nie policzyłem, że counter tak szybko się przepełnia...
Witam serdecznie. Piszę program, w którym muszę zliczać przychodzące impulsy z licznika energetycznego do procka. Aby nie zliczać impulsów pochodzących od drgań styków wymyśliłam takie rozwiązanie. Jeśli na INT0 przyjedzie zbocze opadające, włącz licznik T0. Gdy licznik przepełni się- minie 32ms i w tym miejscu będzie poziom niski na pinie, to atmega...
czy taki kod na Atmedze 8 da się zrealizować Zdecydowanie nie przewyższa możliwości obliczeniowych atmegi. Proponuje w pierwszej kolejności przemyslec definicję pierwszego impulsu. Jak kolega to zrobi to znajdzie (bez programowania w pierwszej kolejności) algorytm wykrywania że jest on pierwszy i należy liczyć od poczatku. A jak juz bedzie wiadomo...
Nie do końca jestem przekonany , czy na właściwym jestem forum , ale zapytam kolegów . Otóż zrobiłem licznik ciętych blach w gilotynie na procesorze Atmega 8 i wyświetlaczu LCD 2x16 . Opis: silnik i wałki ciągną blachę ,gdy ta dojdzie do krańcówki wtedy następuje zadziałanie tejże krańcówki(zwarcie styków) i załącza się stycznik , który znowu załącza...
Jestem początkującym z programowaniu w C.Opiszę problem : Zbudowałem licznik zwojów do nawijarki na ATMEGA 8 . Licznik liczy zwoje przy pomocy optobariery szczelinowej i tarczy z dziurką(czyli zliczanie gdy na wejściu stan niski) liczy w przód i w tył(przy odwijaniu). Jedno wejście ATMEGi zlicza impulsy (PULSELOW) , drugie to wejście sterujące aby zmieniać...
Na pierwszy strzał wymieniłbym ten potencjometr montażowy skatowany ogromnym wkrętakiem na dobry osiowy Wymieniony na Telpod 4,7k Czy Twój sterownik ma regulację prądu na silnik? Tak najpierw sprawdzam, czy sterownik prawidłowo steruje. No wydaje mi się, że dobrze steruje dlatego, że obraca się prawidłowo tylko gubi kroki. Nie mogę sprawdzić przebiegu...
Witam Chciałbym użyć atmegi jako sterownika PLC (coś na wzór LOGO Siemensa) chce wykorzystywać następujące funkcje ( opóźnienie załączania ) ( opóźnienie wyłączania ) ( przerzutnik RS reset/set ) ten jest chyba ( generator impulsów ( przerzutnik stabilny z opóźnieniem ( generator pojedynczego impulsu ( licznik w górę ) ( licznik w dół ) największy problem...
Możliwe sugerowałem się tym, że niezależnie czy po wpisaniu Reset Pinb.1 lub Reset Portb.1 i wrzucenia do uC działanie było takie same. Nawiązując do mojego problemu, próbowałem zmieniać w poprzednich kodach port na pin tak jak radził "piotrva" jednak nie przynosi to efektu. Nadal mam problem z uruchomieniem tego obrotomierza. EDIT: Jest jakaś poprawa,...
Witaj. Według mnie pytanie raczej nie w tym dziale, ale co wiem to powiem i może to coś pomoże. Wszakże dopiero projektujesz układ. Pierwsze co bym zrobił to dał zewnętrzny licznik i tylko go resetował z AT po odczytaniu danych. Zewnętrzny licznik ma tą zaletę, że nie musisz pisać softu a wynik z licznika możesz przepisać portem równoległym do zatrzasków...
Jeśli taktujesz MCU zegarem 1 MHz (tak wychodzi z preskalera) to okres zegara wynosi 1us, tyle ile mniej więcej trwa impuls ujemny OW. Przy tak niskim taktownaiu można to zrobić, ale lepiej podnieść je do 4-8 MHz, co da więcej czasu. Tak jak pisałem, umieść w sekcji atomowej samo generowanie impulsu ujemnego, a delaye oprzyj o timer i będzie ok. BTW,...
Niech się ktoś wypowie co o tym sądzi i czy to bedzie działało w praktyce, nie mam niestety oscyloskopu z pamięcią żeby zaobserwować tak szybkie zmiany sygnału, a nie jestem najlepszy z cyfrówki, tak więć wszelkie racjonalne wskazówki mile widziane :) Zastanawiam też czy do procesrów ATMEGA wogóle potrzebny jest taki układ - słyszałem ze można ustawić...
Prosze, jest to kod na którym bazuję. Znalazłem gdzieś w sieci oraz jego przerobioną wersję na oscyloskop. Któryś z użytkowników zamieszczał go nawet na forum: [syntax=vbnet] Config Pind.4 = Input 'ustawienie pinu 4 portu D jako wejście Set Portd.4 'stan spoczynkowy pinu 4 portu D wynosi 1 Config Timer1 = Timer , Prescale = 256 , Noise Cancel = 1 ,...
Witam Oglądam sobie dokumentację do PCF8563 i brakuje mi w nim generowania przerwań (na pinie INT) co sekundę jak robi to PCF8583. Wolałbym nie używać pinu CLKOUT skonfigurowanego do pracy przy 1 Hz. Kiedy używam PCF8583 ATMEGA w przerwaniu zewnętrznym generowanym przez PCF odczytuje sekundy, a jak trzeba to minuty i ... tak dalej. W PCF8563 widzę teoretycznie,...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
Witam. Dorwałem wyświetlacz EL(plazmowy) O rozdzielczości 640x400 i obsługujący skalę szarości. Udało mi się nawet znaleźć dokumentację: http://www.esskabel.de/Datenblaetter/LCD... Pozostaje problem jego wysterowania walczę z tym już jakiś czas i jak na razie udało mi się wyświetlić tylko przypadkowe dane albo pionowe pasy....
Wrzucam moją wersję programu do obsługi 4 serw. W ostatnim tygodniu zakupiłem swoje pierwsze dwa serwa, więc mogłem się pobawić problemem ich sterowania. Z powodu, że mam tylko dwa, jedynie dwa kanały są sterowane z przetworników ADC. Pozostałe są obsługiwane przez przerwania, ale nie ustawiane. Wartości dla serw wpisuje się w tablicy serwa_val[]. Doświadczalnie...
Witam, potrzebuję pomocy przy budowie licznika impulsów z mikrokontrolerem, który można zaprogramować za pomocą arduino. Urządzenie ma zliczyć impulsy np. z czujnika zbliżeniowego, lub z przycisku ręcznego. Po uzyskaniu zadanej wcześniej liczby impulsów ma uruchomić przekaźnik.(podać napięcie na cewkę) ............ Potrzebowałbym tak naprawdę program...
Oczywiście, że w tym ukłądzie będzie gubił impulsy. Nie wdając się w szczegóły, na około kasujesz ekran i wyświetlasz ponownie wszystko. Nie zauważyłeś, że napisy mają kiepski kontrast? Zrób tą pętlę tak, aby wyświetlał licznik tylko wtedy gdy się zmieni. Zobaczysz, że a) AVR będzie się nudził, b) przestaniesz gubić impulsy.
Należy: - zadeklarować zmienną globalną np. LICZNIK i nadać jej wartość zera, - włączyć przerwania od przepełnienia Timer0, - w funkcji przerwania należy zwiększać wartość zmiennej LICZNIK o jeden Aby poznać liczbę impulsów wystarczy pomnożyć LICZNIK*256 i dodać do niego aktualną wartość rejestru licznika timera, czyli jak sądzę counter0 (nie znam BASCOM).
Wystarczyło by wykorzystać licznik tryb CTC z dodatkowym przerwaniem od OCRB. OCRA odpowiada z f OCRB za wypełnienie.
I pomyśleć, że tyle dyskutujecie o dwóch liniach kodu w przerwaniu timera wywoływanym np. co 10 ms. http://mikrokontrolery.blogspot.com/2011... Obejrzyj ten przykład, a pod if() wstaw instrukcję licznik ++ - i masz całe rozwiązanie.
Ostatecznie możesz zrealizować taki pomiar w oparciu o układy cyfrowe. Budujesz generator o odpowiednio dużej częstotliwości do tego jakiś licznik i układ bramkujący ...a mikrokontroler stosujesz do sterowania tym układem oraz odczytem wartości z licznika i akwizycji na wyświetlacz. Wspomniane mikrokontrolery XMEGA są oczywiście lepszym wyjściem z sytuacji...
To rozwiązanie chcę użyć do zliczania sygnałów z czujnika. Na chwilę obecną zliczam impulsy na zmiennej i jest taki efekt, że w trakcie zliczania program wykonuje zliczanie i nie mam możliwości przełączać innych wyjść. (zliczanie jest jednym etapem gdzie musi zostać wykonana określona liczba obrotów)
Nie muszę używać NE555, tylko chciałem dla przykładu napisać, że muszę zliczać impulsy. Zastanawiam się, która metoda liczenia jest dokładniejsza - liczyć na licznikach czy na przerwaniach. Myślę, że zbuduję układ uniwersalny i za pomocą zworek będę ustawiał czy impulsy trafiają do licznika czy na wejście INTx. Obydwie metody są równie dokładne. Różnica...
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
Po przepełnieniu licznika on się zeruje automatycznie? W większości trybów licznik zeruje się podczas przepełnienia. Wyjątkiem są niektóre tryby PWM, np. Phase Correct PWM Mode: The phase correct PWM mode is based on a dual-slope operation. The counter counts repeatedly from BOTTOM to MAX and then from MAX to BOTTOM.
Witam, wiem że w sieci jest 1*e^6 lub więcej gotowych liczników impulsów, lecz ja chciałbym mieć pełną kontrolę nad moim kodem, a nie kopiować bezmyślnie. Tak więc sprawa tyczy się zliczania impulsów 5V od obrotów i prędkości w motocyklu. Do tego celu chcę wykorzystać układ AVR ATMega 16 lub mniejszy (po przeróbce w kodzie). PYT1: Obrotomierz kręci...
Witam wspólnotę chciałbym zaznaczyć że z wykształcenia jestem mechanikiem, a z programowaniem nie miałem wcześniej styczności. Przeczytałem książeczkę która mowiła o programowaniu w jezyku bascom, i stworzyłem taki o to kod programu. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Timer0 = Timer , Prescale = 256 'licznik do odmierzania...
Enkoder to mechanicznie zwykły przycisk. Ma też wszystkie wady przycisku, czyli np. drgania styków. Wiele enkoderów na jeden "przeskok" generuje 2-4 impulsów i oczywiście czasy trwania poszczególnych faz zależą od szybkości kręcenia. Przejrzyj darmowe przykłady do książek w mojej stopce - masz tam przykłady obsługi enkoderów w oparciu o ATMega i XMEGA.
Dziekuję za odpowiedz. Z tymi portami to była mała literówka z mojej strony pisząc tego posta. Generalnie jak widzę należy całkiem inaczej podejść do tych TIMERÓW, tego się spodziewałem.Jestem naprawdę mocno początkujący w programowaniu tych procków, ale Twój post pozwolił mi inaczej spojrzeć na ten problem i już pewne info znalazłem tutaj na elektrodzie,...
http://obrazki.elektroda.pl/5431448900_1... 74HC74 bramkuje sygnał wejściowy tak aby jego impulsy nie były krótsze niż impulsy taktowania licznika 74HC590(już samo to wyfiltrowuje część krótkich szpilek) - blokuje to możliwość wyzwalania przerwania ICR1 z nadmierną częstotliwością. W układzie jak na rysunku 74HC590 zlicza gdy sygnał...
Przy 6 kHz to można się pokusić o zliczanie programowe - czyli podajesz sygnał na wejścia mogące generować przerwania. Z drugiej strony, skoro stosujesz ATMega32, to może prościej wykorzystać ATXMEGA32, gdzie w zależności od wersji liczników masz nawet 8 (albo 16 8-bitowych) i sobie to ładnie sprzętowo rozwiążesz.
dondu pisał o zerowaniu preskalera timera nie zapomnij wyzerować licznika timera.
...przy 10000HZ na LCD wyświetla 0666... No to prawie jak liczba szatana :) if(licznik==4) { T1=TCNT1; utoa( T1, bufor1, 10 ); lcd_gotoxy(3,0); lcd_puts(bufor1); TCNT1=0; } Widzę, że dodałeś pozycjonowanie kursora, żeby wynik za każdym razem był wyświetlany w tym samym miejscu wyświetlacza. Trzeba by jeszcze...
Spróbuj wgrać ten kod.[syntax=basic4gl] $prog &H00 , &H00 , &H00 , &H00 $regfile = "m32def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , E = Pinb.4 , Rs = Pinc.7 , Db7 = Pinb.3 , Db6 = Pinb.2 , Db5 = Pinb.1 , Db4 = Pinb.0 Config Pinc.2 = Input 'tego chuba nie używasz? Config Pind.1 = Input Przycisk Alias Pinb.7 'tego chuba nie używasz?...
Witam. Mam lcd ks0108b 128x64 i chcę zrobić licznik. Chcę napisać program na atmega 644/16 który będzie zliczał czas między impulsami na int0 po czym 3.6 dzelił przez wynik i mnożył razy obwód koła. Początek programu napisałem, skonfigurowałem port na zbocze opadające ale nie wiem ja liczyć ten okres. Proszę o pomoc w tym programie. [syntax=basic4gl]...
Co do zasady działania zegarek opiera się na licznikach [url=http://www.zsp3technikelektronik.cb... Można zrealizować to tak że pierwszy licznik liczy od 0 do 9 każdy impuls podany co minutę, i co każde przejście przez zero podaje impuls kolejnemu licznikowi, który z kolei liczy...
Ja bym proponował na początek przerwanie zewnętrzne INT w którym liczysz impulsy, oraz przerwanie timera w trybie CTC co około 1s w której jak kolega (at)bochnio wspomniał będziesz zerować licznik. Kolejny krok to mniej więcej tak:[syntax=c]if(licznik > 6) POTRB |= (1<<PB0); // ustaw stan wysoki gdy przekroczy wartość else POTRB &= ~(1<<PB0);...
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Witam; chciałem zrobić sobie licznik impuslów na procesorze Xmega. W ATmega była sprawa prosta, licznik mógł pracować w trybie licznika impulsów zewn. A w Xmega tego nie widzę. Wydaje mi się że można to zrobić na eventach, ale chciałbym sie upewnić, czy rzeczywiście to jedyna droga?
Możesz zrobic tak - zliczać 11059 impulsów w liczniku 16-sto bitowym. Da Ci to częstotliwośći 10000,01 Hz czyli z błędęm w zasadzie do skorygowania kwarcem (kondensatorem, trymerem). Co do RS-a - to błąd całkowicie akceptowalny (dla skorygowanej do 11059000 Hz częstotliwości). P AK
na symulatorze nie masz co patrzeć. One są do niczego. Ok sprawdzę zaraz. Dodano po 18 ok sprawdziłem. Działa bez problemu. Sprawdzałem na płycie testowej a sygnał brałem z Timera2 skonfigurowanego jako PWM. Zmieniałem różnie Prescaler od 1 do 1024 i działało bez problemu.
Ok po kolei, wywalam wszystko z programu, zostawiam tylko...... zmienna impulsy jest zwiększana o kilkanaście a nie tylko o jeden ............ Licz: If Scisk = 1 And Ok = 1 Then Incr Impulsy Elseif Scisk = 0 And Ok = 1 Then Decr Impulsy End If Return Kontaktron (Reed switch) generalnie jest stosowany jako proxy switch, czyli w ukladach statycznych....
Zacznijmy od pytań: 1. Które bity według Ciebie ustawiłeś w TCCR2B : [syntax=c]TCCR2B = (1CS20) (1CS22); ustawienie prescalera na 1024, jeden impuls licznika to 64us TCCR2B = (1WGM22); wprowadzam timer2 w tryb CTC [/syntax] pomijając już fakt, że ten fragment się nie skompiluje. A może wszystko jest ok, tylko to problem wklejania kodu na forum? 2. Gdzie...
Liczniki są osobnymi blokami uC, więc jeśli sygnał wejściowy jest poprawny, to impulsy powinny być zliczone poprawnie. Podany wyżej program to program użyty w moim mierniku częstotliwości okrojony z niepotrzebnych ci rzeczy, które mogłyby zaciemnić jego sens. Działa przy częstotliwości kilku MHz.
Tak, dokładnie i wtedy nie będzie problemu, że Atmega przeoczy, krótki impuls. A przerzutnik można też zrobić na drugim komparatorze z układu podwójnego (patrz aplikacje komparatorów) ...
A tak mi się skrobnęło... Na weścja A,B,C multipleksera dajesz liczbę 0..7 wyburając nr wentylatora (tzn. odpowiednie wejście X0..X7). I już po sprawie. Mierzysz 8 razy na tym samay liczniku.
Witam, Przedstawiam a tym artykule jak można na jednym przerwaniu obsłużyć pokazany poniżej impulsator. Może komuś się przyda. http://obrazki.elektroda.pl/6570210900_1... http://obrazki.elektroda.pl/3250862500_1... Wyjście B enkodera może by na innym dowolnym pinie, wymaga jedynie zmian w algorytmie. /* wyjście impulsatora...
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...
robilem cos takiego i tez poszedlem drogą licznika i timera. Timer odmierzał kwanty czasu, a licznik przerwania INT0. Dodatkowo wykorzystałem sobie jakieś przełączniki DIP do zmiany szerokości okienka czasowego w których liczone są impulsy.
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,...
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ę.
Ktoś pisze bzdury. Ta metoda da kilka procent fcpu. Lepiej zliczyć impulsy w określonym czasie za pomocą timera w trybie licznika. Drugim timerem mierzysz ten czas. Dla niskich częstotliwości lepiej mierzyć okres impulsu za pomocą ICP.
Ale skąd mam wiedzieć że licznik dobrze zlicza tzn co 1 mikrosekundę? Skąd mam wiedzieć że udało mi się na podstawie taktowania procesora wyliczyć dokładnie jedną mikrosekundę? Zaletą mikrokontrolerów jest to, że wystarczy być pewnym ustawień rejestrów i zegara, i musi odliczać prawidłowo. Pokaż program. Oczywiście kontrola jest wskazana :)
Nie,ma liczyć litry tak jak dystrybutor . Dodano po 2 Nie wiem w jaki sposób dodawac litry do zmiennej po przekroczeniu okreslonej liczby impulsów z przepływomierza to co znalazłem to liczone wszystkie w czasie a tu chyba chodzi o przepełnienie licznika Czas tu nie ma znaczenia! Użyj dowolny timer w charakterze licznika (Counter), i tak jak sugerowano...
Byłoby dobrze aby układ detekcji przecięcia wiązki formował impuls cyfrowy. Wtedy impuls wyzwoli przerwanie startujące licznik, następny impuls zatrzyma licznik. Taki sposób pozwoli na brak konieczności korzystania z wbudowanego, dość wolnego ADC.
Witam. Buduję układ sterownika tempomatu do samochodu. Wykonałem już wszystko menu z wieloma funkcjami dodatkowymi poza tempomatem (mini komputer pokładowy), zbudowałem układ wykonawczy wraz z zaprogramowaniem sterowania przepustnicą elektroniczną lecz chyba zacząłem od złej strony i utknąłem na pomiarze prędkości z czujnika prędkości samochodu. W aucie...
6000 rpm to zaledwie 100 Hz. Nie znam się na lotnictwie, ale wymaganie "Częstotliwość 1 Hz do 1 kHz." z pierwszego postu wydaje mi się przesadzone. Fotorezystor okazać się w sam raz :-) Przy odrobinie szczęścia może wystarczyć dzielnik napięcia 24V z fotorezystorem w dolnej gałęzi do wysterowania gotowego licznika impulsów.
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.
Jeszcze jedno pytanie pytanie. Dlaczego mi się ciągle atmega resetuje ?? Efekt ten zauważyłem od kiedy podpiąłem wyświetlacz. Reset podpinałem przez 10kΩ i przez 4,7kΩ do +5V i nadal to samo. Napięcie zasilania brane z portu USB lub z zasilacza zero różnicy.
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...
Chodzi o to, że po pierwszym przerwaniu TCNT1 będzie miał wartość 0, czyli zliczy potem 65536 impulsów. Zaś do generowania, jak Ty chcesz, przerwań co określony odcinek czasu służy tryb CTC. Wtedy w rejestrze OCR ustawiasz ilość impulsów, które chcesz zliczyć, i wygenerować odpowiednie przerwanie.
Walcze z licznikiem na Atmega 32 inicjacja wyglada tak : DDRB = 0xff; // DDRB jako wyjscie // t0 JAKO LICZNIK PORTB |= _BV(0); // BEZ PODCIAGNIECIA NIE CHCE LICZYC TCCR0 = _BV(CS01)|_BV(CS02); //_BV(CS00)| cs0 rosnace/~opadajace zbocze TCNT0 = 200; TIMSK |= _BV(TOIE0); // T0 wywoluje przerwanie Caly problem polega...
Witam Sposobów realizacji jest masa. Najprościej Arduino Nano i kilka linijek programu. Mniejsze sam procesor Atmega lub Attiny, ale trudniej bo trzeba płytkę robić (lub pająka żywicą zalać) CD4017 + CD4002 bez programowania. Aby to wszystko nie padło przy pierwszym włączeniu to należy jeszcze dorobić konwertery poziomów wejściowych i wyjściowych, ale...
No to w takim razie źle zrozumiałem instrukcję. Napisali w niej "możesz za załadować do licznika wartość odpowiadającą ilości impulsów po których licznik sie przepełni " więc załadowałem 1000000 impulsów i czekałem aż się przepełni ale się przepełniał troszkę za szybko moim zdaniem.
3x ATtiny będzie chyba najlepsze- jak napisał atom. I może ATMega jako master. Dokładność na początek ma być 1xE-4 a zwykłe kwarce mają dryft temeraturowy 100ppm. No i cała reszta- rozrzut parametrów, starzenie itp. Proponował bym wspólny zegar dla procesorów- nie zwykły kwarc a generator kwarcowy wspólny dla wszystkich procesorów. Taki jak w komputerach.
Możesz też zliczać czas między impulsami. Znasz czas i drogę (obwód koła) co daje Ci prędkość.
Na znanych portalach można znaleźć w cenie około 20zł moduły WMBUS Apatora, które były stosowane do odczytu wodomierzy. Chciałbym je użyć w domowej automatyce z Home Assistant do raportowania stanu licznika energii elektrycznej oraz gazu. Licznik energii ma wyjście OC a licznik gazu ma kontaktron. Rozwiązanie na WMBUS wydaje się raczej niezawodne (zasilanie...
kolega ma kompletnie skopane procedury obslugi przerwań, nie wiem czemu nikt dotychczas tobie nie napisał że obsługa przerwania to nie jest miejsce na stosowanie procedury delay(). To także nie jest miejsce na to aby wstawiać tam instrukcje case-select choć to jeszcze od biedy przejdzie. Przerwanie musi byc maksymalnie zwięzłe. Dla wyświetlacza musisz...
Z tego co widzę to spokojnie ktoś ogarnięty napisał by ci program pod tą atmegę. Trzeba by się rozejrzeć po płytce czy steruje i jak. Ale tak na pierwszy rzut oka nie widzę jakiś komunikacji cyfrowych. Parę wskaźników które pewnie idą bezpośrednio lub są wysterowana analogowo. Nawet licznik motogodzin jest analogowy. Trzeba by się temu przyjrzeć ale...
zliczanie impulsów z dwóch enkoderów Jeżeli to są enkodery inkrementalne z sygnałem A, B i ew. Home, zrezygnuj z megi64/128. Xmegi mają wsparcie sprzętowe do obróbki sygnału z takich enkoderów przez użycie liczników w połączeniu z eventami. Na STM32Fxxx zrobisz to łatwiej i być może szybciej korzystając z gotowców. generowanie dwóch przebiegów PWM...
Witam Czy są jakieś różnice w budowie wejść tych liczników (w ATMega 162)? T0 to wejscie 8-bitowego licznika, T1 16-bitowego. Oba liczniki steruje impulsami z transoptora i T1 liczy normalnie, a T0 podlicza tylko zwarcia bezpośrednio do masy. Do transoptora (CNY17-4) wejścia liczników są tak podłączone: 5V | Kolektor * Emiter -----------wejście Licznika...
Dochodzące do 50MHz Z komparatora który z czasem reakcji 150ns? Jakim cudem? Czy jeśli napiszę funkcję która mierzy czas impulsu wysokiego i niskiego, lub od razu całego okresu, to ATmega da radę z taką częstotliwością przez zwyczajne digitalRead i funkcje millis() ? Atmega może liczyć impulsy do częstotliwości połowy częstotliwości zegara, oczywiście...
Atmega jest taktowana zewnętrznym kwarcem 12MHz, żeby jeden tick timera trwał ~1us. 1. Czy timer 8-bitowy przyjmujący zewnętrzne impulsy, może je przyjmować w takich samych odstępach czasowych jak 16-bitowy? Niestety na etapie projektowania nie zauważyłem, że żeby użyć 16-bit timera do przyjmowania impulsów zewnętrznych należy użyć nóżki T1, a nie T0,...
Ale wartość ICR1 nie równa się 1200us (czy 1800us, czy cokolwiek), tylko wartości licznika czasu zatrzaśniętej w momencie zbocza (a licznik liczy w kółko, od 0 do 65535 i dalej znów od 0). Dopiero różnica bieżącej wartości ICP i poprzedniej (dla poprzedniego zbocza) daje ten czas 1200/1800us pomiędzy zboczami.
Druga sprawa jest jeszcze taka czy sygnal z wiatraka nie bedzie za slaby? Poza tym jak rozwiazac to od strony programowej? Liczysz impulsy w czasie, po czym zerujesz licznik i mierzysz nastepny odcinek czasu. Reasumując wykorzystujesz jeden licznik jako licznik impulsów zewnętrznych z wejścia T0 albo T1, a drugi licznik, zliczający przez preskaler...
Powrót do punktu wyjścia: atmega i elementy (np. wyświetlacz i kwarc) z licznika rowerowego lub zegarka, lub kalkulatora ...
(at)atom1477 Wzmacniacz był badany za detektorem. Sprawdzane było zbocze narastające przy wywołaniu pojedynczym impulsem i przy wywołaniu sygnałem prostokątnym 40kHz nie było różnicy w amplitudzie ani w czasie narastania. Na tej podstawie stwierdziłem że wzmacniacz działa prawidłowo. Dodatkowo na oscylogramach kanał niebieski to bezpośrednio wyjście...
Tranzystor wymusza stan niski na pinie, prosty program zapalający diodę jak jest przesłona, działa. Oczywiście że jest dany rezystor. Problem polega na tym że jak zewrę do masy pin portd.2 to licznik cały czas liczy a chcę aby tylko raz dodał do zmiennej +1.
Teraz nie mam pod ręką niczego co jednostajnie i stabilnie może dawać sensowne impulsy zdatne do jakichkolwiek testów prędkości. Mam impulsator z rolki myszki, ale nie mam za specjalnie czym nim kręcić (w rozsądnych prędkościach). Nie wiem jak to jest rozwiązane w oryginalnych licznikach, ale zdaje się, że jest tam zwykły kontaktron i działa. Rozwiązań...
Witam Proszę o pomoc. Potrzebuję wykonać okład mierzący bardzo krótkie odcinki czasu. START podanie impulsu na któryś pin, STOP podanie drugiego impulsu na kolejną nóżkę. Procesor Atmega32 język Bascom. Jaki najmniejszy odcinek czasu mogę zmierzyć ? Jak wygląda procedura pomiaru czasu miedzy Start a Stop? Bardzo proszę o podanie fragmentu kodu. A czy...
Twoje 50 Hz (pomijam, że nie da się tak dokładnej częstotliwości ustawić) daje okres = 20 Chyba źle zrozumiałeś kolegę michalko12 . Te "jego" 50Hz to nie częstotliwość przerwań, tylko sygnału sterującego serwem (tak przynajmniej sterowana jest zdecydowana większość serw modelarskich). Okres tego sygnału powinien mieć 20ms, z czego 0,5÷2,4ms trwa stan...
Skoro sygnał ma być podawany na INT1 (PD3) to chyba tu jest problem bo podłączony jest tu wyświetlacz No ale jak to? Mówisz tak ja by wyświetlacz podłączył tam się sam. A przecież to Ty go chyba podłączyłeś. Wina więc nie w wyświetlaczu a w tym kto go podłącza :D No i druga sprawa. Nie bardzo rozumiem dlaczego chcesz podłączać sygnał do INT1, skoro...
Ponieważ tzw. casting w BASCOMie jest nieco zbyt prosto zrobiony to proponuję zrezygnować z: Dim Xl As Word Dim Xh As Word A w przerwaniu pobierać zawartość z rejestru ICR za pomocą specjalnie generowanej dla tego celu zmiennej typu Word: Capture1 . Pętlę Do..Loop zamieniłbm na sprzętowe porównywanie i kasowanie licznika przez CTC. Niech takimi rzeczami...
Witam:) mam pytanie do forumowiczów w sprawie pomiaru częstotliwości, sprawa przedstawia się następująco: chciałbym zrealizować pomiar częstotliwości .............. wiem ze należy postąpić w poniższy sposób: 1. zatrzymanie zliczania impulsow z T0 2. zatrzymanie odmierzania czasu bramkowania T1 3. przepisanie zliczonych impulsów do rejestru głównego...
Po co koledze ten CTC? Prescaler ustaw na 128 i wykorzystaj przerwanie przepełnienia licznika. Fint = Fosc / preskaler / 2^ilość_bitów_licznika = 32768Hz / 128 / 256 = 1Hz Przy CTC trzeba pamiętać, że występuje taki jeden mały szczegół jak 1+OCRn , gdyż licznik musi przynajmniej zliczyć jeden impuls. A ty go nie uwzględniłeś: Fint = Fosc / (preskaler...
No przecież wystarczy wziąć zmienną np. Integer i w zależności od stanu linii DIR zmniejszać ją lub zwiększać przy każdym impulsie STEP. Gdzie tu jest problem, czy ja czegoś nie rozumiem... ?
STM32L031K6: Przy wewnętrznym zegarze 131kHz, w temperaturach -40+55, kod wykonywany z RAM, pobór prądu bez peryferiów 21uA max. Z włączonym licznikiem i RTC to będzie 36uA max. I nie trzeba obniżać napięcia do 1,8V :) Można też zejść do 9uA przy zachowaniu zliczania impulsów i bez wybudzania przez 20s (i więcej). Inna opcja to zliczanie impulsów w...
Witam ponownie. Nie zauważyłem tego, ale jeszcze się przyjże. Robiłem pomiary częstościomierzem z funkcją licznika, za i podstawiłem 120 a delay skróciłem do 1ms, tak aby uzyskać częstotliwość 5kHz i licznik za każdym podłączeniem do żródła zasilania - pokazywał 120... Może próbowałeś w jakimś poważniejszym układzie, bo mój to tylko Atmega 8 i led przyłączona...
Natknąłem się na pewien problem przy budowie tego urządzenia związany z ograniczeniami ze strony procesorów AVR. Maksymalny zakres to dla 90s2313 5 MHz (czestotliwosc rezonatora /2 ). Rozwiązanie z którymś z ATmega też nie jest brane pod uwage... Moje pytanie brzmi czy jest mozliwe w nieskomplikowany sposób poszerzyć zakres częstotliwości do 10 MHz......
Proszę bardzo ;) Timer napędzany jest od systemowego taktowania. Jeśli każę mu policzyc do jeden i odwrócić pin to w pierwszym takcie zegara licznik Compare1a ma zero i pin nie jest odwracany ;) Dopiero za drugim razem pin jest odwracany. Z tego powodu że żeby mieć częstotliwość na pinie trzeba go raz mieć w stanie wysokim a raz niskim, a da się to...
Witam, chciałbym prosić pierwszy raz od 16 lat w zasadzie o gotowca. Lub szkic programu żebym mógł sobie go sam napisać. Chcę dokonać przeróbki licznika https://sansan.cc/en/productsinfo.aspx?P... Chcę w nim zrobić: 1. W momencie dotarcia do "umownego" czerwonego pola czyli powiedzmy zapalenia przez licznik diody LED 6000 obr. Atmega...
To jest przyklad tego jak mozna obsluzyc DS1820 przez mega 8 ale jest tam tez obsluga wyswietlacza w C.Moze sie pryda.Sam to dostalem od jednego kolegi z forum:-) wiec mam nadzieje ze sie nie obrazi...mnie interesowal DS. Pozdrawiam Maciek! #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <ctype.h> #include...
atmega licznik impuls licznik impuls atmega schemat licznik impuls obrót atmega
volvo silnika pilot sencor amplituner klikanie
active webcam obudowa 18tbx100
Pilot Nice FLOR-S nie działa po wymianie baterii ATtiny85 zasilanie bateryjne, sterowanie diodą LED 1W, driver PT4115, Li-Ion, schematy