1. W jakim celu konfigurujesz liczniki, wpisujesz im wartości początkowe, a potem wywołujesz ich zatrzymanie przez STOP TIMER0/TIMER2 skoro nigdzie indziej ich ponownie nie uruchamiasz? 2. Jakim cudem kompilator nie protestuje gdy w pętli głównej umieszczasz samo ON TIMER0/TIMER2 nie podając trzeciego słowa kluczowego GOTO/GOSUB i ostatniego ich parametru?...
Tak odpal helpa zajrzyj do config timer i tam będzie przykład;)
Wszystkie Timery układu Mega32 mogą generować sygnały PWM: Timer0 - jeden kanał: OC0 - PB.3 Timer1 - dwa kanały: OC1A, OC1B - PD.5, PD.4 Timer2 - jeden kanał OC2 - PD.7 Na wejściach T0 i T1 liczniki nie generują sygnałów PWM. Co do samej konfiguracji to problem jest prawie żaden. W przypadku Timer1 sprawa jest prosta, gdyż CONFIG TIMER1 posiada wszelkie...
Czyli zwykły prosty miernik częstotliwości z jej porównaniem przy pewnej wartości - bez problemu się to na jednym timerze realizuje... Zobacz tu: [youtube]http://www.youtube.com/watch?v=... Złapałem tym nawet 40tys. obr/min :) Co prawda to przykład na attiny44, bo obsługa wyświetlacza i takie tam duperele zabierają jednak piny i pamięć...
Musisz zaznaczyć cały tekst który chcesz pokazać jako kod, a następnie zaznaczyć napis Code $regfile = "attiny2313.dat" $crystal = 8000000 'kwarc 1MHz $prog &HFC , &HE4 , &H9F , &H00 ' generated. Take care that the chip supports all fuse bytes. Config Timer1 = Timer , Prescale = 64 'timer1 jako licznik 15536 Config Int0 = Rising 'detetor zera...
Użyj któregoś z timerów.
Programu jeszcze nie napisałem ale będę pisać w bascomie.Pytam się tak trochę zapobiegawczo żeby się upewnić że ta funkcja nie będzie mi przerywać czy blokować timerów.
Na (XCK/T0)PD4 to tylko programowo i sposób zaproponowany przez M. S. w tym przypadku jest najlepszy (ten z timerem).
Siema. Otóż mam taki problem, podczas gdy kod ładowania i zerowania data DACx działa, np DACB1 = 0 waitus 500 DACB1 = 4095 (full zakresu) waitus 500 daje jakieś 2Khz pisku w słuchawkach co jest oznaką działania , to gdy ładuję próbki muzyki wav z karty na zasadzie DACxx = pwm nic się nie dzieje. Tu całt kod xmega: [syntax=basic4gl] '=======================================...
GETRC5 używa licznika TIMER0. Albo TIMER2 jeśli go układ posiada i tak go skonfigurujesz w CONFIG RC5. Aby ustrzec się dziwnych błędów (z adresami linii poza programem) nie zapomnij o wpisaniu nazwy pinu w CONFIG RC5. Sam kod bazuje na dokumentach ATMELa: http://www.atmel.com/dyn/resources/prod_... I tam można całą procedurę prześledzić....
A czy aby ten mikrokontroler nie ma wewnętrznego oscylatora ustawionego na 1MHz.
Błąd kompilatora w tej wersji. Timer0 konfiguruje się bezpośrednim zapisem do rejestrów. Timer1 działa normalnie.
(at)maximus22_kr Niezależnie od użytego języka programowania zapomnij o instrukcjach wait. Tego nie będzie się dało połączyć z żadnym sensownym programem. Należy to zrobić tak jak pisałem: - przerwanie OVF - zmiana wyświetlanej cyfry - przerwanie compare - wygaszanie bieżącego wyświetlacza. Wtedy czas pomiędzy OVF a compare to czas, w którym dany wyświetlacz...
........, a podpowiedzcie mi jak mogę obsłuzyc Rc5,serwo i pwm? Pozdraiwam Dla obsługi RC5 i kontroli serva użyłeś w sumie 2-ch timerów... ATMega8 posiada wbudowane 3 timery , zastosuj więc ten trzeci do 'produkcji' PWM''. Jeżeli ten ostatni (dotychczas wolny) jest Timer1, to ma on dwa kanały dla PWM, na których możesz generowac praktycznie dwie różne...
Nie prościej generować przerwanie co np 1s od timera?
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ą...
Ten mikrokontroler nie jest z rodziny AVR. Musisz mieć Bascom - 8051 pobrać ze strony: www.mcselec.com/
Chodzi o dowolne przerwanie. Ale najlepiej oczywiście wykorzystać przerwanie od jakiegoś Timera.
Tryb CTC należy ustawić zgodnie ze stroną 112 PDF. Należy dokładnie przeczytać tę stronę i okoliczne. Potem ustawić odpowiednie bity w odpowiednich rejestrach. W Bascomie robi się to np. tak: set TCCR1B.wgm13 i tak dalej. Bascom nie ma gotowych instrukcji na wszystkie możliwe tryby pracy timerów. Ale pozwala na ustawienie tych trybów "ręcznie"- przez...
Wracajac do tematu czy moglbym prosic przynajmniej o pseudo kod obslugi przykladowo drgania w przyciskach , wysterowania przekaznika np przez 2s oraz komunikacji 1wire jednym timerem (atmega8 ma az 2 timery wiec pewnie szybko skoncza sie jego mozliwosci chcac napisac kod bez zatrzymywania) Cały dowcip polega na tym że z tego 8 bitowego timera możesz...
a nie moglibyście poprostu napisać początku programu z ustawioną konfiguracją timerów dla attiny 2313 tak żeby zliczał 10s no i zrobić miejsce (klamry albo coś) gdzie wprowadza się to co ma robić prgram?? prosze A może od razu napisać cały program? Po co się czepiasz tych timerów, bascom ma wbudowane jakieś gotowe funkcje do opóźnień czasowych.
Funkcja WAITMS nie jest odporna na przerwania. Jeśli masz jakieś to każde wystąpienie przerwania w trakcie WAITMS rozjedzie go. Niezależnie od stabilności tej funkcji, a nie ma powodu, żeby nie była powtarzalna jeśli nie jest przerywane wykonanie przerwaniami, to i tak lepsza praktyką będzie wykorzystanie timera.
przerwanie timera wpływa na polecenia z rodziny Wait - powodują one, w zależności od częstości wydłużenie czasu oczekiwania, dlatego trzeba w takim wypadku odmierzać czas używając timera ;-)
Problemem jest to: [syntax=vbnet]Call Obrot[/syntax] Skoro "Obrot" to wektor przerwania, to nie należy do niego skakać. Procesor sam będzie do niego skakał. Nie należy też tego deklarować jako podprogram (Sub). Albo coś ma być podprogramem, albo wektorem przerwania.
Ho ho ho :) ale narozrabiałeś :wink: Dim Timer0_200ms As Word , B_200ms As Bit ' dot. uaktualniania co 200ms Const Timer0_200ms_max = 400 REM to dodaj $asm inc {Timer0_200ms_max+1} $end Asm Dim Timer0_1s As Word , B_1s As Bit ' dot. uaktualniania co 1s Const Timer0_1s_max = 5 Dim Licznik As Word 'pomocniczy licznik do zminy stanu lini w glownej petli...
Więc pozostało zamiast waitów uruchomić następny timer.
Witam Musisz skonfigurować Timer i za jego pomocą odliczyć 4 minuty. $Crystal = 11059200 Config Timer1 = Timer, Prescale = 1024 Load Timer1 , 10800 On Timer1 Sekunda Config Pind.1 = Output : Wy Alias Portd.1 Config Pind.2 = Input : We Alias Portd.2 Dim Licznik_1 As Byte Dim Wsk As Bit Enable Timer1 Enable Interrupts Licznik_1=0 Wsk = 0 Do If...
niechce mi sie czytac calego zrodelka ale moze sprobuj przerwanie na timerze w obsludze porzerwania licznik, bo zliczeniu do ilus wystapien przerwan.. w avr zreszta sa odpowiednie preskaley do tych celow. po ktoryms przerwaniu uruchom procedure zamykania bramy czy co tam chcesz
Z tego co wiem "PIN Change Interrupt" ma np. Atmega168 i Atmega 328. Atmega 32 - jakoś nie widzę takiej możliwości. Proszę o poprawienie mnie, jeśli się mylę. Oczywiście zawsze można skorzystać z tych specjalnych pinów - INT0, 1 czy 2 lub zasymulować taką kontrolę stanu pinu w zwykłym przerwaniu - np. timera.
Dzięki wielkie - poczytam. Póki co wysmarowałem program i działania nie potrafię zrozumieć. Zakładam jednak nowy wątek (http://www.elektroda.pl/rtvforum/viewto... bo to nie dotyczy timerów.
.... W pętli głównej sprawdzam na okrągło bit 0 rejestru 0 układu ( sprawdzam flagę alarmu timera). .... "Additionally, a timer alarm can be programmed by setting the timer alarm enable (bit6 of the alarm control register). When the value of the timer equals a pre-programmed value in the alarm timer register (location0F), the alarm flag is set ( bit1...
Pokaż chociaż kawałek kodu to zobaczymy jak to zrobiłeś. Do przemyślenia podam kilka przybliżonych wartości. Odczyt 9 bajtów z DS18B20 (razem z CRC) trwa ~7ms Odczyt tylko dwóch bajtów ~3ms Multipleksowanie 4 LED7Segment to najcześciej 200Hz czyli co 5ms Obsługa wyświetlaczy w przerwaniu trwa ~ 5 us przy 8MHz Napisz przerwanie optymalniej a Dallas nawet...
Rozwiązaniem jest śledzenie pełnej transmisji, przy wykorzystaniu Mode=Background, co niestety wymaga mikrokontrolera z timerem 16bit. Takie są wymagania Bascoma, a w przykładowo czystym C można zrobić tylko na timerze 8-bit.
Witam Chcę zrobić sterowanie fazowe 8 żarówkami, lecz brakuje mi pomysłu jak to zrobić. Z jednym kanałem jest sprawa prosta. Po wykryciu zera ładuje do timera zadaną wartość i w przerwaniu Timera załączam triaka. Jak to zrealizować dla 8 kanałów ? W sensie jak odliczać 8 wartości jednym timerem? Pozdrawiam
Zajrzyj do helpa BASCOM - wszystko jest tam opisane - konfiguracja timerów i zadawanie wartości PWM.
Hmmm, szczerze mówiąc nie bardzo mi się chce analizować program bo troszkę go zamieszałeś i właściwie to już nie bardzo wiem jakie zrobiłeś założenia działania tego progsa. W każdym razie widzę tu badanie krótki/długi przycisk i pomieszanie bezpośredniego czytania pinu z Debounce... jak dla mnie trochę to demotywujące. Rzuć jeszcze raz okiem na moje...
Tak jak wspomniałem, problemem są przerwania z timerów - wyłączenie pomaga.
Matko święta!! co ty robisz z tym Timerem? Skąd czytałeś do czego służą timery??
No właśnie podejrzewałem , to że użyjesz Wait, który tak jakby "zawiesza" procesor na 25 sekund. Najlepiej by było użycie timera do ustalania czasu, ale wiem, że dla początkującego to za trudne. Podpowiem więc inne rozwiązanie: Daj w pętli głównej wait1. Następnie zwiększaj zmienną i napisz warunek kiedy osiągnie ona 25 (if then endif) oraz kolejny...
Uruchomić timer w trybie CTC. Tryb CTC [syntax=vbnet]CONFIG TIMER1 = ..... CLEAR TIMER = 1[/syntax]
Poczytaj np. [url=http://www.elektroda.pl/rtvforum/vi... to może Ci się nieco rozjaśni ;) A kilka postów wcześniej cytowanego linka jest podobne rozwiązanie z zastosowaniem timerów. Połącz oba i będziesz miał złoty środek... Pozdrawiam.
...jak sobie poradziles z przypadkowymi resetami? jak sie zresetuje to zegar tez sie resetuje? pzdr. A jest coś takiego jak przypadkowy reset? Jeżeli płytaka i soft niezawiera błędów i nikt nie spawa w promieniu 10 cm od urządzenia to nic nie ma prawa sie stać. Ani iskra elekrostatyczna o napięcu 5kV ani krótkofalówka nie zakłuci pracy urządzenia.
Ja używam takich kodów do odblokowania tych pinów, zaraz po instrukcji konfiguracji zegara programowego: 'odblokowanie pinów PC6 i 7 dla procesorów atmega16/32: Tccr2 = 0 Assr = 0 Timsk = 0 Tifr = 0 Oczywiście wszelkie dalsze konfiguracje innych timerów powinny znaleźć się po tym kawałku kodu.
Witam Mam takie pytanie.. Czy Bascom potrafi symulować przerwania od Tmerów?? Chodzi mi o to ze gdy napiszę taki program : Config Lcd = 20 * 2 Config Timer0 = Timer , Prescale = 64 Enable Interrupts Enable Timer0 Start Timer0 On Timer0 Etyk Do Loop Etyk: 'tu program obsługi przerwania return To sam nie wchodzi do obsługi przerwania. Zrobi to jedynie...
Działanie Timerów jest opisane na forum. W pdf poniżej są przedstawione dwa przykłady na Timer0 i Timer1. Attiny ma również takie wbudowane. http://ep.com.pl/files/4910.pdf Jak jest w przykładzie możesz zwiększać sobie daną liczbę w przerwaniu, a następnie ją sprawdzać w programie głównym "do...loop". Warunkami "If...then" określić przy jakich wartościach...
Buforuj otrzymane znaki i przetwarzaj w procedurze pętli głównej programu. Oczywiście wiąże się to z wywaleniem wszelkiej maści form kodu blokującego procesor i oparciem odliczania czasu o Timer.
.Czy ktoś może wie w czym tkwi problem/spotkał się z taką sytuacją? A zmienna, której wartość kopiujesz do OCR3A/PWM3A nie jest przypadkiem zadeklarowana jako BYTE ? Jeżeli to nie to, to spróbuj zapisywać rejestry OCR3 osobno - OCR3AH, OCR3AL.
Witam Mam problem z zaprogramowaniem uC. W którym miejscu masz problem? Pierwsze, co musisz zrobić to zadecydować, który z timerów skonfigurujesz do liczenia czasu. W jakim trybie ten timer ma pracować (nie wszystkie wbudowane w "mega" timery posiadają te same opcje do wyboru i są ponadto różnej 'długości'). W zależności od taktowania procesora, wybranego...
Witam, chciałbym zrobić nietypowy nadajnik IR na Atmega 8. Nie Sony nie RC5, nietypowy. Sygnał ma mieć 38kHz, kluczowanie znam. Pytanie: czy te 38kHz mogę uzyskać za pomocą timera w trybie PWM 50%? Czy mogę ustawić dowolną częstotliwość, bo wydaje mi się że nie. Chciałbym jednym timerem generować falę prostokątną a drugim kluczować ją komendami START...
Uruchom przerwanie od Countera (najlepiej od porównania wartości zliczonej z ustawioną) i zmień stan portu w podprogramie obsługi przerwania lub prościej, ale mało elegancko zmień [syntax=basic4gl]If Counter1 = 100 Then ...[/syntax] na [syntax=basic4gl]If Counter1 >= 100 Then ...[/syntax] Nie tak jest to, że w chwili zliczenia setki nasz if może się...
Pisząc tę odpowiedź zrozumiałem, że popełniam błąd, bo timer2 jest 16 bitowy. No właśnie jesteś w błędzie...Timer2 jest timerem 8-bitowym.
Teraz mam podłączone ADC pod wyjście PWM i niestety uK nie mierzy nic, czasem coś wyskoczy na wyświetlacz ale zaraz znika tak jakby trafiał z pomiarem akurat w zero PWMu. Ten układ musi mierzyć PWM dlatego że do diody nie daję rezystora bo będzie to zasilane z 3V a przy niewielkim spadku napięcia zasilania strasznie spadnie jasność diody bo rezystor...
Ja robiłem dokładnie to samo :) Programowy UART sprawdza się, ale jak program nie jest za bardzo pocięty przerwaniami timerów itp. Poza tym trzeba "czekać" na dane, chociaż w bascomie nie robi to większej różnicy.
no ok, wszystko działa dzięki :D fourthline heh :D zobaczymy nie długo jak mi przyjdzie pierszy mój mikrokontroler AVR. pewnie będę musiał się pobawić z timerem :)
Panowie, czy możecie napisać jakiś przykład modulacji podczerwieni? Męczę się z tym i nie mam już pomysłów. Wykorzystałem drugi timer do odmierzania krótkiej chwili (doświadczalnie). Działa to tak że jeden timer co okolo 100ms wysyła nośną 36kHz, gdzie ta generowana jest drugim timerem. Nie zadowala mnie to ponieważ musi być to tak jakby ciągły sygnał........
Siemka! To może spróbuj odmierzyć czas przy pomocy dostępnych w mikrokontrolerze timerów. W Bascomie robi się to stosunkowo prosto. Poszukaj w helpie komend obsługujących timery i w paru linijkach kodu na pewno rozwiążesz ten problem. Pozdrawiam! :)
Chcę napisac własny program z wykorzystaniem Timerów. Na początek proszę o wytłumaczenie dlaczego w poniższym programie: 1. wykorzystano podzial częstotliwości zegara (po preskalerze 256) 250/125 zamiast wykonac jedno dzialanie? 2. uzyto wartość początkową Timera0 = 250 przed Petlą do Loop End . O ile wyjaśnienie podane przez Tomq jest błędne(!) Load...
Witam, Chodzi mi o to że potrzebuje uzyskać za pomocą timera aby odmierzał mi timer co jedną sekundę. Jako że nigdy jeszcze nie uzywałem timerów to nie wiem jak to zrobić :) Czy może mi ktoś npaisać coś takiego, lub powiedzieć o co w tym chodzi ??
Witam Napisałem taki program do regulacji prędkości silnika. [syntax=vbnet] $regfile = "m32def.dat" Enable Interrupts $crystal = 16000000 $baud = 9600 Config Portb = Input Set Portb.1 Config Pind.4 = Output Config Porta = Input Dim Freq As Long Dim Pomoc As Byte Dim A As Integer Dim P As Integer P = 0 Config Timer1 = Counter , Edge = Falling Enable...
Dokładnie tak jak masz napisane, z tym, że konfigurujesz jeden z timerów do dliczania czasu. Przykładów w Bascomie z obsługą timera znajdziesz bez liku.
Mógłbyś zamieścić jakiś przykład z tym timerem ??
Zacznij od tego: funkcja wait i pokrewne PRZESTAŁY ISTNIEĆ. Do opóźnień i odmierzania czasu użyj timera i ogólnie poczytaj o timerach.
Wklep na początku przerwania : Enable Interrupts Wywnioskowałem to z pomocy bascoma (polecenie on Interrupt)
Koledzy, nie wiem jak to jest w Attiny, ale spotkałem się z dwiema rzeczami w innych uC: 1. Timery mają własne przerwania, czyli nie musisz zajmować żadnego innego przerwania, które może Ci się przydać do czegoś innego. 2. Jest coś takiego jak priorytet przerwań, zatem jeden z timerów będzie ważniejszy, jeśli obydwa naraz wygenerują przerwanie.
1) Portc.1 to jest wejście czy wyjście? Zdecyduj się w programie. 2) Gdzie w programie jest drugi pin wejściowy? 3) To co próbujesz zrobić z timerem nigdy nie zadziała prawidłowo. Nigdy IFem nie trafisz na odpowiednią wartośc timera
Wszystko już jasne. Wilkie dzięki. Pozdrawiam
Tak, ale to czy każdy czujnik chcesz odczytywać osobno, czy wszystkie na raz zależy od reszty programu. Poza tym namawiam do porzucenia Waitms 750 na korzyść Timerów i przerwań.
Mnożenie można zrobić robiąc programową symulację PLL. Zwykła symulacja wymagała będzie użycia jednego Timera i dość zamotanego kodu. Ale można inaczej. Dwa Timery. Jeden Timer zlicza okres przebiegu. A drugiego ustawia sie żeby zliczał powiedzmy do 1/3 wartości zmierzonej pierwszym Timerem. Taki układ ma już w miarę dobre parametery bo powinien działać...
Witam! Jestem początkującym programistą i chciałbym zrobić sobie zegarek na LCD. Napisałem kod w BASCOM z wykorzystaniem TIMERA1 i wewnętrznego oscylatora, ale on się śpieszy. Nie mogę wcale ustawić aby dokładnie odliczał jedną sekundę. Czytałem w internecie, że do tego trzeba wykorzystać TIMER2 i zewnętrzny kwarc zegarkowy 32,768kHz, ale ja mam problem...
Jakoś nie widzę żebyś tu korzystał z przerwania od Timera... Bo nie musisz ;p mogłbyś pokazać jakiś przykład obsługi przycisku w przerwaniu timera ? Nawet jakiś URL do innego projektu. Więc chyba oczywistym jest że ten fragment kodu należy umieścić w przerwaniu od Timera.
Witam serdecznie. Czy ktoś by mógł mi wytłumaczyć to zadanie?:) Chodzi mi krok po kroku.
bascom często ma problem z zaawansowanymi trybami pracy przetworników , timerów itp często nie działa to tak jak powinno.
No właśnie nie mogę skumać zasady działania timerów. W programie który napisał "dawid512" odmierzana jest 1s co zrobić żeby odmierzane było 180s a program główny działał normalnie, może counter0=counter0*(jakaś wartość) albo wykorzystać polecenie LOAD?? W moim programie chodzi mi tylko o wygenerowanie na wyświetlaczu napisu co 180Sekund Nic więcej....
Po co na timerach? Robisz coś co Ci powoli zmienia wypełenienie a timerów użyj do PWMu sprzętowego;P
Timer i zmiana stanu wyjścia w przerwaniu. Długość dźwięku określić innym timerem.
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:
A czy twój procek ATmega8 posiada tylko jeden timer ?
Chcę zbudować miernik ciepła na mikrokontrolerze jak w temacie i potrzebuję mierzyć temperaturę w dwóch punktach. Tu pojawia sie moja prośba o program w Bascomie, który zajmie jak najmniej objętości i co 1s będzie umieszczał w dwóch zmiennych zmierzone wartości temperatur z czujników DS18B20 w °C. Mikrokontroler w dalszej części programu użyje tych...
Poczytaj o timerach.
Moze da bascom'owa funkcja uzywa timera
kurcze mi nie wychodzi :| timer chodzi co 1s ale reszta do kitu Dodano po 25 program chodzi :) oczywiscie musisz go przerobic na wlasne potrzeby dodac tyle ile chcesz przekaznikow i zmienic czasy w programie bo tam jest 10s i 40s ten program jest przygotowany pod ATmega8 i kwarc 8MHz $regfile = "m8def.dat" $crystal = 8000000 Config Pind.0...
Rozumiem, że dwóch wolnych pinów nie możemy wykorzystać dla drugiego kanału (jakaś kolizja z timerem, czy coś)? Można by się pokusić o drugi odbiornik i kontrolkę, a wtedy mamy czujnik wykrywania kierunku.
Tak. Tylko mniej świadomość że procek będzie odrywany od pracy wieloma nieprzydatnymi impulsami. Ewentualnie po pierwszym impulsie na INT, wyłącz przerwania na czas drgań. Jak teraz masz podłączony kontrakton ? INT podciągnięty pod +5V ? Jak INT wyzwalasz ? W docelowym projekcie koniecznie czujnik kontraktonowy zamień na jakiś halotron albo transoptor...
A co jaki czas w Master uruchamiany jest Timer?
Najprościej inkrementować jakieś rejestry w kontrolerze i cyklicznie zerować je timerem
Program wyświetla to co chcesz ale w symulatorze to trwa bardzo bardzo długo. i Teraz ja licznik odlicza 100 impulsów to musisz pozmieniać obliczenia. Podczas symulacji w warunkach wpisz mniejsze wartości to się szybciej doczekasz tego wyświetlenia na lcd albo zwiększ zmienne ręcznie podczas symulacji. sygnał 125khz do generowania PWM 1,25khz. Nie rozumiem?...
czyli coś nie tak z timerem a dodanie której instrukcji powoduje wysypanie się LCD? i która wersja bascom'a?
Przepraszam że odkopuję ten temat ale chciałbym prosić o cały program do timera .
No a jak myslisz? W przerwaniu od jakiegoś Timera.
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...
Pisałeś że twój programowy PWM pracuje poprawnie na Timer0, napisz może jakich użyłeś ustawień dla tego timera.
Jeśli bez timerów to zadeklaruj 4 zmienne typu long ( dla odliczania dużych wartości - to będą czasy przerw ) i 4 zmienne typu byte (czas impulsu) zerujesz zmienne przed pętlą . W pętli incrementujesz kolejno te cztery zmienne. sprawdzasz komendą if czy kazda z nich osiągneła założoną wartośc (czas przerwy) . Jeżeli tak to : zerujesz zmienną , incrementujesz...
Przeglądając Twój program mam takie małe spostrzeżenie, a mianowicie w pętli głównej masz wywołaną procedurę Gettime - ' Call Gettime' - która działa na I2C. Co się stanie gdy podczas wykonywania procedury Gettime zostanie zgłoszone przerwanie od Timer'a?? Program przerywa wykonywanie procedury Gettime i skacze do obsługi Timera a tam jest wywoływana...
Moim zdaniem koncepcja powinna być taka: 1. Obsługa przetwornika analog-cyfra. Na początek dobrze żebyś umiał dobrze zmierzyć liczbę impulsów. Nie wiem dokładnie jaka jest specyfika Twojego sygnału, jaką amplitudę mają owe szumy, skąd się biorą i czy nie warto by ich po prostu potraktować filtrem dolnoprzepustowym, a jeśli mają odpowiednio niską amplitudę...
Timery są dobrze opisane tu: http://www.gammon.com.au/timers , co prawda dla Atmega328P, ale zasady są takie same. Przykłady są dla Arduino, ale im szybciej schowasz książkę do Bascom w głębokim archiwum domowym, tym szybciej zaczniesz robić faktyczne postępy, dla Arduino znajdziesz też więcej przykładów, gotowych bibliotek, darmowych kursów na blogach...
Jeżeli chcę uzyskać na wyjściach 4 przebiegi prostokątne, każdy o tej samej częstotliwości tylko przesunięte w czasie, to potrzebuje czterech timerów?
W czym problem? Funkcją Modbus mozesz zapytać sterownik o jeden lub o kilka rejestrów na raz. W zapytaniu podajesz ile rejestrów chcesz otrzymać i od jakiego adresu. Ten kod który masz jest trochę za prosty. Gotowy przykład jest w Samplach Bascom`a (zajrzyj do katalogu Serial i Modbus_slave, Modbus_master) Chodzi o to że tam po adresie slave`a otrzymasz...
Przecież obsługa timera w AVR i '51 jest inna , zobacz jak wygląda konfiguracja dla obu wersji .
Wojtek - wchodzisz tutaj: [url=http://www.frank-zhao.com/cache/avr... z kalkulatorem 16MHZ z preskalerem 1024 oznacza że: - 1 sekunda nastąpi po 15625 cyknięciach timera - przerwanie następuje przy przepełnieniu jeśli wybierzesz OVERFLOW, ale może tez nastąpić przy COMPARE, od tego zależy jaką wartość wpiszesz do timera (czy odejmiesz...
Ok oto program z Timerem. Pisząc w bascomie zauważyłem coś dziwnego: Gdzy pisze Config timer1= timer, prescaler = xx to pojawia się okienko z wyborem prescalera, ale kompilator tego nie trawi. Z kolei gdy napisze prescale to okienko się nie pojawia ale wszystko sie kompiluje.
sterowanie timerem uzbrajanie timerem pilot timerem
tranzystor bc337 kabel mercedesa taśma sygnałowy
wizjer smart regulator ładowania
Instrukcja naprawy silnika Piaggio Hexagon GT 250 4T Jak wyczyścić podwójną szybę w piekarniku Amica?