[syntax=basic4gl]If F1s = 1 Then Ilosc_wcisniec = Zmienna_pom Zmienna_pom = 0 Reset F1s End If[/syntax] Tu jeszcze mały błąd bo brakło zerowania flagi 1s i ma być porównanie z 1 a nie 0.
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...
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...
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ę.
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...
Osobiście to do sterowania pinu z 12V zastosował bym tranzystor + dzielik napięcia, a te diody które teraz pracują zostawił bym jako dodatkowe zabezpieczenie. Co do zakłuceń to poprostu pin uC nie może "wisieć w powietrzu", pin uC musi mieć zawsze jakiś potencjał (najlepiej bliski VCC lub GND). Czy w twoim przypadku ten warunek jest spełniony? Wydaje...
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ą.
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.
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?
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.
Nie lepiej zerować przez RS'a zmienną która zlicza impulsy ?
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.
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
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...
A niby dlaczego nie, podłączenie kwarcu, to też "zliczanie" impulsów. Karta katalogowa nic nie mówi o braku możliwości zliczania impulsów
Program sprawdziłem najpierw na diodach, później na silniku. Działało trochę i poszedł tranzystor, ale jak pisałem chyba z mojej winy bo zwarłem ścieżki sterujące pwm. Wlutowałem nowy tranzystor i działa, ale ma to być regulator do łódki więc zanim wypuszczę ją na wodę chce mieć w miarę pewność, że wróci. Chodzi mi tylko o to by ktoś sprawdził czy to...
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...
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...
bezpośrednio z bascoma się nieda. trzeba by wpisać odpowiednią wartość do rejestru sterującego timerem ale niepamiętam dokładnie jak to sięrobi, trzeba by zajżec do noty katalogowej tam wszystko dokładnie opisane. ale mozna zrobić inna sztuczkę $regfile = "m8def.dat" Config Pinb.1 = Output $crystal = 1000000 Config Timer1 = Timer , Prescale...
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...
Która atmega? W atmega8 możesz użyć: Timer0 - odmierzanie czasu Timer1 - zliczanie impulsów Timer2 - PWM
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...
Wolałbym nie pisać Ci gotowca ;) natomiast moja rada jest taka. Uruchomić timer i jeśli częstotliwość tych impulsów jest dość wysoka to bezpośrednio w przerwaniu timera dawać sygnał rozpoczęcia i zakończenia zliczania i zliczać w pętli głównej programu, a jeśli częstotliwość impulsów jest mała (np. w ciągu 5 czy 10s ma liczyć) to lepiej zrobić dodatkowy...
Zobacz kit AVT 2711 jak jest zrobione formowanie impulsów. Jest przystosowany do przerywacza.
Faktycznie bez problemu udało mi się ustawić godzinę "dwudziestą piątą" :D Zmieniłem na licznik jest używana podczas multipleksowania (4 wyświetlacze) w funkcji switch(licznik) . Do T0 wpisuje wartość początkową, żeby zliczał mi 255 - WART_POCZ impulsów.
Witam, mam uszkodzony pin PD4(T0). Jak mogę inaczej niż przez T0 tym licznikiem zliczać impulsy?
Witam Chciałbym usłyszeć Wasze zdanie na jeden temat. Otóż mam urządzonko zbudowane na bazie Atmegi8 - całość zamontowana na maszynie -gra i buczy (dzięki również Waszej pomocy za co bardzo dziękuję). Maszyna ma czujnik podczerwieni, który bada przesuwające się na taśmie przedmioty (czujnik zasilany jest 24 VDC i ma 3 przewody VDC, GND, i SYGN przedmiot...
No to daj na zliczanie zewnętrznych impulsów timer2(?). Może po jakimś preskalerze- nie liczyłem. Timer jako counter.
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...
[quote="emarcus Chyba nie tak prosto z dwukierunkowym zliczaniem impulsów (rozpoznaniem kierunku obrotu)! e marcus[/quote] Warunkiem rozrówniania kierunku obrotów jest tylko to aby dwa czujniki były rozstawione miedzy sobą o kąt rózniacy sie od 180 stopni lub tez w przypadku jednego czujnika otworki lub jezyczki przecinajace czujnik byly rozmieszczone...
Witam Nie ma sensu zliczać impulsów, żadna to rozdzielczość. Przy zegarze AVR 8MHz i zliczaniu własnego zegara, przez jeden okres impulsów z zapłonu, przy maksymalnych obrotach np. 500Hz, licznik zliczy do 16000. Przy niższych obrotach trzeba będzie dodatkowo zliczać przepełnienia licznika. Przy takich wartościach można bawić się matematyką i coś ciekawego...
masz tu foto
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...
Start Timer0 to jest to samo co Enable Timer0. By Zy Du Ra kolego Enable TIMER0 Włącza przerwania od TIMER0 Start TIMER0 powoduje rozpoczecie zliczania impulsów przez ten timer.
Ok, myślałem nad samą diodą Zenera, ale jakiś ogranicznik prądu w postaci rezystora też się przyda. Muszę teraz przemyśleć zliczanie impulsów za pomocą przerwań zewnętrznych tak jak doradziłeś mi w innym temacie.
więc po co dodajemy do niej jeszcze wartość counter0 Bo counter0 zawiera liczbę impulsów która minęła od ostatniego przekręcenia licznika. Cały program to jakby programowo-sprzętowy licznik, sprzętowe jest młodsze 8bit, a programowe zmienna "Czestotliwosc". Równanie na wartość całego licznika wynosi "czestotliwosc*256+counter0". Preskaler jest podłączony...
polecam pisać ten program w C. Kompilator opanujesz w kilka dni, a wygoda w stosunku do asm jest nieporónywalnie większa, przede wszystkim szybkość pisania kodu. W razie konieczności można użyć wstawek asm. Jak zajdzie potrzeba poznania nowego procka (np. ARM) lub przeniesienia kodu na inną machinę, to się nie namęczysz przy translacji kodu, tak jak...
W kwestii formalnej, ten kod się nazywa kodem Gray'a (od nazwiska Franka Gray'a 1887-1969, pracownika laboratoriów Bella, który go opracował) Co do samego problemu, to - prędkość obrotową wyliczysz z jednego kanału mierząc ilość impulsów w jednostce czasu lub mierząc czas trwania jednego okresu i przeliczając to na obroty (wiadomo ile masz impulsów...
Oczywiście w finalnej wersji mam zliczanie 600 impulsów tam tylko chodziło mi o krótki odcinek czasu ,aby sprawdzić czy działa. No i fakt nie potrzebny jest preskaler oraz podprogram licz.
znam bascoma za słabo żeby napisać coś takiego, ale może kto inny by napisał moje pomysły: prędkość na zasadzie takiej jak licznik rowerowy (chyba zliczanie impulsów) można by dodać przejechaną trasę i temperaturę (ds18b20) oraz woltomierz (chyba przetwornik A/C wbudowany w ATmegę32) ja polecam zrobić to na jakimś lcd alfanumerycznym (z graficznym więcej...
Zły pomysł, zły kod. Użyj jednego timera w trybie zliczania impulsów zewnętrznych i podłącz wyjście wentylatora do jego wejścia. Drugi timer zaprogramuj na zgłaszanie przerwań co 1 sekundę (timer 0 tego nie potrafi), w procedurze przerwania odczytaj wartość licznika, wyzeruj licznik i wyświetl wartość. Nie jest to idealne rozwiązanie, ale o niebo lepsze...
Proponuję napisać program od nowa. Zrezygnować z Gosub'ów. A w przerwaniu ustawiać tylko flagę. Odsługę i zliczanie robić w pętli głównej. Gosuby to masakra programu. A w tym Twoim zupełnie nie potrzebne.
Witam. Wolno czyli tak około jednego dotknięcia na sekundę, a jak już szybciej dotykam to licznik stoi a jak zrobię to na porcie d2 to wtedy po jednym dotknięciu wyskakują duże liczby np: 100. Program będzie musiał złapać około 50 impulsów na sekundę. Pozdrawiam.
1.mniejszy kondensator 2.układ z bramką schmitta Kombinacja tych dwóch zabiegów powinna działać bez problemu. Ewentualnie możesz też spróbować rozwiązać to softwareowo (skoro wiesz, że maks to powiedzmy 500 impulsów/sec to po wykryciu zmiany przez kolejne 2ms nie zliczasz zmiany stanu na porcie).
1: Musisz napisać odmierzanie czasu ,czyli tych twoich 30 min. 2: Musisz napisać zliczanie impulsów. 3: Jeśli chcesz mieć to wszystko regulowane, to musisz jeszcze napisać jakieś MENU. Chyba że wykorzystasz wejścia ADC i zrobisz to na normalnych potencjometrach liniowych.
Pozwolę sobie odświeżyć temat. Mam bardzo podobną sytuację - transoptor z drukarki HP oraz pasek "szczelinowy" do niego. Z jednej strony 2 nóżki od diody. Z drugiej strony 4 nóżki - 2 od zasilania i 2 sygnałowe. Są ułożone w jednej linii. W jaki sposób je zidentyfikować - która jest plusem a która minusem? Chciałbym podłączyć taki enkoder do mikrokontrolera...
A czy wewnętrzny generator może chodzić tylko jako 1MHZ czy jest możliwość zwiększenia częstotliwości ? Chodzi mi o to że kiedyś gdy nie wiedziałem o istnieniu fus bitów i uruchomiłem atmega8 taktowaną wew. generatorem z programem i podpiętym LCD to LCD jakoś dziwnie powoli reagował.
Sorry, Wiesz ja to sie z tym bawie tylko i program pisze w bascomie metoda prob i bledow. Nie ma większego znaczenia w jakim środowisku programujesz (Basic albo C). Istotny jest koncept projektu i sposób rachunkowy, reszta to tylko inna forma zapisu programu. Wybrałeś za narzędzia: Timer1 i jeden z interruptów zewnętrznych. Zatem jest tez bez znaczenia...
Nie lepiej podpiąć się pod wejście INT i zliczać impulsy? Timerem zrób sobie podstawę czasu a później wylicz z tego częstotliwość na podstawie liczby zliczonych impulsów w czasie.
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...
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...
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...
Witam Mam następujący problem. Używam timer0 jako licznika impulsów 12V które po przejściu przez układ dopasowywujący dają wartość 5,6 V na końcówce. Podobnie zliczam czas takiego impulsu za pomocą tego samego typu układu dopasowywującego. Problem tkwi w tym że timer0 nie zlicza mi impulsów przez podanie napięcia tylko wtedy gdy np: dotkne palcem albo...
Zależy od wymaganej dokładności. Można pomiary zrobić tak: uint32_t motogodziny; const uint8_t precyzja = 10; /* 10 bitów ułamkowych = ok. 1/32 motominuty */ const uint16_t nominalne_rpm = 400; for (;;) { uint16_t impulsy = 0; while (!minela_minuta) { /* zliczaj_impulsy */ } /* zeruj licznik impulsów i odliczanie minuty...
Czy układ Atmega8 podoła zliczaniu impulsów z częstotliwością 3500Hz? Spokojnie i jeszcze będzie się nudzić. ... dałem w podstawce gdzie będzie zamontowany MAX6675 a na czas programowania wyjmowany Może zamiast podstawki i wyciągania, dodaj jumpery. ... albo zastosuj czujnik DS18B20: Ciekawe projekty - Pomiar temperatury
Witam, zwracam się do szerokiego grona z takim pytaniem: Chcę zbudować obrotomierz. Ma wyświetlać obroty w postaci linijki LED. Wyświatlanie nie jest tutaj kwestią dyskusji. Proszę tylko nie dawać mi linków do gotowych zestawów, gdyż: Ma być oparty na procesorze Atmega8. Wejście z czujnika w postaci impulsów 1/obrót. Waham się pomiędzy dwoma rozwiązaniami:...
Diody masz podpięte bezpośrednio pod porty ATmega? Jeśli tak to lepiej dołóż sobie oporniki aby nie spalić wyjść ATmegi. Bezpośrednio przy procku daj kondensator 100nF. Przed stabilizatorem np. 1000uF, a za stabilizatorem 100u (to i tak za dużo, ale lepiej więcej niż za mało). Zliczanie zrealizowałbym w taki sposób: - Odpalić któryś z wewnętrznych timerów...
Pozwolę sobie umieścić post pod postem żeby wiadomość dotarła do zainteresowanego. Jeszcze lepszym wyjściem dla takiego zegara będzie zastosowanie dedykowanego rezonatorka 32768Hz (32,768KHz) Wartość 32768 to w zapisie binarnym dokładnie piętnaście bitów. Jeśli więc Timer będzie zliczał generowane impulsy to po 32768 uzna że mineła sekunda :D Bascom...
Witam to mój pierwszy post na tym forum, stąd możecie mi wierzyć jak bardzo jestem zrozpaczony:) jeśli temat jest w złym miejscu to prosiłym moderatora o przeniesiegnie i z góry przepraszam:) zwykle staram się rozwiazywać wszystkie problemy sam ale tym razem mam coś czego nie jestem w stanie zrozumieć. Pracuję chwilę nad programem którego działanie...
Dołożyłem kondensator i rezystor, teraz drgania styków nie wpływają negatywnie na pracę układu :) Dzięki! Mam z kolei inne pytanie. Nawiązując do projektu z obrotomierzem, na którym się wzorowałem. Co się stanie, gdy po wykryciu pierwszego zbocza narastającego, drugie zbocze wystąpi po dłuższym czasie? Załóżmy, że silnik akurat się zatrzymał po pierwszym...
Mam użyć Timera do zliczania ilości impulsów i jeśli jest mniej niż 55 to ma sygnalizować że połączenie zostało zerwane? Czy jak mam użyć tego timera?
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...
Pomysł jest straszny. Poczytaj o timerach. :D No dobra, ale w tym przypadku timer ma zliczać impulsy i ilość tych impulsów dodawać lub odejmować od zmiennej? I czy do tego wystarczy jeden timer, czy dwa (do dodawania jeden i do odejmowania jeden)?
Witam. Chciałbym skierować pytanie do fachowców na tym forum. Mianowicie interesuje mnie, czy bardzo kłopotliwe było by napisanie programu na mikrokontroler np atmega8, który by pokazywał mi na LCD aktualna prędkość. Pomiar miałby następować poprzez zliczanie impulsów z czujnika VR który współpracuje z wieńcem pierścienia ABS na przegubie. Ilość zębów...
Dr_dead....źródłem impulsów są kontaktrony, albo poprawniej zwarcie styku kontaktronu powoduje powstanie impulsu. Sprawdzę oczywiście wydajność żródła zasilania ale nie sądzę aby tu była przyczyna problemu. Raczej liczone sa jakieś"śmieci" z drgającego styku....i moje pytanie raczej skierowane było w tym kierunku. Zastosowałem parametr , przy konfiguracji...
Witam Piszę program, w którym zliczam impulsy z Timera0 (ATmega8). Ilość tych impulsów jest następnie dzielona przed określoną liczbę. Jak mozna się domyślić czasem wartość wynikowa będzie ułamkiem czyli pojawi się przecinek. Problem w tym, że nie mogę ustawić zmiennej wynikowej jako liczby z przecinkiem. Dim N As Byte N = Tcnt0 / 36 N = N * 60 W takim...
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...
Dzięki kolego Kubbaz za materiały dotyczące przerwań. Chciałem napisać program który by liczył małe częstotliwości (tzn. licznik by zliczał określoną liczbę impulsów, a timer pokazywał by czas w którym licznik zliczył te impulsy), jednak coś mi nie idzie. Jak by miał ktoś jakieś materiały dotyczące liczników i timerów w Atmega8 lub jakiś podobny program...
mam problem ze zliczaniem a wlaściwie mnożeniem wartości. kluczowe fragmenty w kodzie niżej: Start Timer1 Waitms 500 Stop Timer1 A = Timer1 * 0.000167 Timer1 = 0 Odo = Odo + A Odo1 = Odo1 + A niby wszystko OK jednak po jednym impulsie ODO wynosci 0.0001669 a odo2 = 0.000152. blad jest potem powielany razy ilość impulsów wszyskie zmienne sa DIMowane...
Witam. Podepnę się pod temat. Kolega "sulfur" mógłby podać link do tematu? Chciałbym zliczyć ilość obrotów na minutę ( max 250 ). Są 2 wyjścia. - Jedno, to zliczanie impulsów przez zewnętrzne przerwanie oraz obróbka w programie na rpm. - Drugie to zliczanie czasu między impulsami przez timer oraz obróbka w programie. Impulsy będą generowane przez zwieranie...
Witam ponownie Zrobilem tak : ustawiam jedna z koncowek portu procesora, co jest sygnalem dla pozostalej czesci ukladu do rozpoczecia generowania impulsu. W tym samym czasie uruchamia sie Timer2 zaczyna sie zliczanie przepelnien. Po zakonczeniu impulsu jego opadajace zbocze jest zrodlem przerwania INT1, co powoduje zatrzymanie Timer2. Teraz mnoze ilosc...
Zmiana enkodera jest nie możliwa. Muszę sobie poradzić ze zliczaniem impulsów tylko nie jestem pewien jak to zrobić. Nie mam za bardzo opanowanych liczników na Atmedze ale jest jakiś sposób zliczania ilości zboczy narastających na nich? Drugim pomysłem jest użycie przerwań zewnętrznych, ale jak wtedy określić kierunek obrotów? Po prostu nie chce wyważać...
Rozumiem o co ci chodzi tylko nie potrafię ubrać tego w język BASCOM. Wiem że muszę naliczać zmienną 4 razy następnie ją zerować i wartością zmiennej będą case-y. i tak będzie sobie przełączać. Ale co zrobić ze zliczaniem impulsów częstotliwości pulein ? też w case-ach ją podawać ? znalazłem także super projekt http://mirley.firlej.org/sterownik_tasmy...
Dzięki. A tak na marginesie. Jeżeli to ma liczyć impulsy to czy przy pewnej częstotliwości przerwanie nie będzie przeszkadzać w poprawnym zliczaniu? Edit: Powinno być po 1 ponieważ multipeks realizowany na czterech najmłodszych bitach ma mieć wartości 1, 2, 4, 8. Tak mi się przynajmniej wydaje. I tu był błąd.
Witam! Mam pytania: jak w praktyce zastosowac timery? Jak one działają? W którą stronę zliczają? Jak zczytac ich stan? Do ilu mogą zliczać? chciałbym, aby ktoś wytłumaczył mi to na przykładzie Atmegi8 i języka Bascom. Wiem już że: -Timery zliczają impulsy które same generują wg. prescalera -Prescaler to taki dzielnik, który bierze jakąś część taktowania...
Witam! Google mi nic nie podpowiedziały. Na ilu kanalach w ATmega8535 moge zliczac impulsy z wentylatora (jednoczesny pomiar predkosci wentylatorow)? Potrzebuje z 5-6 kanalow. Czy mozna to zrobic na jakims multiplexerze (moze byc odczyt jednego w danej chwili - ale zeby mozna bylo odczytac kolejno wszystkie)? Sterownik wentylatora zwiera chyba 12 V...
To nie Bascom jest przyczyną tylko źle napisany program ;). 1. odczyt timera1 16bit odbywa się po przez rejestr pomocniczy TEMP, ten rejestr jest też używany przez inne procedury i funkcje i jeśli jest użyty to właśnie niszczona jest wartość High timer1 bo ona tam jest wpisana gdy używasz komendy. wpisując tak timer1 do tablicy możesz gubić High timer1....
Witam, Chodzi mi o licznik impulsów spełniający warunki: - licznik rewersyjny, - możliwość ustalenia stanu początkowego, - zliczanie "zegarkowe" tzn. od 00:00 do 23:59 (wyświetlacz 4-cyfrowy), czyli pojemność 1440 impulsów. Przyznam, że nie bardzo uśmiecha mi się robienie tego na TTL. W sprzedaży jest sporo zestawów do samodzielnego zmontowania zegara...
Sformatuj kod i umieść w znacznikach syntax. Nie używa się delay w przerwaniu. LED bez rezystorów ograniczających prąd? i wytłumaczyć przy okazji jak zliczać przerwania O co dokładnie chodzi? Zliczanie impulsów, np licznik częstotliwości? Na razie to uaktywniłeś INT0, zliczać możesz inkrementując zmienną w procedurze obsługi przerwania. Zamiast Mega8,...
Nieee- to się kompiluje. Sprawdziłem. To jest stary, klasyczny problem. Czętościomierz- czasomierz. Dokładność zależy od częstotliwości- czasu. Przy dużej częstotliwości otwieramy "okno"- bramkę i zliczamy ile tych impulsów było. Przy małej częstotliwości mierzymy czas między impulsami a bramka- pracująca teraz jako generator impulsów- zlicza czas między...
wyłączanie zegara i konfigurowanie go w przerwaniu - to nie wygląda za dobrze...Szczególnie jeśli chodzi o rejestry MCUCR Akurat ta część działa prawidłowo i została zrobiona wg. wskazówek i porad, które znalazłem tutaj na elektrodzie. Mam problem z drugą częścią, z tym przerwaniem: SIGNAL (SIG_OUTPUT_COMPARE2) { ++cw_impuls; impuls=(cw_impuls*2)/1000;...
W ATMEGA8 od rezonatora 32768Hz trzeba podłączyć kondensatory jakieś 33p idące do masy, bo te wewnętrzne nie działają. Przynajmniej tak mi się wydaje. rpal, wyjaśnij mi tej kod w obsłudze przerwania bo nie pojmuję: TCNT2=0x0A; chodzi o to że wchodząc w przerwanie spowodowane przepełnieniem czyli zliczaniem od wartości początkowej w przykładzie 0Ah...
W języku c wszystkie instrukcje poza deklaracjami i definicjami muszą się znajdować w jakiejś funkcji, a u Ciebie są tak luzem, i pewnie dla tego te błędy. Kolejny błąd pojawia się z powodu braku średnika na końcu pierwszej linii w funkcji main(). Mając taktowanie o wartości 1MHz musimy je podzielić przez 1000 aby uzyskać 1 kHz, jak ustawisz preskaler...
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...
Od zliczania impuslów są timery. Więc musisz o nich poczytać i zaprząc je do pracy. W przykładach do pierwszej książki z mojej stopki masz gotowca, przeglądając go możesz pokombinować jak to działa.
Zakładam, że mówimy o silniku samochodowym. Nie wiem dokładnie do czego chcesz się podłączać w samochodzie, ale w silnikach benzynowych można nawinąć cewkę na przewód zapłonowy i zliczać impulsy. Jest kilka sposobów: 1) Pomiar czasu pomiędzy kolejnymi impulsami. Metoda chyba najmniej dokładna, bo daje chwilową wartość... Ale mając wartości chwilowe...
wiec jesli sprawdzanie stanów timerów potrwa tak długo , wiec zliczanie impulsów w ten sposób mija się z celem wcześniej już określiłem jak program ma pracować , jego zasada jest prosta , nie wiem jak bardziej prosto mam to wytłumaczyć , próbowałem na przycisku i ledach , może wróćmy do takiego opisu wiec mamy 4ledy (cewki zaplonowe) , maja one byc...
Witam Na optotriaku z detekcją przejścia nie da sie zrealizować regulacji fazowej swiatła (tzw sciemniacza ). Za pomocą tego optotriaka można zrealizować sterowanie grupowe lub łącznik bezstykowy Triak po załączeniu tak jak tyrystor przewodzi do momentu kiedy napięcie wynosi zero i sytuacja powtarza się dla drugiego kirunku przewodzenia tzn. dla 2 półfali...
Witam Ponieważ nie do końca odpowiadają mi podane rozwiązania, zacznę od tego co powinienem na początku podać - ossochosi :) Programuję w bascom. Buduję układ który ma zadziałać jak uproszczony ABS: 1. pomiar prędkości obrotowej każdego koła 2. porównanie tych prędkości 3. min. 10 razy na sekundę reakcja na utratę przyczepności Doszedłem do takiego...
uaktywnij przerwania i rozpocznij zliczanie timera i wyślij impuls na nadajnik, rozpocznij pętle i... koniec pętli. W obsłudze przerwania które wyzwoli powrót fali zrób takie coś, że ma zatrzymac timer sprawdzic jego stan, cos tam z tym stanem zrobic i wyzerowac timer. wysyłasz znowu impuls i rozpoczynasz timer i RETURN do loopa DO : LOOP i zmniejszyłbym...
Jak nie zliczam?? Przecież w rejestrze TCNT0 zapisywane są zliczane impulsy na wejściu T0...czy nie?
Tak myślałem, otałem sie o produkcje poligraficzną na maszynach offsetowych:D Główny problem to najniższa prękosc liczenia. Poza tym dość prosto, zewnętrzny kwarc jako podstawa czasu, wenętrzny ma za duże odchyłki. Timer 16-bitowy jako timer zliczający interwał czasu w którym odbywa się pomiar, drugi timer jako licznik impulsów z fototranzystora. Reszta...
Na AT90S8535 zrobiłem sobie licznik impulsów i elegancko zlicza. Zrbiłem to na dwa sposoby (poniższy kod) z wykorzystaniem jednego timera i bardziej dokładny z wykorzystaniem 2 Timerów. Najgorsze jest to że gdy wsadziłem ATmega8535 na lcd pojawia mi się zero tak jakby counter w ogóle nie zliczał impulsów. Zegar procków (7.372.800 Hz) ten sam. Co jest...
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
chcialbym zrobic urządzenie ktore mogloby byc sterowane innym. to pewnie duzo wam nie mowi, ale chodzi mi o to zeby mikrokontroler ATmega8 otrzymywał polecenie od np. kompaalbo innej atmegi i wykonywał pewne instrukcje. myslalem zeby zrobic to tak, ze atmega nie robiłaby nic (bo nie ma takiej potrzeby) az do momentu otrzymania przerwania. kolejnym krokiem...
Pozostaje ustawienie bitów COM. W zależności jak je ustawię mogę wykryć zgodność przy zliczaniu w górę lub w dół, zatem decyduje się na zgodność jak w góre COM1A1, COM1A0 = 11 Tu nie chodzi o zgodność, tylko o ustawianie i zerowanie wyjścia OCx. W jednym trybie jak wystąpi zgodność przy liczeniu w górę to pin OCx=1, a w drugim pin OCx=0, i vice versa...
Uruchom timer, koniecznie tak doliczony, żeby nie wprowadzać dodatkowych błędów ewentualnymi ułamkami w ilości impulsów na sekundę/minutę. Potem w przerwaniu zliczasz minuty/sekundy/cokolwiek i odmierzasz czas. Można też zastosować kwarc zegarkowy podłączony do pinów TOSC1/TOSC2 (XTAL) i z niego czerpać sygnał bardziej precyzyjny niż z normalnego sygnału...
Piszę w C program na atmega do komputerka podającego spalanie w samochodzie i mam problem z przerwaniami. Jednym przerwaniem będzie liczony impuls wtrysku a drugim zliczane impulsy drogi (zapomniałem dodać, że jest jeszcze przerwanie zliczające impulsy czasu rzeczywistego). Jeśli w danym momencie nastąpi otwarcie wtryskiwacza a chwilę później impuls...
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ę nowe przerwanie, będzie musiało czekać na zakończenie obecnej...
Ja proponuję rozwiązanie mikroprocesorowe. Wyświetlacz LCD 2x16 - 20zł, atmega8 - 5zł, kilka elementów i płytka jakieś 20zł. Kosz części jakieś 50zł albo i mniej jeśli ma się stare części. Do tego programik i nawijarka jak malowana. Dwa przyciski UP/DOWN do ustawienia liczby zwojów, jeden przycisk START. Wszystko prezentowane na wyświetlaczu LCD. Do...
zliczanie impulsów enkodera atmega zliczanie impulsów zliczanie impulsów assembler
odpowietrzenie pompki peugeot kontrolka partner chrysler voyager zasilania
mikrokomputer cobra1 układ zastępczy tyrystora
Błąd P1215 w Toyocie Previa D4D - silnik gaśnie po odpaleniu Naprawa rozszczelnionego tyłu kolumny Altus 200