Czy RTC (zegar czasu rzeczywistego) używający Timera 2 w trybie asunchronicznym , działa nawet wtedy gdy wyłączone sa przerwania globalne ? ... kwarc, preskaler oraz Timer2 nie potrzebuje przerwań ale to nie wystarcza do zrobienia całego RTC to wystarcza do zrobienia przerwania co 1 sekundę a reszta zegara musisz zrobić programowo i to właśnie na przerwaniu...
A zmieniałeś FuseBity? :]
AVRStudio ma troche bugow moze to jeden z nich ale... Ja wyliczylem ze dla kwarcu 8MHz do odliczenia czasu 1.28ms potrzeba do OCR1A wpisac 1280 wiec mniej wiecej tyle ile wyszlo ci z AVRstudio. W avrcalc wyszlo podobnie:) Sciagnij sobie ten programik albo wyslij mi mejla na pw to ci wysle, calkiem przydatna rzecz:)
Przecież ten programik jest banalny:. Ustawiasz preskaler kwarc. i program sam podaje ci jakimi wartościami uzupełnić odpowiednie rejestry. Jak nie wiesz do czego służy dany rejestr odsyłam do dokumentacji.
procesor pracuje z czestotliwościa 10Mhz czyli jeden okres trwa 1/10Mhz = 0,1us domyślam się ze jest on ustawiony z preskalerem równym 1 przepełnienie timera i wywołanie przerwania następuje gdy timer osiagnie 2^16=65536 czyli w tym przypadki 65536 - 64566 = 970 cykli 970 cykli * 0,1uS = 97us cała filozofia czas ten zalezy od czestotliwośći kwarcu,...
Twój błąd polega na tym, że użyłeś słowa "Bascom" w pytaniu. Niektórzy bardziej nerwowi użytkownicy forum reagują na to słowo alergicznie. Mechanizm jest taki sam jak w przypadku PiS - ktoś im wmówił, że to zło wcielone i trzeba takich obrażać. A co do Twojego pytania, to obawiam się, że nie uruchomisz Tiny2313 na 32 kHz kwarcu. Musiałbyś dołączyć jakiś...
Witam wszystkich Mamy przedświąteczny okres a tu jeszcze taki problemik mnie dorwał Jak dokonać podziału żeby uzyskać 1/12 sekundy w pełnej wartości bez przecinków O ile jest to wykonalne ? Do dobrania jest kwarc preskaler i dowolna wartość podziału flagi.
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...
Może wyłączył warningi?
Jestem początkującym, więc za dużo Ci nie pomogę z kodem, ale jedno wiem na pewno ;) Odlicza Ci 2 sekundy, bo tak ustawiłeś OCR1A. Mając kwarc 14,745,600 Hz, ustawiłeś preskaler na 1024. Czyli 14400 cykli, to 1 Hz. Przy 28799 w Twoim programie, masz prawie 2 sekundy. To tak w międzyczasie, póki inna osoba Ci pomoże.
Generalnie w kodzie nic nie zmieniałem poza częstotliwością kwarcu. Preskaler zastosowałem jako zewnętrzny. Aplkacje LB 3500 wziąłem ze schematu AVT 2666. Sygnał wyjściowy z LB podany jest na tranzystor BC547 w celu uzyskania poziomu TTL i dalej na pierwszą i dalej drugą dwójkę przerzutnika 74LS74. Tak powstał preskaler z podziałem /32. Jeżeli chodzi...
No ale przecież tak właśnie jest zrobione - preskaler/dzielnik to po prostu licznik z porównaniem. 4\/3!!
AVE... Przy kwarcu 20Mhz: Ustawiasz preskaler timera Timer2 na 1:16. Wartość rejestru PR2 ustalasz na 99. Postskaler ustawiasz na 1:5. Następnie zliczasz przerwania z flagą TMR2IF podnosząc wartość jakiejś zmiennej o jeden. Gdy zmienna będzie równa 625, to będziesz miał swoją sekundę... Przy kwarcu 4Mhz: Preskaler na 1:16, PR2 = 24, postskaler na 1:5,...
No jak masz kwarca 16MHz, to tylko 16MHz może być. No chyba że to będzie ATMega168, to wtedy tak. Bo ATMega168 ma preskaler głównego zegara. Jak chcesz 10us, to tylko assembler i kwarc 16MHz.
Aj to źle zauważyłem. To może kwarc 1,8432MHz, preskaler 1024 i CTC na 180 Co da równo 1ms ?
CLKio ma tyle samo co kwarc. No chyba że włączysz preskaler ale ATMega16 chyba nie ma preskalera (mówię o preskalerze głównego sygnału zegarowego, nie mówię o preskalerze Timera).
masz kwarc 8664 w AVT za coś około 2 zł a większość dekoderów RDSu ma przełaczany preskaler Pozdro
Witam Nie rozumiem skad bierze się u mnie taki problem: Mega88 Kwarc zewn 12000000 (chodzi na pewno dobrze - uc dobrze odmierza czas) ustawiam TIMER 1 na tryb PWM 10bit prescaler na 64.. zgodnie z tym okres PWM powinen byc: 1/12000000*1024*64= .... = 5,4613(3)ms .. a na oscyloskopie jak nic widac coa koło 10,8ms.. (podwojone).. W czym jest problem?...
To wszystko zależy od tego jaki masz kwarc i jaki ustawisz preskaler. Zakładając że masz kwarc 1MHz i zliczasz bez preskalera to wtedy jeden pełny cykl licznika (65536 impulsów) będzie trwał 65,5 ms. W najgorszym przypadku (czyli wtedy gdy masz kwarc 1MHz, chyba najwolniejszy ze standardowych:) , i preskaler 1024) to jeden impuls zegara trwa ok 1ms,...
Nie wiem, czy dobrze zrozumiałem, ale wydaje mi się to proste. 4000000/64=62500 62500/625=100 Chyba że atmega8 nie ma preskalera przez 64, lub musi on być ustawiony na 256.
Każdy licznik ma własny preskaler, własne rejestry i własne przerwania - to 7segmentów starczy Ci 8 bitów i preskaler. Zreszta zerknij sobie na: http://www.et06.dk/atmega_timers/
Witam. Mam problem z generowaniem przez ATmege8 określonej częstotliwości impulsów. Chodzi mi o dokładne impulsy pochodzące z dzielenia przez preskaler częstotliwości kwarcu 8MHz. Np. przy takiej częstotliwości, podziale preskalera przez 256 i wpisaniu do licznika wartości początkowej 31250 powinien być impuls co 1 sekunde. U mnie ten impuls jest co...
ad1: zmniejsz kwarc, ustaw preskaler .... ad2: nie jest wyłączone, że trafisz dziesiątkę ;-) No jak wewnętrznego to się nie dziw. Jeśli Ci tak zależy na dokładności to nie pomoże Ci nic innego, tylko DCF. Wszystko inne jest zależne od dokładności kwarcu, temperatury i dużo innych czynników.
jak zrobić żeby przerwanie od timmera 0 w atmedze8 było taktowane kwarcem zegarkowym(tzn. podłączam kwarc w miejsce xtal 1,xtal2 i skąd timmer 0 będzie wiedział ze ma być taktowany takim kwarcem) i jak dobrać preskaler itd żeby po zapełnieniu licznika odmierzana była 1s używam programmer's notepad.
Z tą kalibracją to chodzi o ustawienie preskalera? Preskalera, wartości licznika i wartości kwarcu. Dodano po 1 Przeczytaj: http://www.elektroda.pl/rtvforum/topic18...
czy chodzi o to iż Timer0 jest 8 bitowy? kwarc - 16 MHz, preskaler 512 i odliczanie co... (32768 - 31250) = 1518 i bedzie 1 sekunda tak? ;)
wilk125: jeszcze mam takie pytanie, jeśli kwarc zew. mam 8MHz i preskaler ustawiony jest na 8, to jeden takt timera1 w tym przypadku będzie odpowiadał 1us ? Tak Tak powinno być TCCR1B, moja pomyłka Przy odczycie wartości z TCNT1, sróbuj najpierw odczytac TCNT1L(młodszy bajt TCNT1), i następnie TCNT1H (starszy bajt). Chociaż odczyt jak wyżej tez powinien...
Wewnętrzny oscylator 8MHz, daje 125ns na cykl, tolerancja przy stałej zachwianej temp. -/+3% (załóżmy). Czyli -/+3.75ns<<5ms, a jak dasz zewnętrzny to już w ogóle bajka(; Na pytanie odpowiedz Sobie sam (; Dasz preskaler i będzie dobrze. inventco.eu - Proszę pisać po Polsku. Post poprawiłem.
kurka wodna - no więc zacząłem liczyć prawie ze szkłem powiększającym przy lampie oscyla i wychodzi na to, że ta nośna jest w miarę ok - ale nie dam rady tego dokładnie stwierdzić przy takim oscylu. poniżej wzór z jakiego korzystałem przy obliczaniu częstotliwości mojej nośnej na wyjściu OC0A http://obrazki.elektroda.net/3_122355741... czyli...
Koledzy jest pewien sukces synteza zaczęła działać. Widać moje radio odbiega od tego z programu, posiadam w nim preskaler 64 a co za tym idzie wybrałem typ radia 1 (' 1 = krok 12,5kHz / kwarc 6.5MHz / preskaler 64 / pasmo 70cm) ale niestety najniżej z częstotliwością zszedłem do 147,775. Proszę o podpowiedź jak zejść z częstotliwością niżej?
Na takie objawy może miec wpływ wiele spraw, niestabilny zegar (np. masz kwarc zewnętrzny 16MHz, a niezaprogramowany bit konfiguracyjny CKOPT), może być fatalne połączenie wszystkich procedur w całość i/lub nieprzemyślany do końca kod programu itp. Może jakieś ściślejsze i nieskrótowe dane ? Cio to jest kwarc "7" i preskaler "3" ? Jakie parametry konfiguracji...
Chce wlutować bezpośrednio w nogi podstawki do atmegi :P trochę będzie odstawać ale ważne, że działa :) Podpowiedz mi jeszcze, czy jak przylutuje kwarc i preskaler zmienię na odpowiednio mi pasujący to nie muszę w zadnym rejestrze timera0 nic ustawiać, ze to jest zewnętrzny oscylator? (pomijając fusebity)
Raczej nie, ponieważ RTC w ATmega z reguły robi się na odrębnym kwarcu 32kHz co daje przy odpowiednim ustawieniu preskalera na T2 przerwanie co 1 sek, to dla twojego pomiaru stanowczo za mało. Co do RS-a to musisz zastosować MAX232 aby konwertowań poziomy logiczne i to wszystko.
Wpisz większą wartość do OCR1A, przerwanie wtedy musi wywoływać się rzadziej albo zrób tak jak czasami robię kiedy procek działa za szybko a potrzebuję mieć przerwanie rzadziej; zadeklaruj zmienną globalną, np: uint8_t licz = 0; SIGNAL(TIMER2_COMPA_vect) { licz++; if(licz >= 10) //liczba przykładowa, zależy jak często chcesz...
No własnie mam dziwne cudo : Liczy się tak Fcpu/ preskaler Czyli mam Kwarc 8Mhz /256 = 31250hz A ja mam 8/ preskaler 1 = 15625Hz ? Musze stosować kwarc 16mhz by miec 31Khz.. Kod: Dim GP as Byte Config Timer2 = pwm , Prescale = 1 , PWM=on , Compare pwm = clear up Compare2 = gp Dziwne...
Chciałbym odmierzyć czas za pomocą Timera0 w moim AVRku - chodzi dokładnie o 1sec. Policzyłem to sobie następująco: Kwarc 7372800 / Preskaler 256 / Load Timer0 = 144. Wynik = 200, więc liczę przerwania do 200 i inkrementuję licznik sekund. Problem w tym że trwa to trochę dłużej niż 1s. Coś źle liczę czy to inny problem?
A po co ten nawias? 16MHz czyli 1 cykl trwa 1/16000000 = 62,5ns. 200*8*62,5ns = 100us
Przy takim zapisie do rejestru TCCR0 masz ustawiony tylko bit CS02. A to oznacza preskaler 256.
Z kwarcu i preskalera wyliczasz sobie przy jakiej wartości licznik powinien się przepełnić i taką wartość ustawiasz w rejestrze OCRx. Włączasz tryb CTC timera, preskaler i przerwanie.
Witam jutro będę wszystkie porady sprawdzał o efektach się pochwalę. Właśnie za bardzo nie rozumiem tego zapisu timera jak to dokładnie jest Dostałem też na PW taką informację "Załóżmy ze masz kwarc 8Mhz. Prescaler dasz 256. Wartosc początkowa 125. Czyli 8000000/256/125=250Hz Masz 4 wyświetlacze więc 250/4 =62.5Hz. Każdy wyświetlacz bedzie świecił mocno...
Tak obliczenia są w porządku. Wartość do TIMSKu możesz wgrać taki sposób jak napisałeś ale ładniej jest: ldi r16, (1<<TOIE1) out TIMSK, r16 Pamietaj że po wywowałniu procedury obsługi przerwania musisz odłożyć na stos wskażnik Z. W przerwaniu musisz załadować od nowa TCNT1. Procedure przerwania zawsze koczymy instrukcją reti. A co do wartości...
Nie wiem jak tam z ustawieniami wewnętrzengo kwarcu i preskalera ale postaraj się na jak największy :) Bo za szybko nigdy nie będzie działał :D
Odnośnie wsadu do pamięci - mogę w wolnej chwili coś podpowiedzieć, ale potrzebuję informacji: - częstotliwość kwarcu w syntezie - preskaler w syntezie (stopień podziału preskalera) - częstotliwość pierwszej pośredniej - no i oczywiście kanały jakie mają być zaprogramowane. To się liczy programem tdd1742.exe - dla rastru 10kHz trzeba wymienić kwarc...
Zauważ tylko, że czas wykonywania trwa 1/FCore, a FCore nie musi być równa częstotliwości kwarcu. Prawie wszystkie AVRy mają preskaler zegara, a niektóre także PLL do mnożenia częstotliwości kwarcu. W efekcie należy to uwzględnić.
Są 3 możliwości: 1. Delay ma ograniczenia (nie znam Arduino), ale tutaj nic nie jest napisane: http://arduino.cc/en/Reference/Delay 2. Masz włączony preskaler rejestrem CLKPR – Clock Prescale Register ale tego nie widać w programie. 3. Fusebity ustawione sa na wewnętrzny generator 8MHz, a nie na zewnętrzny kwarc. Tak jest w Twoim przypadku. Łatwo...
1. Disable the Timer/Counter2 interrupts by clearing OCIE2 and TOIE2. 2. Select clock source by setting AS2 as appropriate. 3. Write new values to TCNT2, OCR2, and TCCR2. 4. To switch to asynchronous operation: Wait for TCN2UB, OCR2UB, and TCR2UB. 5. Clear the Timer/Counter2 Interrupt Flags. 6. Enable interrupts, if needed. DS pod tym względem trochę...
Robiłem kiedyś sterownik choinkowy pięciokanałowy. Sprawę rozwiązałem następująco: - przerwania od przepełnienia Timer0 generują skoki do podprogramu (u mnie był kwarc 4MHz, dobierz preskaler) [syntax=basic4gl]Config Timer0 = Timer , Prescale = 1 Enable Timer0 On Timer0 Software_pwm Enable Interrupts Dim Reference As Byte Dim A As Byte Dim B As Byte...
W jaki sposób objawia się problem? Tak poza tym, to mam kilka uwag: 1) program nie będzie zbyt dokładnie odmierzał czasu, może gubić całe 100 milisekundowe odcinki czasu, 2) sekundy, minuty, godziny będą trwać o jedną "mniejszą" jednostkę za krótko, tzn. np. minuta będzie trwać 59 sekund zamiast 60 sekund, 3) definicję częstotliwości kwarcu powinno...
Przy uważnym przeglądaniu rysunku widoczny jest kontakt do autora. A czy będzie to pasowało do tych magicznych cyferek które podajesz ??? Jeśli jest tam TDD1742 napędzane kwarcem 6,5MHz plus preskaler 40/41 (sp8793) to może zadziała.Zresztą myślę że program jest elastyczny i można go dopasować do modelu.
nie - bariera jest rozstawiona teraz na powiedzmy około 6 cm od siebie. Wydaje mi się, że jest to problem z timerem, ale wg mojej oceny prawidłowo go zadeklarowałem. Dodam, iż kwarc mam 11.0592MHz. Preskaler 256. Przerwanie timera co 1 sekundę.
Cześć. Po chwili przerwy wracam do tematu. pomyślałem że spróbuje jendnak zastosować sterowanie wskaźnika przy pomocy PWM. Zastanawiam się jednak, jaką czestotliwośc zastosować? Na wyjsciu dam tez jakis filtr RC np 1,5k i 1u. Chciałbym aby odpowiedź układu na zmiany była dośc szybka oraz by wskazówka przy małych częstotliwościach nie skakała. Na stronie...
Przy dołożeniu preskalera o podziale innym niż 10 do potęgi N musisz zmienić czas bramkowania czyli rzeczywiście wymienić kwarc wzorca. Jeśli na to pozwala aplikacja tego scalaka. Przy braku właściwego kwarcu możesz zastosować podzielenie częstotliwości kwarcu oryginalnego przez podział preskalera wykonując zewnętrzny generator na tym kwarcu i dzielnik....
racja ,wszystko zaczyna mi sie juz mieszac... wzialem i porownalem pare f kwarcu i preskalerow i oto co mi wyszlo http://obrazki.elektroda.net/81_12198657... wyglada na to ze mozna jeszcze sprawdzic kwarc 12 Mhz i preskaler 1024 ? w granicach 1-2 ms bedzie jakies 11 krokow... troche malo :/ ale nic innego chyba nie wymysle.
Chcesz analogowo mierzyć częstotliwość z dokładnością rzędu 3,5ppm? Wydaje mi się to bardzo trudne. Nawet jeżeli znajdziesz odpowiedni przetwornik lub parę przetwornik-preskaler, to 14 bitów da Ci 1/2**14 = 61ppm, np. jeżeli przyjmiesz 144,2MHz za nasycenie przetwornika, to uzyskasz rozdzielczość (a to jeszcze nie jest dokładność!) 8,8kHz. Musiałbyś...
Metodą prób i błędów dobierz odpowiedni preskaler. Ja na atmega 128 przy kwarcu 16MHz tryb pracy PWM'a fast mode mam ustawiony preskaler na 128, jednakże przy takim ustawieniu silniki piszczą(częstotliwość w paśmie słyszalnym).
Liczymy częstotliwość sygnału PWM: Fpwm = 1/PWM Period - częstotliwość PWM PWM Period = [(PR2) + 1] • 4 • TOSC • (TMR2 Prescale Value) PR2 - licznik TMR2 możesz wybrać wartość od 0 do 255 TOSC - okres oscylatora 1/Xtal, Xtal - częstotliwość kwarcu TMR2 Prescale Value - preskaler licznika TMR2, wartości jaki możesz wybrać 1, 4, 16 Musisz...
Ja tu widzę następujące rozwiązania: 1) Użyć licznik T1 (licznik 16 bitowy). Przy taktowaniu 8MHz i ustawieniu preskalera 1:1024 można otrzymać czas równy: 1/8000000 * (32768 * 1024) = 4,19 sek 2) W funkcji obsługującej przerwanie użyć dodatkowej zmiennej: SIGNAL(SIG_OVERFLOW0) { static uint8_t licznik; //zmienna zliczajaca przejscia pętli, koniecznie...
Jeśli nie wykorzystujesz tych samych pinów co kwarc zegarkowy to nic się nie będzie gryzło... O ile dobrze pamiętam wystarczy podpiąć kwarc 32,768kHz bez kondensatorów pod TOSC1 i TOSC2... Raz po uruchomieniu uC odpalasz timer2 w trybie asynchronicznym i tylko włączasz albo wyłączasz przerwanie od przepełnienia... Ustawiasz preskaler tak żeby przepełnienie...
1. Oscylator wewn. 8MHz można użyć rónie dobrze do analizy dużo większych częstotliwości. A to że czytałeś że RC wbidowane nie mają zbyt dokładnego sygnału taktującego, to niestety trafiłeś na stek bzdur powielany na wielu forach. I nie chodzi o to czy jest on dokładny czy nie, tylko o to żeby nauczyć się kiedy warto zastosować wewn oscylator a kiedy...
Preskaler 1024 jest dobry jeśli napewno masz kwarc 16MHz.
Problem bierze się stąd, że rzadko kiedy przerwanie jest wywoływane co jakiś "okrągły" czas, np. co 100us. Zwykle użyty kwarc i preskaler powodują, że odmierzane odcinki czasu pomiędzy przerwaniami nie są "okrągłe", a co za tym idzie łatwe do liczenia. Dodatkowa zmienna f ułatwia nam zliczanie milisekund. Akurat w podanym przykładzie przerwanie ma być...
Mam problem bo probuje uruchomic timer w trybie CTC i podczas debugowania widze ze program w ogule nie wchodzi mi do obslugi przerwnia (SIG_OUTPUT_COMPARE1A) moze czegos nie "urchumomilem"?Korzystam z PDF'a tegoz atmela ale nie wiem co jest zle... Genelanie w programie chcialem osiaganac przerwanie co 1 sek bo konstruluje zegar..Ale jak to uzyskac...bo...
Mówimy o STM32F4 czy zwyczajnym? Bo jak o zwyczajnym, to tam po prostu musisz sobie zrobić "czas unixowy", czyli liczbę sekund od jakiejś daty i przy potrzebie przekształcenia tego na format czytelny po prostu przeliczać. P.S. Definicje z których korzystasz (np. RCC_APB1Periph_PWR) są dla funkcji z biblioteki SPL, a nie do wpisywania wprost do rejestrów....
Zerknąłem w PDF i faktycznie, 16 bitowy jest jedynie timer1 Jak zatem wpisać w timer2 liczbę przewyższającą wartość 255? Skoro jest 8 bitowy... Dodano po 2 Zakręcony dziś jestem. Przecież była mowa o timer1! Dodano po 38 Nie mogę tego zrobic na timer1, bo on nie umożliwia taktowania go z zewnętrznego kwarcu. Zarówno M32 jak i M8 mają jedynie timer2...
Ustawić mu podział preskalera przez jeden - wszystko.
O co mi dokładnie chodzi: W helpie Bascom jest napisane, że w przypadku kości 8535 mam do dyspozycji preskalery 1, 8, 32, 64, 128, 256, 1024, a dla kości M103 1, 8, 32, 64, 256, 1024. Ja zaś posiadam kość M32 i w PDF, który dotyczy tego mikrokontrolera jest tabelka na 127 stronie, która zawiera w sobie jakby wykaz dostepnych częstotliwości, ktorymi...
Jako ze nie przepadam za pisaniem na maile, to odpowiem tutaj... Musisz skonfigurowac odpowiedni timer i przy przerwaniu, jakie generuje int czas=0; int timer0=131; SIGNAL (SIG_OVERFLOW0) { czas++; if (czas==5000) BUUM(); //jezeli czas osiagnal 5000ms, to wywolaj funkcje BUUM(); TCNT0 = timer0; // zaladowanie do...
procek jedzie na 1MHz wew. zegarze. Rzecz w tym, że nie jest to sobie takie równe 1MHz, tym bardziej bez kalibracji. Jak chcesz dokładniej, to użyj Timer2 w trybie asynchronicznym z dodatkowym rezonatorem kwarcowym 32768Hz. Przejrzyj noty aplikacyjne AVR134 i AVR055.
Witam serdecznie! Mam problem z wyliczeniem czasu trwania modulacji PWM. Dane: kwarc 8MHz, preskaler 1, pwm 8bit, waitms 4 Dają one mniej więcej sekundę na zmianę jakości LEDa z 255 do 0. krok_z=255 do pwm1a=krok_z waitms 4 decr krok_z loop Chciałbym rozciągnąć ten czas na kolejno 5,10,15,20,25 i 30 min. Próbowałem jakichś współczynników korygujących...
Nie wiem o co chodzi, ale bierzesz smartfon, słuchawki, i masz wszystkie stacje i częstotliwości do przestrajania. To tak nie działa. Sygnał z hetreodyny był pobierany przez kondensator lub pętlą a układ odejmował od pomierzonej częstotliwości wartość pośredniej 10,65; 10,7; 10,75 w zależności od połączenia wyprowadzeń sterujących. Na wyświetlaczu...
Witam Mam problem z doborem wartości filtru RC. Buduję układ generatora przebiegu piłokształtnego za pomocą PWM w mikrokontrolerze AVR 8-bitowym. Wykorzystuję 8-bitowy PWM. Mam zewnętrzny kwarc 8 MHz i preskaler ustawiłem na 1024. Okres to 200 próbek sygnału. Jaką muszę mieć częstotliwość odcięcia dla tych parametrów? Nie wiem, jaką częstotliwość wybrać....
Panowie prośba. Męczę się i męczę i czytam i czytam.... i gdy coraz więcej czytam to się coraz bardziej gubię. Mam wrażenie, że DS od Atmega 168 jest napisany w strasznie zagmatwany sposób. Przejdźmy do sedna: Chcę ustawić końcówkę OC2B by generowało mi na niej przebieg prostokątny o okresie 8ms. No i tu mam problem bo opis z helpa bascoma dla timera2...
Przy 16MHz, prescaler=256, początkowa wartość Timera1=3036 uzyskasz teoretycznie 1s. Można to oczywiście przeliczyć na wartość do wpisania do OCR1A. Z dokładnością do 6 miejsc po przecinku. Po czym poczytać o stabilności i dokładności kwarcu, o tym że jednak w tym przerwaniu coś trzeba zrobić, o prologu i epilogu wejścia w przerwanie i wtedy można sobie...
Trzeba ustawić domyślny preskaler (ustawiany po resecie) na równy 1 (czyli "brak preskalera"). A Źródło taktowania na zewnętrzne (External).
Witam Czy mozna podczas gdzy Timer1 sobie liczy odczytac z niego wartość? ustawia preskaler na 64 i probuje odczytywac rejestry TCNT1H i TCNT1L i zawsze dostaje 0. Kwarc 1MHz , timer sie uruchamia bo mam od niego przerwanie.
witam chodzi mi o ustawienie preskalera w timer2 ,bo podobno dzielnik odnosi sie w tylko do sygnalu wewnetrznego a nie do zewnetrznego kwarcu jaki mamy podpiety... (tak zrozumialem z dokumentacji) Wiec jezeli mam taktowanie zewnetrznym kwarcem to ile wynosi ten sygnal wewnetrzny ,bo nie wiem jak policzyc jedno tykniecie zegara dla danego preskalera...
Jeżeli chcesz aby przerwanie było wywołane co sekundę to preskaler musisz ustawić na 128 oraz podłączyć kwarc zegarowy do nóżek TOSC1 i 2.
Tiny na wewnętrznym generatorze nie potrzebuje kwarcu. Uważaj jednak na specyfikę Tiny tj. na preskaler generatora taktującego. Oryginalnie generator wewnętrzny pracuje na 8MHz z preskalerem dzielacym przez 8, więc uC jest poganiany z częstotliwością 1MHz. Preskaler można wyłączyć.
Czy takie coś będzie liczyć czas w miarę poprawnie? - taktowanie układu kwarcem 4MHz (1 takt = 0,00000025s) - preskaler /128 (po przeskalowaniu będzie 1 takt = 0,000032s) - inicjalizacja timera od 34286 (65536 - 31250), 31250*0,000032=1s Nie ma preskalera 128. Masz do wyboru 1|8|64|256|1024 A u mnie tak właśnie liczy na kwarcu 8Mhz/256 tyle, że w CTC...
ok, poprawiłem i dioda się zapala, ale timer tutaj jest prymitywnie badziewny. Lepiej byłoby to zrobić tak, że dioda zapala się po kilku sekundach. Tylko wtedy trzeba zrobić odmierzanie czasu na timerze...Teoretycznie czytałem o tym i wiem jak to zrobić, preskaler na pewno na 1024, kwarc mam 16MHz, więc dzieląc częstotliwość przez preskaler otrzymam...
XMEGA zawsze startują z zegarem 2 MHz, programowo możesz sobie potem to zmienić - wybrać np. dostępny na Xplained kwarc zegarkowy, skorzystać (jak w powyższym przykładzie, błędnym zresztą) z wbudowanego RC 32 MHz, masz też do dyspozycji PLL i 3 preskalery zegara. Na twoim Xplained możesz wybrać dowolny wewnętrzny generator zegara, lub kwarc zegarkowy,...
Czy mam je ustawić zgodnie z wartością kwarcu przed podziałem czy po podziale. Czy mam CKSEL usatwić na 7Mhz czy na 900KHz? Wystarczy wydedukować: Spróbuj ustawić za pomocą CKSEL te 900kHz o które pytasz. Da się? Jeśli by się dało, to po co byłby potrzebny dodatkowy preskaler CLKPR? Szukałem w pdf ale nie znalazłem tej kwestii. Wszystko jest opisane...
Trzeba policzyć odpowiednio preskaler i wartość do której ma zliczać timer. Ale generalnie powinno być dokładnie. Dokładniej niż na kwarcu zegarkowym.
Dexterowi się nie udało, to ja spróbuje :) Podłączasz kwarc dziesięć megaherców, to przebieg zegarowy/cykl maszynowy/cykl taktujący trwa 100ns czyli 1/10 000 000 herców, a jego częstotliwość wynosi 10 Megaherców T=1/F , 1[1/s]= 1Hz No chyba że go wewnętrznie podzielisz preskalerem, albo wrzucisz na pll, ale 90S2313 ma taką częstotliwość sygnału taktującego...
To ze te timery licza Ci inaczej to znaczy ze masz rozno ustawione preskalery do tych liczników. Jednej sekundy na takim kwarcu nie uzyskasz. Bedziesz musiał albo zastosować sygnał zewnętrzny albo licznik programowy dla timerów.
Tego nie widziałem. Znalazłem za to informację że dotyczy to rezonatora pracującego jako generator wytwarzający główny sygnał zegarowy: http://obrazki.elektroda.net/9_123515576... A po drugie, akurat w ATMega8 jest błąd w krzemie i te wewnętrzne kondensatory nie działają (tzn. FuseBit ich nie włącza). Użycie rezonatora jako źródła sygnału dla...
BTW, tego fusebitu nie trzeba przestwiać, można to zrobić programowo - on wybiera tylko domyślną (początkową) wartość preskalera.
Dokładne wartości znajdziesz w nocie użytego kwarcu. Z pewnością dla kwarcu 12 MHz i 32 kHz będą różne. Na oko można strzelać, że dla kwarcu 12 MHz to będzie coś koło 8-10pF, dla kwarcu zegarkowego koło 20pF. Pamiętaj, że jeśli użyjesz kwarcu zegarkowego to drugi nie jest ci potrzebny, chyba, że wewnętrzny RC ma za małą częstotliwość. Kalibrację wewnętrznego...
No już wszystko jasne - lewy licznik 40103 to tzw dzielnik A a prawy to dzielnik N. CD4001 realizuje logikę przełączania modułu preskalera +1 . Szkoda że tego nie narysowałeś. 4046 to detektor fazy a binarny licznik 4020 zapewnia sygnał referencyjny dzieląc f kwarcu na częstotliwość rastra strojenia. Klasyk Spróbuj zbadać jaka jest częstotliwość referencyjna...
jeśli do portu $3f8 wpiszesz jakąś daną, to zostanie ona wysłana przez kabel TxD.. jeśli dane zostaną odebrane z linii RxD to odczyt portu $3f8 zwróci tą właśnie daną.. tz: Zapis $3f8 - Wysłanie danych.. Odczyt $3f8 - Odczyt odebranych danych.. jeśli w porcie $3f8+5 (LSR) jest ustawiony bit: 0 - odebrano bajt, można go odczytać z portu $3f8 1 - błąd...
AVR 2313 preskaler 1 | 8 | 64 | 256 | 1024, timer0 ma 8 bitow
Faktycznie nie podałem że adres 0C odpowiada za funkcje preskalera, fajnie że znalazłeś. Sprawdź kwarc a jak nie możesz to go podmień.
Zmień także [syntax=c]OCR1A = 31250; // Ustawia wartość pożądaną na 1Hz dla preskalera 256- 1 sekunda[/syntax] na [syntax=c]OCR1A = 31249; // Ustawia wartość pożądaną na 1Hz dla preskalera 256- 1 sekunda[/syntax] Może coś pomoże.
To popraw zasilanie, bo jesli tak ci się to sypie to znaczy że jest bardzo źle. Włącz sobie generator RC, do nóżek TOSC podłącz kwarc 32kHz. Prawdopodobnie trzeba tez dodac do jego nóżek kondensatory. W AtM8 mozna je właczyć wewnętrznie, a widzę że ty masz M32 więc nic z tego. TIMER2 będzie ci cykał tym kwarcem. Ustaw mu preskaler na 1024. Co 32 cyknięcia...
Mam taki wzorcowy generator 32768 hz i z niego podawałem sygnał na 1 kanał oscyloskopu z synchronizacją i na drugi kanał oscyloskopu sygnał z zegarka. Oczywiście sondą nie można dotykać zegarka bo sonda ma pojemność, tylko na zbliżenie. Ustawia się tak, żeby nie płynął przebieg od zegarka. No ale przy niewielkiej różnicy częstotliwości to płynięcie...
W uproszczeniu częstotliwość sprzętowego generatora PWM to następująca zależność: F oscylatora / Prescaler / X, i tak: dla rozdzielczości Pwm=8 bitów X=510, dla rozdzielczości Pwm=9 bitów X=1022, dla rozdzielczości Pwm=10 bitów X=2046. Przykład dla rozjaśnienia: F kwarcu = 8MHz, rozdzielczość generatora PWM=9 bitów (możliwe 8,9 i 10), Prescaler=8 (możliwe...
(...) żdy zasilany z osobnego źródła i odseparowany transoptorami PC817. Ze względu na ich szybkość oraz niską wartość prądów je sterujących 1mA zegar musi być obniżony do 10KHz ma. Chcę zrezygnować z polecenia: waitus 100 w zamian zrealizować to w obsłudze timer0 a w główną pętle przeznaczyć na inne cele. Rozumiem, że chcesz optymalizować swoje oprogramowanie...
Przy ustawieniu kwarcu na 1MHz i preskalera na 1024 w przypadku tego timera przerwanie bedzie miało miejsce co 0,262s (tak mi podaje taki mały programik). Czy dla 8 bitowego timera jest w takim razie w jakikolwiek sposób realizowalne przerwanie co np 1sek? Czy tylko mogę wykorzystać do tego timer 16bitowy?
ISR(INT0_vect) { ISR(TIMER3_OVF_vect) { TCNT3 = WARTOSC_PRZELADOWANIA; czas++;}} ISR(INT1_vect) {} Pomijając fakt że atmega16 nie ma timera nr3 ( tylko 0,1,2) ta konstrukcja wygląda dziwacznie :) skoro mam podłączony kwarc 16Mhz, to preskaler ustawiam na taktowanie zewnętrzne Taktowanie zewnętrzne wymaga fizycznego podłączenia sygnału taktującego z...
po pierwsze to attiny trzeba przestawić na zewnętrzny kwarc, bo standardowo jest na wewnętrznym RC. po drugie ATtiny2313 ma dodatkowy fusebit odpowiedzialny za podział częstotliwośći zegara przez 8. niepamiętam jak sie on nazywa dokładnie ale jak programujesz z bascoma to tam jest to ładnie nazwane (clock frekwancy divider) czy jakoś tak. standardowo...
synteza preskaler preskaler lb3500 preskaler licznik
plamy ekranie wyłącza subwoofer aktywny panasonic wireless
hewalex sterownik hewalex sterownik
Gdzie kupić płytę główną HK.T.RT2957P91 do Manta LED5003? Samsung CLX-3185 nie drukuje - diagnostyka i rozwiązania