Robi się to prosto na wejściu ICP Atmegi, mierzysz czas pomiędzy kolejnymi zboczami, raz jest opadające, raz narastające itd.. potem to tylko interpretacja wyników, liczenie bitów i po odliczeniu 64 bitów z transmitowanych 66, bo dwa ostatnie dla uproszczenia procedury pomijasz. wyświetlasz na LCD lub wysyłasz po RS232 do komputera, a tam wyświetlasz...
Proszę postępuj zgodnie ze schematem użytkowym, który załączyłem (post #4 21 Lip 2015 21:39). Tam jest przedstawione gotowe rozwiazanie. Zacisk 21 podłączasz do masy, zaś zacisk 20 do GPIO. Stanem aktywnym jest zwarcie pinu GPIO do masy. Następuje to w momencie pojawienia się impulsu (dokładnie w momencie kiedy na ORNO mrugnie dioda). Dalsza procedura...
Mój help od bascoma twierdzi że np. : Config Timer1 = Counter , Edge = Rising , Noise Cancel = 1 , Capture Edge = Rising , Compare A = Disconnect , Compare B = Disconnect , Clear Timer = 0 A twój help gdzie jest ? ;)
Takie coś ?? [syntax=vbnet]config timer1 = timer , prescale =64 , capture edge = falling , noise chanel = 1 Dim czas_otwarcia as Word Dim czestotliwosc as word On capture1 wtrysk Enable capture1 Enable interrupts Config pind.6 = input Do Print czestotliwosc Print czas_otwarcia Loop Wtrysk: Czas_otwarcia = capture1 Czestotliwosc = timer1 Timer1 = 0 Return[/syntax]...
Oto mój program (atinny2313, zegar 8 mHz). Dodatkowo obsługa pilota sony: Dim Moc As Word Dim Table As Word Dim Ready As Byte Dim Code As Word Dim Period As Word Dim Command As Long Dim Bitcount As Byte Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Timer , Prescale = 256 , Capture Edge = Rising , Compare A No_output = Disconnect Config Int0...
... tak naprawdę ma to być obrotomierz do motocykla . ... Priorytetem jest bardzo szybka reakcja wyniku .... Zastanów się czy nie warto wykorzystać w tym procesorze Timera pracującego w trybie Capture Mode: http://obrazki.elektroda.pl/4130623300_1... Znajdziesz w nim dodatkowo wbudowany układ redukujący szumy sygnału wejściowego oraz...
Pracuję nad odczytem ramki z ALPINE M-BUS i wysyłaniu do Terminala po RS232 Temat był kiedyś poruszany.Ogólnie M-BUS pracuje na zasadzie PWM ,tzn, 0 i 1 są transmitowane z różną szerokościa impulsów . Joerg Hohensohn zrobił już coś takiego w języku C. www.jevinskie.com/mbus/ Chce zrobic tosamo w bascomie. Docelowo ma być pózniej emu zmieniarki na module...
Z noty katalogowej ATmega8515 (pierwsza strona): • Peripheral Features – One 8-bit Timer/Counter with Separate Prescaler and Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Three PWM Channels – Programmable Serial USART – Master/Slave SPI Serial Interface – Programmable...
Tak jak piszesz. Żyroskop podaje sygnał sterujący serwem. Czyli jest to sygnał prostokątny. Gdzie dla neutralnej pozycji serwa co 20 ms występuje impuls o czasie trwania 1,5ms. Dla maksymalnego odchylenia serwa w lewo impuls ten skraca się do 1ms. A dla maksymalnego wychylenia w prawo - wydłuża do 2ms. Po opisie żyroskopu, można wywnioskować iż odchylenie...
Mam problem z przerwaniami, a raczej z pewną różnicą w budowie Atmega8 i Atmega32, a mianowicie mam program, który działa prawidłowo na Atmega8 poniżej fragment http://obrazki.elektroda.pl/7547240700_1... Jakaś sugestia/pomoc?
Witam. Zrobiłem sterownik z ATmega8 do sterowania dwoma serwomechanizmami za pomocą pilota RC5. Program napisałem w Bascomie. Jeśli chodzi o zasadę działania serwa to w jednym z opisów znalazłem, że co 20ms należy podać stan wysoki o odpowiedniej szerokości (czyli częstotliwość jest stała). W Bascomie do obsługi serwa wykorzystywany jest 8-bitowy Timer0....
Jak dam dword to kompilator wywala mi blad niechce sie skompilowac...dlatego dawalem word i moze przez to niedzialalo. Pozniej sprubuje tylko na zaplonie pobujac i sprawdzic. Ale dziwne bo nawdr gdyby tam raz na jakis czas spadlo do 4L to srednia nie wyszla by 4L. Musialo by byc przez 10 pomiarow okolo 4L. Wrzuce tez pelny kod bo teraz pisze z kom....
Witam. Mam problem z dekoderm wywołania w systemie "5-tone", tony dekoduje poprawnie i wyświetla poprawnie, niestety próba wysłania ich przez UART nie jest zadowalająca. Jak widać program wykonuję "w pętli" wypisywanie odebranych znaków, czego wynikiem jest np dla kodu 12345: 1 12 1234 12345 Czy da się przerobić tak program aby na UART wysłać zmienną...
Z listingu programu nie mozna doszukac sie jaka metode przyjmujesz w pomiarze RPM. Ja jakoś się doszukałem. A nie, sory. Nawet doszukiwać się nie musiałem. Liczy okres pomiędzy impulsami. Ale przerwanie to powinno wyglądać tak: Przerwanie: Zmienna = Timer1 Timer1 = 0 Wynik = 7500000 / Zmienna Return Preskaler Timera ustaw na 64. A: Capture Edge...
Ten sam kod, który zaprezentowałem w pierwszym poście , natomiast przerwanie wywołane już na nodze portb.0 i działa zmienna nie jest nadpisywana. Cała reszta kodu bez zmian poza zmianą przerwania. Przerwania skonfigurowane prawidłowo. Moze przerwania masz skonfigurowane prawidlowo... ale..... Czy mozesz wyjasnic w jakim celu, w obsludze przerwania...
Najpierw musisz zdekodować warstwę fizyczną - czyli musisz mierzyć impulsy. Najlepiej by było, gdybyś to zrobił na timerze capture, mierzysz czas odstepu miedzy zboczami, i tyle... Kazdy bit po bicie wpychasz do fifo... w petli głównej masz pętlę która rozbiera tą kolejkę, i zamienia bitstream na ramki. Takie ktore mają zdefiniowany początek i koniec,...
Tak wiem że należy odpalić timer na początku i zatrzymać na końcu i odczytać jego wartość.. no nic. Dziękuję za wypowiedzi tak czy inaczej.. Odp. kol. Draco była troche sarkastyczna, bo na tak prostą procedurę nikt, kto ma choć troche rozeznania w tej dziedzinie chyba (!) nie szuka pomocy. Mopzesz to zrobić na kilka sposobów: 1. mierzyc czas metodą...
Potrzebuję pomocy przy zamianie kodu "RFID Reader", tzn. żeby zamiast wyświetlania kodu karty na LCD uzyskiwać odpowiedni poziom na wyjściu 1z10 i czy jest to możliwe do zrealizowania na atmega8? Chciałbym użyć 8 ostatnich cyfr kodu karty. Posłużyłem się gotowcem, który był już na elektrodzie (dopiero uczę się bascoma i nie wiem jak się do tego zabrać):...
Witam. this sample receives RC5 on the background. it will not block your code like getrc5 ' it requires a 16 bit timer with input capture. you can not use the timer yourself. ' some processors have multiple 16 bit timers. Config Rc5 = Pinb.0 , Timer = 1 , Mode = Background ' ^--- background interrupt mode ' ^--- this must be a 16 bit timer ' ^----...
Generalnie, W Bascomie obsługa RC5 pozostawia wiele do życzenia dlatego też Mark w najnowszej wersji ma wprowadzić obsługę RC5 na przerwaniu ICP ("prawdziwie" w tle) według poniższego kodu, który udostępniam i polecam: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Timer1 = Timer , Capture Edge = Falling , Prescale = 8 '1 tick= 1...
Stare przysłowie pszczół: żadnego oczekiwania w obsłudze przerwania! Mierz timerem czasy trwania stanów 0 i 1, jak to sugerują Koledzy. Testowanie programowe w przerwaniu timera zgłaszanym odpowiednio często jest na ogół bezpieczniejsze niż użycie trybu Capture.
No właśnie tylko u mnie dość cienko z programowaniem i obawiam się, że może mnie to przerosnąć. Do tej pory udało mi się odpalić wiele rzeczy, ale nie wiedziałem ze z tym będą takie problemy. Dobrze by było jakbyście rzucili też okiem na całość programu, czy jest jakoś w miarę poskładany. Edit: Znalazłem coś takiego: [syntax=vb] //Timer1 Capture //Timer1...
W programie masz bałagan, ale pewnie większym problemem są tu schemat i założenia. PWM 8Bit przy 16Mhz to wyjdzie 62,5kHz. Nawet małe silniczki mają bezwładność na poziomie 10ms więc to chyba niepotrzebne. Przy Twojej prędkości musiałbyś duży nacisk położyć na ten układ ze sterowaniem tranzystora. Dla tego PWM proponuję użyć jakiegoś preskalera. Potem...
Naprawdę nikt nie jest w stanie nic pomoc ? Miało by to mniej więcej wyglądać tak: -sygnał podawany na ICP ma postać kwadratową -zbocze opadające powoduje zapis wartości timera do rejestru sprzętowego -odejmując kolejne wartości rejestru od siebie uzyskuję czas jaki upłynął między impulsami -obliczając odpowiednio czas uzyskuję ilość impulsów na minutę
Witam Napisałem prosty program używający timera1 i timera 2 do zliczania częstotliwości, Chciałbym użyć dodatkowo serwa do mojego projektu ale używając intrukcji Servo coś nie tak dzieje się z serwem . Servo nie chce ci pracowac bo masz niepoprawnie obliczaną freq., od której (w twoim programie) zależy praca serva. Również niepoprawnie masz skonfigurowane...
Ja nie widzę problemu. :D Timer1: CONFIG TIMER1 = COUNTER | TIMER | PWM , EDGE=RISING | FALLING , PRESCALE= 1|8|64|256|1024 , NOISE CANCEL=0 |1, CAPTURE EDGE = RISING | FALLING , CLEAR TIMER = 1|0, COMPARE A = CLEAR | SET | TOGGLE I DISCONNECT , COMPARE B = CLEAR | SET | TOGGLE I DISCONNECT , PWM = 8 | 9 10 , COMPARE A PWM = CLEAR UP| CLEAR DOWN | DISCONNECT...
Nie znam dobrze Bascom'a ale moim zdaniem to zapewne kwestia Timerów. Masz w kodzie [syntax=basic4gl]Period = Capture1[/syntax] jest różnica w przypisaniu dla ATMega 8 - ICP1 to pin 14 (PB0) dla ATMega 32 ICP1 to pin 20 (PD6) - zobacz czy ( i ew. co tam masz podłączone ) w załączeniu pinouty:
Witam ! Tworzę mały sterownik do auta i mam problem. Dotyczy on pomiaru częstotliwości (a właściwie czasu trwania stanu niskiego lub wysokiego) na Atmedze 128, która po dalszych przeliczeniach będzie mierzyć obroty silnika. Sygnał , który będzie mierzony to prostokąt o wypełnieniu 50% i częstotliwości w granicach 15-150Hz. Jak w tytule pomiar ma się...
Poprawiłem program, sygnał podaje na pind.5, teraz wygląda on tak --------- Dalej nie dobrze. Jest kilka metod pomiaru RPM wirujacych elementow (walow) urzadzen. Widze ze zdecydowales na pomiar czasu pomiedzy impulsami wynikajacymi z jednego obrotu, mimo ze opis do org. watku mial na celu zliczanie impulsow w okreslonej jednostce czasu. Nie ma nic...
Moim zdaniem całość nie działa poprawnie, bo używasz Timera1 pracującego w trybie CTC jednocześnie do odmierzania odcinków czasowych wyświetlacza i do pomiaru czasu zatoczenia pełnego koła. W trybie CTC Timer liczy od 0 do wartości Compare1a po czym zostaje wyzerowany, więc ten podprogram w przerwaniu ICP1, który oblicza Ci ile cykli zliczył Timer podczas...
Config Timer1 = Timer , Prescale = 8 On Icp1 C1 On Compare1a C2 Enable Compare1a Enable Icp1 Enable Interrupts ......... c1: Stop Timer1 X = Capture1 X = x / 360 campare1a = x timer1 = 0 start timer1 return c2: ----> to przerwanie będzie się wykonywać 360 razy na obrót campare1a = campare1a + x incr "zmienna" return masz podział...
A ja proponuję może najpierw się zastanowić nad tym do czego opóźnienia i wtedy dobrać sposób czy na timerze czy bez timera. Tak mi się wydaje, że próby zaprzęgania Timerów do super "idealnego" odmierzania tak gigantycznego czasu jak 1 sekunda to jak strzelanie z armaty do komara (choć może się mylę - ale ciekaw jestem do czego tak na prawdę może być...
cytat z noty katalogowej ATMega8 Input Capture Unit The Timer/Counter incorporates an input capture unit that can capture external events and give them a time-stamp indicating time of occurrence. The external signal indicating an event, or multiple events, can be applied via the ICP1 pin or alternatively, via the analog-comparator unit. The time-stamps...
Hmmm... dowiedziałem się w końcu jak ma wyglądać włączanie tego oświetlenia. Przełącznik w pozycji -1 - oświetlenie wyłączone (impuls 1ms) Przełącznik w pozycji 0 - włączone stroby (impuls 1.5ms) Przełącznik w pozycji 1 - włączone stroby i dodatkowe oświetlenie pozycyjne. (impuls 2ms) Oczywiście pomiary trzeba by było zrobić z jakąś dokładnością (impulsy...
Masz chyba błąd w założeniach konfiguracji Timera. Licznik ustawiony jako Counter po prostu liczy impulsy z zewnątrz- prescale nie powinno być- bo to nie jest Timer tylko Counter. Rejestr Capture też w tym wypadku jest użyty bez powodu- nie ma do niego żadnej obsługi przerwania a i zezwolenie na przerwanie nie jest ustawione. Zezwolenie na obsługę przerwania...
Ciekawą sprawą jest też to, że mój odbiornik IR (TSOP4836) jest normalnie zwarty (w stanie logicznym 1), mimo to przerwanie w trybie Rising działa poprawnie. Nie ma czegoś takiego jak "zwarty" :) tak poprostu działa prawie każdy odbiornik IR, w stanie spoczynku, jak nic nie jest nadawane, ma stan wysoki H czyli +5V, jeśli nadajnik (pilot) nadaje nośną...
Zainstalowałem AVR Studio4 i lecę od początku z google i pdf na temat ASM i AVR Powiedzcie chociaż czy w dobrym kierunku zmierzam? Bo jak w złym to odpuszczam i daje sobie spokój, pobawię się migającymi diodami w Bascomie. Tam gdzie nie ma komentarza to nie wiem co to znaczy i co robi ale było w pdf lub innych opisach, jeżeli ktoś może mi wyjaśnić instrukcje...
Witam. Robię sobie komputerek spalania do samochodu. Wszystko ładnie wychodzi poza czasem wtrysku a co za tym idzie - spalaniem. Występują jakieś zakłócenia i nie wiem dlaczego. Może ktoś pomoże....:) Kod: $regfile = "m168def.dat" $crystal = 16000000 ''''''''''''''''''''''''''konfiguracja portów'''''''''''''''''''''''''''''''''' Config Portd...
Dziekuje za podpowiedz Teraz przerwania dzialaja poprawnie tylko nie moge zinterpretowac zmiennej Capture Jest ustawiony prescaler na 256 Zalozenie bylo takie ze do Rejestru ICR1 w momencie przerwania zostaje wpisane to Co jest w TCNT1 Tylko po zastosowaniu zmiennej capture1 po taktowaniu nozki ICP impulsem ok np 32 ms ,widac jakby ta zmienna sie przepelniala...
Łap. Napisałem przy kubku kawy i najdłużej to organizowałem się do zdjęć :D To prosty kodzik i zawsze można coś poprawić. Niemniej, co widać na fotach, mierzy częstotliwość, wypełnienie oraz pokazuje czasy stanów Hi/Lo ;) Może się komuś przyda :P http://obrazki.elektroda.pl/4849788600_1... http://obrazki.elektroda.pl/2015178300_1...
I na wyswietlaczu pojawia mi sie 40 226 61 155 1 0 0 239 W pierwszym listingu Masz tablicę 8-elementową i dobrze, DS ma zapisanych 8 bajtów ID. W drugim listingu tylko 5 - elementową, dlaczego ? A co jeśli inny DS będzie miał 5 pierwszych bajtów takich samych ? Otóż będzie klapa. no to wpisuje te dane A możesz mi doradzić w sprawie stosowania kwarca...
(i skąd tu początkujący ma sobie zassać troszkę wiedzy jak w C obsługiwać różne bloki funkcjonalne AVRków ??? Oczywiście wiem, że można z różnych źródeł ale chyba sami przyznacie, że ciężko początkującemu rozszyfrować czasem zawiłą składnię bez jakichś dobrych komentarzy czy opisów :( :( W C (inaczej niż w Bascomie) nie ma specjalnej składni do obsługi...
Hmm... A co ma cena procesora do ceny In-circut debuger-a ? Procesory kupuje się wielokrotnie, a debuger raz, po za tym dla AVR istnieją tańsze, nieoryginalne wersje - sam JTAG, bez obsługi DebugWire, już za trochę więcej niż 100PLN (np. na www.propox.com ) - również na USB. ATmega8 - 7-9PLN, możliwości : • Advanced RISC Architecture – 130...
racja. tryb capture się nie nadaje. ale czy da się to zrobić w sposób opisany?
Najdokładniej będzie zmierzyć czas pomiędzy impulsami z enkodera - możesz do tego użyć trybu input capture (ICP) timera1. Przy max. prędkości obrotowej masz ok. 100 zdarzeń na sekundę. Przy min. prędkości możesz zwiększać preskaler timera żeby wykluczyć przepełnienie bez "łapania" impulsu. Jeśli odstępy między impulsami z dekodera nie są identyczne,...
Popełniłem taki oto kod jak poniżej. W założeniu ma to być zegarek stawiany pilotem, oraz z dwoma DS18B20. Założyłem sobie, że nie użyję żadnego Wait, ani Gosub. Mam jednak jeden problem z odświeżaniem czasu na LCD. Niby dwukropki migają co sekundę, ale sekundy nie są wyświetlane poprawnie. Przez pewien czas jest niby dobrze, ale czasem jakby pomija...
No to coś napisałem na AVRStudio 4.05.0.181 (na kolanie) :) . Co prawda na ATmega8 , ale przeportowanie to pestka(niektóre wektory przerwań do skasowania/zmiany nazwy i "2313def.inc" zamiast "m8def.inc" , prędkość kwarcu Xtal też do poprawki...), raczej tu chyba nie ma rozkazów niezaimplementowanych w AT90S2313 . ;included in next file - line ".device...
hmm ultradźwiękowych nie da się poznaczyć dodatnich i ujemnych połówek fali ultradźwiękowych troszeczke nie rozumiem po co okreslac to czy to jest dodatnia czy ujemna mozna to zrobic przez rozroznienie czy to jest narastajaca zbocze czy opadajace czyli tak jakbysmy brali wszystko co sie znajduje nad osia OX i sprawdzali zbocza jesli wybierzemy naraztajace...
http://www.atmel.com/dyn/products/app_no... AVR135: Using Timer Capture to Measure PWM Duty Cycle
O.K. w bascomie robi się to podobnie cytat z polskiego HELP: "Częstotliwość wyjściowa jest określana wtedy wzorem: fout = (fosc / 4) / (65536 - CAPTURE). By wpisać wartość do rejestrów RCAP2L i RCAP2H, należy użyć: CAPTURE = wartość , gdzie wartość powinna być typu Word. Aby jednak uprościć stosowanie tego trybu instrukcja (począwszy od wersji 2.08...
capture timer capture bascom capture timer stm32
delonghi spienianie vaillant wyświetlacz symbole schemat podłączenia żarówek
Philips 65OLED705 won't turn on, logo flashes, wild LED blinking, no response – Mainboard or eMMC fault? ASUS G53S – szybkie wyłączanie po 2-3 sekundach, diagnostyka zasilania i GPU