Prototyp zrobiłem na pomiarze napięcia (ADC) na fotodiodzie - to chodziło, dopóki nie zacząłem testu na dworze.... Fotodioda łapała podczerwień z... no właśnie, skąd? Nie wiem. To oczywiste. Światło z otoczenia również zawiera podczerwień, więc pojawiają się zakłócenia. Po odłączeniu fotodiody i dotykaniu kabelkiem do + na wyświetlaczu także pokazywały...
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ę.
Musisz przestawić "Option Byte" dla tego pinu na funkcje alternatywną "TIM1_CH1": "AFR0 Alternate function remapping option 0(2) 0: AFR0 remapping option inactive: Default alternate functions(1) 1: Port C5 alternate function = TIM2_CH1; port C6 alternate function = TIM1_CH1; port C7 alternate function = TIM1_CH2." Możesz to zrobić programowo, jak również...
Sygnałem wyjściowym hallotrona jest napięcie. Tak więc przez 1/2 LM358 pracująca jako komparator i zasilona napięciem takim jak procesor. Ważna jest biegunowość napięcia wejściowego.
Która atmega? W atmega8 możesz użyć: Timer0 - odmierzanie czasu Timer1 - zliczanie impulsów Timer2 - PWM
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 Procesor jak w temacie. Podłączyłem sygnał zmienny (fala prostokątna) do obu nóżek PortB0 (T0) i PortB1 (T1). I okazuje się że licznik T1 działa (zlicza impulsy) zaś licznik T0 stoi. Czego może to być przyczyna? Spalona końcówka czy coś trzeba jeszcze ustawić? W dokumentacji jest, że na tej nóżce jest XCK od USART'a. Może mam to włączone? Ręce...
Czytam i sam się pogubiłem hehe . Czy tu chodzi o względne przesunięcie (tmf) czy bezwzględne (satanistik). Parę miesięcy temu robiłem sterowanie PID dla servo Xmega w bascom . [youtube]https://www.youtube.com/watch?v... Nie obyło się bez problemu , który polegał na zliczaniu bezwzględnym więcej niż 65535 impulsów . Mój wpis z innego...
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...
Mam prostokąt (PWM) na timer1. Czy zliczać Timer1 czy Timer0? Timer ma być ustawiony na time czy counter. Wydaje mi się że najlepiej byłoby ustawić na zliczanie impulsów czyli counter i po odliczeniu 59 zatrzymać Timer1 na czas 1 lub 2 impulsów. Wszystko OK ale nie udaje mi się to w praktyce. Albo nie generuje nic, albo nie zatrzymuje po odliczeniu....
OCnX to wyjścia, nie wejścia. Skoro nie możesz odblokować timera0 (bo T0 i T1 można taktować z zewnątrz) to są opcje takie: 1. Zastosowanie przerwań INT0 i INT1 z detekcją odpowiednich zbocz i zliczanie imp. w przerwaniach 2. Polling pinów z odpowiednią częstotliwością Poza tym jaka częstotliwość impulsów?
Czy wie ktoś jak uruchomić Timer1 na ATmega8535 aby zliczał impulsy? Wpisałem ten sam program jaki miałem na AT90S8535 i nic. Cały czas pokazuje mi zero. Pomocy ! $regfile = "m8535.DAT" $crystal = 7372800 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4 , E = Portc.0 , Rs = Portd.7 Config Timer1...
Właśnie mam już cały program gotowy w bascomie , nie umiem w tej chwili na tyle dobrze C żeby napisać obsługę PCF, dwóch DS18B20 plus MPX4115. Także chodzi właśnie mi tylko o rozwiązanie pomiaru ciśnienia co 5-10 minut. Ok doszedłem wkońcu jak to zrobić . [syntax=basic4gl] Config Pinb.1 = Input 'usatwiamy Portb.1 jako wejscie Set Portb.1 'ustawiamy...
Konfiguracja timera '51 jest inna : [syntax=basic4gl]Składnia: CONFIG TIMERx = COUNTER | TIMER , GATE = INTERNAL | EXTERNAL , MODE = 0 | 1 | 2 | 3 gdzie: x0 – TIMER0, 1 – TIMER1, Opis: TIMER0 i TIMER1 mogą pracować jako liczniki impulsów zewnętrznych gdy pierwszy parametr jest ustawiony jako COUNTER. Impulsy zliczane muszą być dostarczane...
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...
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...
I tylko timer1 ma możliwości zliczania impulsów z zewnątrz?
Ogarnąłem temat mniej/więcej tak: timer1 nabija licznik impulsami (po 10ms) do 60, licznik gdy osiągnie 60 wyłącza timer1 i włącza zmianę kierunku zliczania, znacznik1 dołącza do licznika timer2, który podaje impuls co sekundę przez co mam odliczanie wstecz, znacznik1 gdy wyłączony odłącza timer2 i zmianę kierunku zliczania i dołącza timer1, timer1...
Przedstawię Ci kolego przykład zastosowania Pulsein żebyś miał jaśniej. Myślę że będzie "rzeczowiej". To przykład dla dekodowania transmisji pilotów podczerwieni. Sygnał podłaczony jest do zewnetrznego przerwania INTx i w momencie zmiany na pinie program skacze do tej procedury. Mierzy impuls i poddaje rozwadze jego długość. [syntax=basic4gl]Int_1isr:...
A jeszcze jedno pytanie, jaki impulsy zliczasz? z czego? jakie parametry ma impuls, czas trwania impulsu?
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 :...
Witam! Buduję (na razie wersja teoretyczna) system sterowania 2 silnikami DC z programową regulacją PID. W systemie jest uC ATMega8535. Musze zliczac impulsy z 2 fotokomorek i problem polega na tym, iż Timer1 uzywam do 2-kanalowego PWM, Timer2 jako zegar do odmierzania okresu dyskretyzacji dla PID (0.01s). Pozostał Timer0, który niestety ma tylko jedno...
Witam Czy ktoś ma jakiś pomysł jak programowo zliczać impulsy timerem0 większe od 256 ? Timer1 chciałem wykorzystać jako PWM więc on odpada. Pozostaje timer0 ale on zlicza tylko do 256, a ja potrzebuję zliczyć do 390. Jak to zrobić programowo, żeby jak counter0 się zwiększy o 1, to żeby zwiększył jakąś zmienną o jeden. W ten sposób mógłbym zliczać większą...
Witam, potrzebuje prostego programu który zliczy ile razy na sekundę wciskany jest przycisk. Np na jednym z portów pojawi się 0 kiedy przycisk zostanie wciśnięty, program ma zliczyć ilość impulsów przez sekundę i zwrócić daną do zmiennej. Proszę o pomoc lub podpowiedź. Niestety jestem początkujący i niezbyt rozumiem Liczniki-Czasomierze Timer0 i Timer1....
Może faktycznie szum nałożony na zbocze jest tu przyczyną wielokrotnego wywołania przerwania przy jednym impulsie. W poniedziałek przyjrzę się dokładniej temu zboczu i spróbuje coś zaradzić. Ale z drugiej strony gdyby tak było, to dlaczego impulsy zliczane są prawidłowo wtedy gdy program okrojony jest do minimum? Jaka jest szerokość impulsu? Maksymalna...
temat rozwiązałemprzy pomocy kolegi Dr_DEAD ,zastosowałem Timer1 do zliczania impulsów i wszystko chodzi jak nalezy, sprawdzałem do 1000obr, więc dzięki wszystkim za pomoc B.
A gdzie instrukcja CONFIG TIMER1 = COUNTER?
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....
Dzięki, widze teraz, że jednak troszke namieszałem ustawiając Timer2 ;) Nie wiem tylko dlaczego Bascom przepuścił moją konfiguracje Timer2. W pierwszej wersji programu, która była bez wykorzystania PWM (poprzez Timer2), program odliczał czas (Timer1), zliczał impulsy na Timer0 i migał diodą. W związku z tym pętla w programie głównym była pusta (Do-Loop)....
Witam muszę zaprogramować atmega8 tym kodem. Niestety on jest dla attiny. jak go konwertować do "*.bin" dla atmegi8 Jak mogę to wykonać? [syntax=basic4gl]$crystal = 4000000 $regfile "attiny2313.dat" ' Miernik prędkoci obrotowej 'licznikiem 0...65535 jest Timer1 Dim Wynik As Long Config Timer1 = Counter , Edge = Rising 'konfiguracja Timera do zliczania...
. 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, robię obrotomierz na atmega8. Przy niskich obrotach układ działa raczej dobrze, ale kiedy dodaję gazu to na wyświetlaczu pojawiają się krzaczki. Kiedy obroty znowu spadają układ działa poprawnie. Mam kondensator 100n i 2200uf przy procku. Kabel owinięty wokół przewodu WN idzie do timer1 procesora, podłączony bezpośrednio. Czego mi brakuje w układzie?...
pubus - Wykorzystałem Twój kod, i liczy nawet. Tylko niestety nie to, co trzeba :D Czyli na timerze 2 generuję przerwania co 10ms, a na INT2 zliczam impulsy ze skrzyni. Timer1 miał liczyć czas wtrysku, czyli sygnał narazie z generatora podłączyłem pod nóżkę PD5 (OC1A). No i nic nie liczyło, ale jeśli sygnał podłączyłem pod wejście zliczania impulsów...
Siemka, ostatnio chciałem sobie podłączyć obrotomierz do skutera ale zobaczywszy ceny na allegro postanowiłem zmontować taki obrotomierz sam. Jako ze bawiłem sie juz w arduino itp i miałem pare czesci to zamowilem tylko uC atmega8 bo reszte komponentów miałem. Złożyłem jakoś ten procesor podłączyłem do Timera1 kabel owiniety w okół kabla WN ok 10-12...
Nie masz nigdzie obsługi przerwania: TIMER1_OVF_vect ......... INT0_vect liczba-- ...... W TIMER1_OVF_vect możesz choćby ustawić flagę. P.S. Drgania kontaktronu wygaszają się w czasie 100us. Przynajmniej tego który sprawdzam właśnie.
zmieniłem kod programu: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include "hd44780.h" #include "stdlib.h" char Buffer[20]; int TCNT0_WART=0; volatile unsigned long imp_curr=0; volatile unsigned long imp_prev=0; uint32_t displ=0; int main(void) { //TCCR0 |=(1<<CS00)|(1<<CS01)|(1<...
Kod programu jest wyżej, ale podam jeszcze raz (tak jaki jest u mnie): $regfile = "attiny2313def.dat" 'attiny2313 $crystal = 1000000 ' 1MHz Config Portb = Output Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.0 , Rs = Portb.2 Config Lcd = 16 * 2 'wyświetlacz 2 linie po 16 znaków Cursor Off 'wyłączenie...
A jak ustawić zliczanie z wejścia T1 (PB1) ? Dla Timer1=Counter itd, zawartość się nie zmienia (mimo Start Timer1) i podanych impulsów na T1.
Widzę,że nie ma zainteresowania tematem. A mnie na razie udało się stworzyć układ na Attiny2313. Config Portb.0 = 1 ' ustawienie całego Portu B0 jako wyjścia Portb.0 = 1 ' stan spoczynkowy Portu B0 ustawiony na 1 Config Portb.1 = 1 ' ustawienie całego Portu B1 jako wyjścia Portb.1 = 1 ' stan spoczynkowy Portu B1 ustawiony na 1 Config Timer0 = Counter...
hunterhouse W AVR-ach sprzętowo można zatrzasnąć zawartość timera , ale uruchomić zliczanie trzeba programowo.Natomiast w 51-ce można uruchomić i zatrzymać timer sprzętowo.Jeśli na P3.3 jest stan wysoki i flaga GATE timera1 jest ustawiona , to timer zlicza doputy , dopuki stan na P3.3 nie zmieni się na niski.Problem jest tylko z tym , że Charly chce...
Witam, buduje obrotomierz oparty o czujnik hala, Proszę o sprawdzenie programu do tego schematu. I o wszelkie wskazówki co można by było zmienić. Mam jeszcze pytanie jak w programie bascom ustawić up żeby chodził na zewnętrznym kwarcu 8Mhz? [syntax=basic4gl] $crystal = 4000000 $regfile "attiny2313.dat" Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2...
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...
Nie mogę zamienić funkcjonalności gdyż jak pisałem wcześniej timer1 używam do pomiarów impulsów bo tylko tam jest licznik T1. Timer0 posiada wejście do zliczania impulsów. Patrz dokumentacja schemat Timer0. Opisz może dokładniej jak wykorzystujesz Timer0 i Timer1.
Przepraszam za dłuższą nieobecność. Nie mając nic nowego (i mądrego) nie pisałem. Ale w międzyczasie polutowałem zestaw startowy, a ostatnio napisałem inny program, który umożliwia (w zamyśle) liczenie dokładniej częstotliwości dla "paczki" impulsów, tym razem około 500 Hz. Wiem, że to dosyć skomplikowany tok myślenia, pewnie można to zrobić prościej,...
idea działania multipleksowanego wyświetlacza jest następująca: najpierw wygaszacz wszystkie segmenty (p1 = 255) i tranzystory, potem ustalasz odpowiednią kombinację segmentów (p1 = xxx) a na końcu włączasz odpowiedni tranzystor i tak przy każdej cyfrze najlepiej taką procedurkę zrobić sobie w przerwaniu timera1 przykład.... hmm: (napiszę tak na szybko)...
Witam. Napisałem poniższy program do generowanie impulsów o różnej częstotliwości . Zauważyłem jednak, że przy szybkim zwiększaniu częstotliwości timer1 tak jakby się zacinał na okres około 1s i potem wszystko jest ok. Prośba o informację czy ktoś spotkał się z podobnym zjawiskiem. Regulacja częstotliwości polega na zmianie wartości rejestru ORC1A (rejestr...
Banalne zadanie. A więc włączasz licznik(lepiej TIMER1-większa pojemność), tak, aby odliczał ci te 10sekund. Dajesz zmienną którą zwiększasz np co 1sekunde (zmienna o nazwie sekundy). W czasie odliczania do 10s w pętli głównej zliczasz impulsy przycisku i zwiększasz je w innej zmiennej (np. impulsy). Po 10 sekundach w zmiennej sekundy będzie10s a w...
1) nie ten dział 2) Timer1 z preskalerem przez 1024 i zliczać 9766 impulsów, wtedy na jedno przeładowanie masz 1 sekundę, lub, 977 impulsów -> wtedy na jedno przeładowanie masz 0,10005s ;) Ew. zmniejszyć preskaler i dobrać jeszcze raz;) 3) Kod Sobie napisze kolega Sam. Jeśli chce kolega gotowca jest inny dział -> bazar podzespoły. 4) 5V, 3,3V nie ma...
1. W jakim języku piszesz? 2. Kalkuluje się to tak: Masz kwarc 16 000 000 Hz (16 MHz) i dajesz sobie jeden z dopuszczonych prescalerów, np. 64 i wtedy timer zlicza Ci impulsy z częstotliwością 16 000 000 / 64 = 250 000 Hz, czyli jeden impuls timera to 4*10^-6 s lub inaczej aby odmierzyć 1s musisz zliczyć 250 000 impulsów, Jako, że Timer0 jest 8 bitowy...
Timer1 wykorzystujesz do zliczania impulsów (wejście T1) a timer2 w trybie asynchronicznym z kwarcem zegarkowym odlicza czas... Musisz znać obwód koła... Potem to już prosto... Przeliczasz ilość obrotów w danym czasie na drogę i wyliczasz prędkość... Rejestry konfiguracji poszczególnych timer'ów są opisane w dokumentacji...
Maksymalna częstotliwość jaka mnie interesuje jest uzyskiwana przy OCR1A = 19. Generalnie wszystko mi działa i to całkiem przyzwoicie, ale muszę zliczać wygenerowane impulsy. Myślałem już nawet o jakimś zewnętrznym liczniku - w postaci układu TTL którego wyjścia będę sobie odczytywał w pętli głównej. To już oczywiście abstrakcja.
Witam, Piszę program do atmega8 i mam problem z ustawieniem Timer1. Dopiero zaczynam programować więc proszę o wyrozumiałość. Chciałbym ustawić tak timer1 aby zaczął liczyć czas od pojawienia się na portd.3 pierwszego impulsu do drugiego impulsu, zapisał wartość do zmiennej, wyzerował się i zaczął zliczać czas od drugiego do trzeciego impulsu zapisał...
........ chce wykorzystać wewnętrzny kwarc 8Mhz po trzecie czytając helpa jesli dobrze rozumiem to timer1 jest 16bitowy a timer0 jest 8 bitowy emarcus - gdybym chciał wykorzystać twój pomysł to gdybym zostawil timer1 jako counter a jako timer wykorzystał timer0 ktory by zliczał czas w jakim sa zbierane impulsy - jeśli o to ci chodziło i jeśli jest...
Problem polega na tym, aby pomierzyć ilość impulsów jaka upływa pomiędzy kolejnymi pomiarami czujnika. Chodzi o to żeby timer1 zliczający impulsy po wykonaniu pomiaru przez czujnika wyświetlał ich ilość, a następnie zliczał kolejne impulsy upływające do wykonania 2 pomiaru itd. Zamiast czasu podawać na monitor zliczone impulsy pomiędzy kolejnymi pomiarami....
Witam. Jestem początkujący i programuje w Bascom. Ogarniam już tematykę pomiaru prędkości obrotowych wałów i trochę już przećwiczyłem. Napisałem już działające programy mierzące prędkość obrotową wału przy pomocy pomiaru ilości impulsów w czasie, oraz metodą pomiaru okresu impulsów prostokątnych, generowanych przez czujniki indukcyjne, lub fotooptyczne....
Cześć, mam pytanie odnośnie Timerów w uC ATmega. Potrzebuję następujących opcji: - zliczanie impulsów z dwóch enkoderów - generowanie dwóch przebiegów PWM - generowanie przerwania co kilka ms. W ATmedze 32 mam 2 timery 8-bitowe i 1 16-bitowy. Wymyśliłem tak, że za pomocą timerów 0 i 2, zliczam impulsy. I teraz pierwsze pytanie: czy da się zliczać impulsy...
Zauważ, że zanim program ponownie wejdzie w warunki to LCD + WAITMS zabierze tyle czasu, że impuls już dawno przejdzie, a program dopiero zacznie wykrywać jego zakończenie. Ponadto użycie w poleceniu CONFIG TIMER1 opcji PRESCALE od razu włącza zliczanie. Wykorzystaj przerwania INT0 wyzwalane zboczem opadającym i tam podłącz sygnał mierzony. Będzie o...
też niedawno zacząłem zabawę z uP ale naskrobałem coś takiego, jeśli źle, to mnie poprawcie. $regfile = "attiny2313def.dat" 'attiny2313 $crystal = 1000000 ' 1MHz Config Portb = Output Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.0 , Rs = Portb.2 Config Lcd = 16 * 2 'wyświetlacz 2 linie po...
czesc mam taki projekcik obrotomierza. program wyglada tak: $crystal = 4000000 $regfile "m8def.dat" Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pb.2 , Db5 = Pb.3 , Db6 = Pb.4 , Db7 = Pb.5 , E = Pb.1 , Rs = Pb.0 Set Portd.2 ' Miernik prędkości obrotowej 'licznikiem 0...65535 jest Timer1 Dim Wynik As Long Config Timer1 = Counter...
Wielkie dzięki za odpowiedzi , rozwialiście mój problem całkowicie Więc teraz zrobie tak że timer1 będzie zliczał impulsy timer2 będzie korzystał z kwarcu zegarkowego, a timer0 będzie skonfigurowany przez funkcje Config Servos. Tadam A z moimi liczbami chodziło mi o to że w kodzie jeżeli timer zmierzył więcej niż 256 impulsów to inkrementowałem zmienną...
Witam. Mam problem z przerwaniami w atmega8. Wcześniej nie potrzebowałem przerwań więc to zagadnienie mnie nie interesowało. Potrzebuję wywołać przerwanie zewnętrzne int0 które uruchomi timer1, a ten zacznie odmierzać czas. Napisałem coś takiego (oczywiście to część z większego projektu) '$sim $regfile = "m8def.dat" 'informuje kompilator o...
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...
W zasadzie wg mnie też wszystko wygląda ok. Ale tak z ciekawości, zakładam, że impulsy (CZUJNIK) będą przychodziły na INT0, czyli będą wywoływały przerwanie? Jeśli tak, to może lepiej byłoby do tego celu zastosować np Timer1 w trybie zliczania impulsów zewnętrznych z wejścia PD5(T1) z włączoną opcją CTC-clear timer on cmpare match? Ustawienia rejestrów...
Po komendzie Stop Timer1 należy odczytać ilość zliczonych impulsów zegarowych przypisując jakiejś zmiennej (typu Word, np Timer_val) jego wartość: Dim Timer_val As Word ... Timer_val=Timer1 lub Timer_val=Counter1 a następnie wyzerować rejestry timera, przygotowując go do zliczania od nowa: Timer1=0
Tutorial do avr taki znalazłem: http://avr.elektroda.eu/?q=node/8 Jak byś czegoś w sieci szukał, to raczej unikaj tutoriala z patron.net, uczy złych nawyków i jest nieco nie na czasie. Pomiar częstotliwośći na AVR realizuje się w miarę łatwo, przy wykorzystaniu timerów, jeden timer pracuje jako licznik impulsów z zewnątrz, a drugi odmierza czas, mozna...
Przy tak niskiej częstotliwości impulsów lepiej nie zliczać impulsy w czasie, lecz użyć zewnętrznego przebiegu do bramkowania licznika, który zlicza impulsy ze swojego zegara o dużej częstotliwości. Dzięki temu dostaniesz informację o liczbie taktów zegara referencyjnego przypadających na okres sygnału zewnętrznego. Umożliwia to dokonanie pomiaru w...
Do Pawelj Nie będę wnikał co jest lepsze pomiar prądu czy też inne rozwiązania ale odpowiem Ci wprost na twoje pytanie dotyczące zliczania impulsów. Sygnały z impulsatorów podłącz pod 1 i 2 nogę Atmegi16 są to wejścia zliczające liczników Timer0 i Timer1 Skonfiguruj timery Config TimerX = Counter , Edge = Rising lub Config TimerX = Counter , Edge =...
Tu masz program pod ATtiny2313, jeśli potrafisz programować, to też potrafisz przerobić program na ATMegę: [syntax=basic4gl]' Bardzo prosty zegar bez możliwości ustawiania Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte Dim , Godzjed As Byte , Godzdzies As Byte , Mux As Byte , Migaj As Bit Config Portb = 255 : Portb = &B255...
Witam. Mój wtrysk w samochodzie jest załanczany poprzez mase. Jak skonfigurować Timer żeby zliczał czas załączenia masy. Z tego co pamiętam to gdy podamy mase na Timer1 to zlicza impulsy dopóki nie wystąpi stan wysoki. Jak skonfigurować w bascomie żeby tak pracował???
Uruchomiłem wszystko zgodnie z tym ale nie wskazuje wyniku gdzie jest błąd Sygnał z generatora na razie podaje na pin D7 $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcd = 16 * 2 Dim Wynik As Long Config Timer1 = Counter , Edge...
Opis Zbigniewa Gibka: Instrukcja LOAD Przeznaczenie: Powoduje wpisanie wartości do rejestru licznika. Składnia: LOAD licznik , wartość gdzie liczniknazwa licznika; może być: TIMER0, TIMER1 lub TIMER2, wartośćliczba potrzebnych impulsów. Opis: Instrukcja powoduje wpisanie do licznika określonej liczby zliczanych impulsów. Przed załadowaniem wartości...
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...
Mogę oczywiście i tak jest, zobacz foto. To jest marker startu. Ustawiam na nim początek, przyciskam reset w liczniku i naciskam przycisk start. Rusza napęd i zliczanie z enkodera od zera. Licznik zlicza i zatrzymuje na wymiarze, timer1 odlicza 200 ms do ustabilizowania papieru i całkowitego wyhamowania napędu żeby papier w ruchu nie wlazł pod noz i...
Więc tak... Poprawiłem zliczanie w Timer1, gdyż rzeczywiście było błędne. Z kolegą Artur źle się znowu zrozumielismy w jednej rzeczy. Dioda PortLED służy tylko jako sygnalizacja pracy Timera!, tak żebym mógł sprawdzić czy działa poprawnie. Teraz już działa poprawnie. Docelowo ma być tak, że mierzy okres 1s, jednakże dla testów ustawiłem w tej chwili...
Timer- np. Timer1- jako licznik zlicza impulsy zewnętrzne. Podane na odpowiednią końcówkę- T1 w wypadku ATmega8. Nie potrzebuje żadnego preskalera- bo preskaler dzieli impulsy z zegara- a tu nie ma co dzielić. Ustawiamy bity CS10-CS12 na external clock source- falling lub rising. Czy ustawiamy końcówkę T1 jako wejście- nie pamietam. Można ustawić. Ilość...
Witam chce użyć procesora AT90S2313 do sterowania szybkości silnika. I chyba najlepiej do tego będzie nadawał się licznik timer1 skonfigurowany, jako PWM. Czytałem o tym w pomocy, ale jakoś niewiele mi to gada:( z jakiego pinu będą wychodzić te impulsy??? Z T1(PD5) czy OC1(PB3) czy jeśli wpisze te „dosconnet” to wyjściem biedzie T1 a jeśli...
Podam na AT89C2051, ale to jest to samo, trochę inne liczby tylko $regfile = "89c2051.DAT" $crystal = 12000000 Dim T1ov As Word , Cnt1 As Word On Timer1 T1_int Nosave Enable Interrupts Enable Timer1 Impuls Alias P3.5 'tu podłączamy impulsy wtryskiwacza Dim Liczba As Long Cursor Off Noblink Cls '***************Pomiar czasu trwania impulsu ujemnego...
Witam, Próbuje zrobić częstotliwościomierz i napisałem taki programik: #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <avr/interrupt.h> #include "lcd.h" float f,licznik; int t; char bufor1[10],bufor2[10]; SIGNAL (SIG_INPUT_CAPTURE1) { licznik=TCNT1; } SIGNAL...
ok. Sytuacja taka: Kod nieładny ale tylko dla przykładu. Właśnie doczytałem że DMD używa timera1 dlatego zmieniłem na 3 i działa :) Timer1 ma zliczać tylko impulsy tzn różnice czasu między zboczami opadającymi w przebiegu. Dzięki za pomoc. Ta funkcja była na szybko pisana. Oczywiście docelowo będzie tylko print wywoływany.
margas4542 zaopatrz się w program TimerCycles ze tej strony: http://www.wkretak.pl/downloads.php?cat_... Dzięki temu obliczysz liczbę cykli czyli to co zapisuję się do rejestru OCR1A. Jeśli chodzi o timery to po pierwsze preskaler(czyli część obwodu timera który dzieli impuls zegarowy tj. zmienia rozdzielczość timera) jest ustawiony na 1 mówi o tym...
1. Pierwsza moja płytka. W eaglu nie mogłem się odnaleźć (elementy). Załączam schemat. Pijopic, jak możesz, to zrób mi wzór płytki. Jakbyś się już bawił, to dorzuć jeszcze kwarc, ok? 2. Jabel J-91 wygląda dość ciekawie. Ten układ dostosowujący myślę, że będzie dobry. Dobrze myślę? Znalazłem taki kod: $crystal = 4000000 $regfile "m8def.dat"...
ok zrobilem cos takiego , wyjasnie jeszcze zasade dzialania mamy dwa sygnaly z silnika 1. sygnal zaplonu ( 4 impulsy na cykl pracy) 2 sygnal pierwszego cylindra ( jeden impuls na cykl pracy , pomiedzy impulsami zaplonu) program dziala tak ze zeruje licznik za kazdym razem wystapienia sygnalu 1cylindra , nastepnie przy kazdorazowym sygnale zaplonu ,...
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 kolegów mam taki problem potrzebuje programu do mierzenia prędkości obrotowej silnika. Idea pomiaru jest znana, wykorzystywany jest do tego transoptor obiciowy. Ale to nie jest celem mojego wywodu. Potrzebuje krótkiego pomiaru obrotów zbudowanego na licznikach. Oscylator zewnętrzny 8MHz. Układ już wykorzystuje globane przerwania pochądzące od...
Witam Sygnał R/W daj na stałe do masy, dorzuć elektrolity przy stabilizatorze. Zamiast: SIGNAL (SIG_INTERRUPT0) { //otrzymalem sygnal ustawiam na porcie PA0 stan niski PORTA = 0x01; //po 10ms przestaw na stan wysoki waitms(10); PORTA = 0x11; } Bo nadpisujesz cały port, zamiast ustawić tylko to co Cię interesuje Bardziej czytelnie:...
Hmm, moim zdaniem gdzieś jest zmienna 8 bitowa (Byte) musisz zmienić ją na większy typ. np. Word, Long. zmienna word Dodano po 1 A czy trzeba konfigurować port Config Pinb.0 = Input Set Portb.0 pod counter0 atmega 32 Dodano po 11 [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 8 $framesize = 24 Config Lcd = 16...
Freddie Chopin -> dzięki ponownie za uwagi, niestety oscyloskop jest zwykły nalogowy :( a te kreseczki i cyferki to już tak dorysowałem w kompie... więc nie jestem w stanie sprawdzić tych czasów impulsów - natomoast co do nośnej to jestem pewien na 10000% że jest dobra. Zresztą próbowałem z różnymi nośnymi od 34kHz do 40kHz ale to nie ma znaczenia....
A jak programowo rozwiązać taką kwestję: Zasilanie sieciowe -> timer1 zlicza impulsy 100Hz i generuje przerwanie, na jakis port dajemy Vcc do detekcji sieci Brak sieci -> przerwanie generuje timer2, z odpowiednio dopasowanym prescalerem i wartością w pisaną do counter2?
kamyczek: Coś chyba niedokładnie odrobiłeś zadanie domowe... Co z tego, że wystąpią równocześnie? Po prostu najpierw będzie obsłużone to o wyzszym priorytecie (T0), a potem te i niższym. Zresztą co ma obsługa przerwań do ilości zliczonych przez tajmer impulsów? Co podmiot liryczny ma na myśli: "..włączanie obu liczników równocześnie i to z wielokrotną...
Witam. Nie istotne jest co wpiszę w: Load Timer1 , 250 czy też Load Timer1 , 65000 liczy tak samo. Dodatkowo stosując prescaler nawet 8 uzyskam częstotliwość blisko 20Hz czyli chyba nie bardzo jak pracę diody. P.s proponuje zerknąć do helpa:) Opis: Instrukcja powoduje wpisanie do licznika określonej liczby zliczanych impulsów. Przed załadowaniem wartości...
Problem z zliczaniem impulsów rozwiązany ale mam nowy problem z wyświetlaniem wyniku zdjęcia w załączniku. $regfile = "2313def.dat" $crystal = 8000000 Config Timer0 = Counter , Edge = Falling Config Timer1 = Timer , Prescale = 256 Load Timer1 , 31256 Config Portd.4 = Input Set Portd.4 Dim Dr As Single Dim Licz As Byte Dim D1 As Single Dim...
... a według mnie masz w programie jeden podstawowy błąd Timer aby był aktywny musi zostać użyte jego wyjście Q. Masz na poniższym zrzucie sytuację gdzie Q bloczka 'timer1' jest wykorzystane, a wyjście Q bloczka 'timer2' jest jeszcze nie wykorzystane. W tym drugim przypadku 'timer2' nie zostanie aktywowany, czyli nie będzie zliczał czasu. https://obrazki.elektroda.pl/5434229300_...
Daj jakiś schemat. Bo już nic z tego nie rozumiem. Co ma wyzwolić opóźnienie? Bo Timer1= counter zlicza impulsy z PD.5. Czy na tę końcówkę podajesz impulsy jakieś?
Odświerzę trochę temat. Ja konkretnie muszę w miarę precyzyjnie zmierzyć prędkość obrotową w możliwie krótkim czasie. prędkość w zakresie 750-6500 obr/min. Dysponuje tarczą 25 nacięć na obrót i fotokomórką szczelinową która daje ttl na wyjściu. Puki co ttl generuje z generatora ne555 by uniknąć błędów pomiarów związanych ze stroną mechaniczną systemu....
OK pytanie poprawiam :) nie miałem na myśli żle działającego procesora tylko mój program oczywiście. jesli w bascomie to będzie działać to nie będę kombinował dalej zmostkowałem wejścia INT0 i T1 bo to jest ten sam impuls z wyjścia A enkodera, enkoder chodzi dobrze, ale obroty są liczone źle, dobrze są liczone jeśli obraca sie bardzo powoli. Przerwania...
Miałem wrzucić wczoraj moje bazgroły ale na symulatorze zatrzymywał się na pętli 1s dlatego wrzuciłem program w procek aby sprawdzić jak naprawdę to działa. Gdzieś coś namieszałem z komparatorem bo nie reaguje na zmianę oświetlenia. Teraz nie wiem czy to wina programu czy też elektroniki chociaż jak sprawdzałem napięcia to reakcja jest prawidłowa. Zmieniłem...
Witam. Piszę obsługę czujnika koloru tcs3200.[url=http://www.dfrobot.com/imag... W moim kodzie timer0 ma za zadanie zliczać sygnały wysyłane przez czujnik, a timer1 w trybie CTC generować przerwania co 0,1s (narazie prototyp korzysta z oscylatora wewnętrznego, więc te 0,1 to przybliżenie) po przerwaniu następuje...
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...
Witam Potrzebuję oprogramować w najprostrzy sposób Attiny2313 i z [url=http://www.cyfronika.com.pl/kityavt... kodu zostawiłem tylko sam licznik impulsów bo nie potrzebuję wyświetlacza, ale nie wiem co dalej bo potrzebuję wiedzieć ile impulsów na sekundę będzie odpowiadało np prędkości 5km/h. Zliczanie nie musi być dokładne gdyż nie...
zliczać impuls układ zliczać impuls zliczać impuls cewka
instalacja sterownik ubuntu taryfy tauron rozdrabniarka gałąź
vectra połaczenie przewijanie silnika
Usterki grzejnika na podczerwień Cronos CR-500 Cronos CR-500: Migająca lampka i brak reakcji