W DSie masz pzrecież wzór: f_ocnx = fclk/(2 N ICR) jak masz 16Mhz i preskaler 256 to masz częstotliwość(ICR = 1000): f = 16000000/2/256/1000 = 31,25 Hz
Witam, mam jedno głupie pytanie - jaka jest domyślna częstotliwość zegara CPU dla ATmega32? Może to dziwne, ale nie mogę znaleźć jednoznacznej odpowiedzi... Następne pytanie, to częstotliwość dla Timera 2 w trybie CTC, bo znalazlem w internecie , że wyznacza się ją ze wzoru f=Fcpu/(preskaler*OCRn), natomiast w datasheecie wyraznie jest wzór f=Fcpu/(2*preskaler*(OCRn+1))....
W dokumentacji niestety dla licznika 1 nie występuje preskaler 128. Występuje natomiast 256. Zakładając, że licznik pracuje w trybie CTC (WGM12 =1) i zakładając 8MHz źródło sygnału zegarowego (tak jak jest w komentarzu w kodzie) należy wpisać do OCR1A= 31249 oraz ustawić preskaler na 256 czyli CS12=1 A tak na przyszłość ...nota katalogowa. Tam wszystko...
Wg wzoru z DSa to masz 5Hz a nie 50: f_{PWM} =\frac{f_{clk}}{N\cdot (1 + TOP)} Daj preskaler 8 a do TOP wpisz 4999 :)
Dokładnie aby wyliczyć potrzebny czas potrzebujesz pełnego wzoru: T = 1/(fcpu/PRESCALER/(65536-LICZNIK)) gdzie: fcpu - taktowanie procesora, PRESCALER - stopień podziału preskalera, LICZNIK - początkowa zawartość licznika. T = 1/(1000000/1024/(65536-6942)) = 60.000256s Wszystko odnosi się do licznika 16-bitowego. Dla licznika 8-bitowego wzór jest podobny:...
Wartość dla 1 sekundy: OCR1A=((częstotliwość procesora)/preskaler)-1 Wartość dla 4 sekund OCR1A=((częstotliwość procesora)/preskaler)-4 Jedynka w podanym przeze mnie wzorze nie oznacza 1 sekundy. Jeden trzeba odjąć z innych względów. Po prostu licznik nie zaczyna liczyć od 1 tylko od 0, więc odliczanie np. do 5 oznacza (0 1 2 3 4 5), czyli 6 impulsów....
Witam ponownie. Chciałbym zapytać o obliczanie częstotliwości taktowania zegara dla interfejsu TWI, ponieważ widzę 2 sprzeczności. Według dokumentacji ATmega328p wzór wygląda tak: https://obrazki.elektroda.pl/6361159800_... gdzie wartość preskalera można dobrać z poniższej tabeli: https://obrazki.elektroda.pl/6571254400_...
Hej. Dzięki za odpowiedź. Będę musiał jeszcze nad tym przysiedzieć bo coś mi się to wszystko rozjeżdża. Ustaliłem częstotliwość PWM z następującego wzoru - częstotliwość rezonatora/preskaler/510(w przypadku pwm 8bit) Pogubiłem się totalnie w tych timerach i ustawieniach. Jutro po pracy wezmę się jeszcze raz za książkę i poczytam - może się coś rozjaśni;...
To jest po prostu stała obliczana ze wzoru OCR1A = (t*F_CPU/preskaler) gdzie: t= pi/3 = 3.(3)ms F_CPU = 14745600 stąd OCR1_DEF = 6144 a tu definicja ;) [syntax=c]#define OCR1A_DEF 6144[/syntax]
W datascheet ATmega8 na stronie 112 jest wzór na częstotliwość PWM dla Timer2: fPWM=fCLK/N*510 gdzie N to preskaler. 8000000/1*510=15686Hz
witam, zamierzam, przy użyciu timera 1 wygenerować falę nośna 36kHz a następniej wysyłać kody RC5. zakładając, że: FCPU = 8MHz preskaler = 8 ze wzoru http://obrazki.elektroda.net/100_1247003... obliczyłem, że wartość OCRnA ~ 13. następnie ustawiam Timer: TCCR1A = 1<<COM1A0; // toggle OC1A on Compare Match TCCR1A = 1<<WGM12; // CTC mode...
Dla ATmega8 na str. 91 jest wzór na częstotliwość PWM Może masz zbyt wolny zegar żeby uzyskać pełne sterowanie? Albo zbyt duży preskaler?
ok,dziękuję sprawdzę tak teraz wpisałem, to co zalecił excray, rozumiem że tutaj zalecił preskaler =1 (ze wzoru 1mhz/2/1-preskaler/500=1 khz) A czemu kolega używa TCCR1B ,czy nie można używać opcji z TCCR1A (wedle pdf CS00=1 dla preskaler =1),tzn czy : TCCR1B |= (1<<WGM12) | (1<<CS10) nie mogło by być : TCCR1A |=(1<<WGM12) | (1<<CS00)...
Jeśli warunek z tego wzoru zostanie spełniony: F/R/P<1023 F=częstotliwość na we. preskalera R=raster P=podział preskalera (P,P+1) ...oznaczać będzie że preskaler z podziałem P się nada dla MC145152.
Witam forumowiczów Postaram się problem szybko opisać. Chcę za pomocą Timera1 16bitowego w Atmedze 32 skonfigurować np. Fast PWM o danej częstotliwości i zobaczyć jego przebieg na oscyloskopie. Częstotliwość w tej chwili jest obojętna bo i tak jakieś bzdury pokazują na oscyloskopie. Zamieszczam poniżej kod konfiguracji jaką teraz zrobiłem #include <avr/io.h>...
Ostatnie pytanie i już nie "nudzę". Wzór na częstotliwość przy "Toggle OC0 on compare match" który do wartości OCR 1 jest idealny to: F_CPU/((OCR+1)*2N), N to preskaler. Przy OCR 2 otrzymuję ze wzoru i na pinie idealne 2,66 MHz, natomiast przy OCR 1 ze wzoru i na pinie idealne 4MHz. Przy OCR 0 tu i tu 8 MHz. Wzór znalazłem u jednego z autorów książek...
Skorzystaj z DS i ze wzoru tam podanego na częstotliwość dla trybu CTC to wszystko będzie się zgadzać.
(...)Mam jednak pytanie, czy można to zrobić w jakiś inny sposób, aby zmiana tempa zależała tylko od zmiennej speed ? Ten sposób jest jak najbardziej odpowiedni. Mam tu następujące sugestie: - poprawić dokładność ustawiania tempa poprzez zwiększenie częstotliwości przerwań (ustawienie preskalera na 1), - przeliczać zadaną wartość tempa w bpm na wartość...
Więc dlatego proszę o sprawdzenie kodu Nie wiem jaki wpływ na dekodowanie RC5 ma częstotliwość zwiększania zmiennej g_licznik , ale wartość ładowana do OCR, nie zgadza mi się z komentarzem. OCR1A = 25; // Ustawia wartość pożądaną na 20kHz(50us) dla preskalera 8 Wzór wygląda tak: OCRx=F_CPU/prescaler/częstotliwość - 1
Częstotliwość jest 333Hz bo jest 8000000/(2*preskaler*(1+OCR0)) Według mnie nie, ponieważ ten wzór dotyczy CTC na pinie OCRn. Natomiast przerwanie jest generowane w momencie zrównania się timera z OCR0 i mówi o tym tabelka: Table 38. Waveform Generation Mode Bit Description Może to jest Twoim problemem bo multipleksowanie jest 2x szybsze niż zakładasz....
Pdf-a nawet nie otwarłem. Program podaję jako wzór. Wyswietlacz wiadomo jak podłączyć, impulsy na T0, kasowanie wewnętrznego preskalera ujemnym impulsem z D.6 (można potraktować jako opcja), Przełączanie zakresów (dodatkowy prescaler) na D.0 (można potraktować jako opcja). Jak znajdę czas to pooglądam pdf'a. Ze względu na preskaler wewnętrzny wynik...
Witam, Piszę od nowa program dla DS1307. Mój problem polega na tym, że dziwne wychodzą mi wartości podczas wyliczania jaką wartość powinien mieć rejestr TWBR. Dane: częstotliwość Atmega8l = 1000000 | 1Mhz TWPS = 1 (preskaler 1) SCL= 100khz (DS1307) Podstawiając to do wzoru z dok. technicznej Atmega8l [url=http://www.atmel.com/images/atmel-2...
Po pierwsze poznajmy sposób tworzenia bitu. Każdy bit składa się z kilku segmentów czasowych o pewnych określonych funkcjach, których wyjaśnianie nie ma znaczenia dla tego przykładu, oto z czego składa się bit: BIT_TQ = SYNC + PROP_SEG + PS1 + PS2, gdzie: BIT_TQ - liczba kwantów czasu w bicie (o kwantach czasu poniżej) SYNC - synchronizacja PROG_SEG...
1. Tak jak mówiłem, układ działał na tej konfiguracji, z tym pluginem więc wątpię żeby po jego stronie była wina. Ale sprawdzę. 2. Zegary sprawdzałem na oscyloskopie, wszystko się zgadza, magistrala taktująca SPI ma 84 MHz, częstotliwość SPI po ustawieniu preskalera zgadza się ze wzorem fspi/prescaler. 3.volume jest dobrze ustawione, dla kontroli sprawdzałem...
Udało mi się odpalić program z książki Pana Wiązani, ale tam timet odmierza 1s Jak to przeliczyć? Jest jakiś na to wzór? Rzeczywiście musiało się 'udac odpalić' bo ten program nie jest pozbawiony błędów (!) \ A jak zrobić żeby odmierzał np 10 sekund? Zmiana preskalera wydłużyła max do 2sekund czas. Aby timer1 odmierzył inne/dowolne interwały czasu,...
A włączyłeś globalne przerwania (sei() ?? W kodzie Pana Mirka nigdzie tego nie było, tym bardziej nie wiem, gdzie to nawet wstawić :-> Edit:// Przerwania globalne sei(); dodane, lecz nadal pustka na lcd. Nie wiem w jaki sposób obliczyć OCR1A. W datasheet jest jakiś wzór: fOCn=(fclk_I/O)/2 ⋅ N ⋅ (1 + OCRn) Tylko za bardzo nie wiem co podstawić...
Witam Chcę zbudować generator fali 36kHz. Doczytałem się ,że mogę wykorzystać tryb CTC. Proszę o kilka wskazówek: 1. Czy dobrze myślę ,że wyjście timera T0 jest na nodze PB2 (14) ? 2. Chcąc zrobić generator fali muszę: - ustawić częstotliwość zegara - ustawić toggle mode - ustawić preskaler Wyliczyłem ze wzoru z dokumentacji ,że potrzebuję częstotliwość...
Nie chciałem tworzyć kolejnego tematu tak więc dołączam się do tego. Mam problem z ruszeniem serwa RC sterowanego przez Atmege8. Zasilanie serwa puszczam bezpośrednio ze stabilizatora L7085: +5VDC podłączam pod czerwony przewód serwa GND podłączam pod brązowy lub czarny przewód serwa (mam 2 różne serwa) OC1A (wyjście PB1 z Atmegi) podłączam pod pomarańczowy...
Witam, Chcę wykorzystać sprzętowy tryb PWM poprawnej fazy Timer0 do regulacji prędkości obrotów oraz kierunku obrotów silnika DC. Nie wiem, jaka będzie najlepsza częstotliwość?? W datasheet znalazłem wzór: f=f_kwarcu/(N*510) ; N-wartość preskalera W moim przypadku kwarc = 16MHz. Silnik wymontowałem z starego magnetowidu. Parametry nie są określone :cry:
Dziękuję za odpowiedź, ale racji tego, że nie podałem wartości rezonatora to zrobiłeś to od końca i nadal nie wiem skąd wzięły się poszczególne liczby. Muszę to w końcu zrozumieć bo inaczej nic z tego a wszelkie książki wcale mi tego nie ułatwiają. Zacznijmy od początku te obliczenia. Będę zadawał pytania na poszczególnych etapach - ok? 1. Timer0 potrafi...
A w nocie katalogowej ( [url=http://www.atmel.com/dyn/resources/... jest na stronie 89 wzór. Przekształcając otrzymuję: OCR1A=(F_CPU*czas/2*Preskaler)-1 Wychodzi 28799 cykli Tyle że na tej samej stronie jest wykres i on pokazuje jak to jest zliczane. Widać że TCNTn w czasie jednego okresu (we wzorze "czas") odliczy 2 razy....
Skąd wytrzasnąłeś taki wzór :?: const unsigned int _freq_time = F_CPU/16 - 1; Powinno być: #define _freq_time = F_CPU/(153600UL*2) - 1; //preskaler=1
Witam, Męczy mnie pewna sprawa bo co innego otrzymuje w teorii a co innego w praktyce. Jak ustawić timer 2 na wybraną częstotliwość? Służy do tego funkcja setup_timer_2( preskaler, period, postskaler ) Która przyjmuje parametry: preskaler: T2_DISABLED, T2_DIV_BY_1, T2_DIV_BY_4, T2_DIV_BY_16 period: 8-bit 0..255 (albo od 1 do 256) postskaler:...
Cześć, Pozwól, że przejdę do konkretów. 1. Możesz napisać program tak, żeby aktywować timer tylko wtedy, kiedy masz aktywny klawisz. 2. Dlaczego chcesz mieć klawisz na tym samym pinie co wyjście timera? 3. Jeśli chcesz liczyć, ile razy klawisz został aktywowany (naciśnięty), potrzebujesz zdefiniować zmienną, którą będziesz zwiększać o 1 przy każdym...
Będzie szło jeżeli ze mną wytrzymasz :D Tyle że ten wzór dotyczy częstotliwości na wyjściu OCRx (sorki niepotrzebnie Ci to pokazałem). Policzmy to tak: 8MHz / preskaler / 10Hz 8.000.000 / 256 / 10 = 3125 Gdybyś użył preskalera 8 to OCR1A musiało = 100.000 ale niestety jest tylko 16bitowe. Stąd trzeba użyć większy preskaler. Zacznij pisać program: TIMSK...
W takim razie jak wektor przerwań powinien wyglądać ? tak ? ISR(TIMER2_COMP_vect, ISR_NOBLOCK) {...} Licznik liczy do wartości wpisanej w TCNT2 ?, jeżeli tak to wartość 0-255 wiele mi chyba nie da jak ja potrzebuje tak duże opóźnienia, ale mogę się mylić. znalazłem wzór na wartość tego rejestru Potrzebna ilość cykli = (1 / częstotliwość...
Zaznaczę, że wzory wiążące bezpośrednio moc transformatora z przekrojem kolumny to wzory uproszczone. Aby szczerze obliczyć ile da się z tego wycisnąć trzeba by sięgnąć do wzorów podstawowych i parametrów blach :) No i tak jak kolega Preskaler zaznaczył: można wyżyłować parametry pracy trafo, zoptymalizować go do określonego trybu pracy (praca ciągła(zasilacze)...
Tak mi to wyszło to mój pierwszy program (nie licząc włącz-wyłącz diode) wiec proszę o wyrozumiałość. Częstotliwości jeszcze nie obliczyłem bo mam z tym trudności. Nie wiem tylko czy dobrze zrozumiałem ze timer1 w trybie Pwm jako jedno przerwanie zlicza jeden cykl [syntax=basic4gl]$regfile = "2313def.dat" $Crystal=8000000 Config Pinb.3 = Output Config...
Mam taka uwage...Zrobilem sobie timer (T1) ktory mierzy do wartosci OCR1A...(atmega16, kwart 7372800 Hz, preskaler N= 8 ) Wszytko dziala tyle ze jak np chce odmierzyc jakas wartosc np 4.752ms to obliczajac ze wzoru na tryb CTC: OCR1A = Fkwarcu/ Dodano po 39 Zrobilem inny pomiar dla tych samych warunkow tyle ze symulowalem ekspymentalnie czas 1,28ms...
Tak się przyglądam temu co napisałeś kazaaski i próbuje u siebie to odpalić, tyle ze ja mam wewnętrzne 8MHz i ATtiny26. Niestety nie wiem jakie wartości (OCR1C, OCR1B )należny wpisać by osiągnąć zamierzone 38kHz :( Jak to wyliczyć? #define JEDEN TCCR1A &= ~(_BV(COM1B1)|_BV(COM1B0... _delay_us(889); TCCR1A |= _BV(COM1B1)|_BV(COM1B0);...
atmega168, konwerter i adxl345 mieszczą się na płytce 8x8cm. 2 kondensatorki do masy , czy jeden między SCL i SDA? oscyloskopu nie mam, ale jutro właśnie zamierzam sprawdzić napięcia. mam jeszcze takie pytanie: czy dobrze obliczam wartość TWBR (217 strona ATmega168 datasheet): http://obrazki.elektroda.pl/9392582500_1... TWBR=\frac{1}{2*PrescalerValue}*(\frac{F...
Następnie korzystasz ze wzoru empirycznego na ilość zwojów na wolt; Z=45/S Nieprawda !!! Ten przelicznik jest stosowany jako podstawa do oblicznia uzwojenia pierwotego na 230V AC. Dla uzwojenia pierwotnego na 10V nie można go stosować. Prawda, prawda, bo tu jest mowa o transformatorze sieciowym na 230 V a nie na 10 V. Napisałem wyraźnie, że jest to...
Skorzystałem z wzoru do obliczenia 50Hz dla trybu Fast PWM gdzie TOP to ICR1. Przekształcony wzór z dokumentacji Atmega88 na stronie 119. Czyli: 8 000 000 Hz/ Preskaler 8bit = 1 000 000 Hz 1 000 000 Hz / 50Hz = 20 000 -> wartość dla ICR1 Dalej ten prosty kod, żeby opanować na początek dość płynne regulowanie obrotami i kierunkiem [syntax=c] #define...
Witam, robię prosty generator ale utknąłem w dość błahym punkcie jakim jest regulacja częstotliwości. Chce uzyskać sygnał od 1 - 1kHz, i najlepiej żeby można było uzyskać częstotliwość z całego zakresu. Korzystam z 16 bitowego PWM w atmega8, wypełnienie reguluję wartościami rejestrów OCR1A i OCR1B. Wzór z jakiego wyliczam częstotliwość wyjściową to:...
Załóżmy że chcesz uzyskać 100Hz. Procesor kreci się na przykład 8MHz. Timer napędzany jest sygnałem takim jak procesor, ale można ten sygnał podzielić tak żeby, na przykład co 1024 takty procesora do Timera trafiał jeden takt. Taki podział uzyskuje się za pomoca preskalera. Teraz wiadomo że Timer jest już taktowany wolniej bo co 1024 takty z 8MHz, ale...
Mógłbyś jakimś wzorem zarzucić bo nie wiem co Ty tam tworzysz ? i zerknąć do DS ? Jak masz zegar 16MHz i wybierzesz preskaler 128, to ADC jest taktowany zegarem o częstotliwości 125kHz --> 8 µs Konwersja trwa 13 cykli zegarowych ADC więc 8*13µs = 104µs i to też masz wpisać jako czas między dwoma próbkami. btw, nie wiem czy wiesz, ale...
chodzi mi o kondensatory odkłócające alternator, prądnicę, cewkę zapłonową w silniku samochodowym. pojemność przykładowa 3µF Dodano po 2 Moc jaka się wydziela na oporniku można zmierzyć. Trzeba zmierzyć po prostu spadek napięcia na nim i obliczyć moc ze wzoru. P (moc) = U kwadrat (napięcie) dzielone przez R (oporność). tak ale skąd wziąć i czym...
Poi pierwsze. Do BASCOM-a jest pomoc - także po polsku, której to zresztą jestem autorem. Wersję on-line (beta) znajdziesz na mojej stronie WWW. Jak one działają? Zliczają impusy. Albo z prescalera, albo z zewnątrz. Patrz nota katalogowa. W którą stronę zliczają? Zwykle liczą w górę. W trybach PWM liczą też w obie strony. Patrz nota katalogowa. Jak...
Łopatologicznie to jest tak: Dzielnik N jest mnożnikiem preskalera P a dzielnik A dodaje się do sumy tego mnożenia dając w sumie podział całkowity z wejścia Fin. Wzór do obliczenia powinien być w aplikacji. gdy do A wpisuje od 5D do FF to nie przestraja VCO dopiero gdy przeskoczy z FF na 00 ,a N zwiększy sie wtedy o jeden to następuje nagły skok napięcia...
Nie zapominaj, że w Mojej odpowiedzi pojawia się opis do FastPWM, kiedy to licznik liczy tylko w górę. A na stronce co podałeś jak i wzór odnosi się do Phase and Frequency Correct PWM gdzie licznik liczy w obie strony. Stąd ta dwójka w mianowniku. Na chłopski rozum: 3,5MHz (fcpu) / 256 (prescaler) = 12,5kHz (ftimer0) 12,5kHz (ftimer0) / 256 (timer0max)...
Możesz ustawić tylko taką częstotliwość przerwań, która da się opisać wzorem f = Fclk / Pre / Period, gdzie Fclk jest częstotliwością zegara procesora, Pre - wartością preskalera timera - masz kilka do wyboru - sprawdź w dokumentacji Twojego procesora, Period - okres timera - 1..256 dla 8-bitowego, 1..65536 dla 16-bitowego. Zacznij od wyboru timera...
4. Blokowy układ pamięci wynika z ograniczonej przestrzeni adresowej. Dany układ nie pozwala na adresowanie każdego bajtu z osobna więc stosuje się bloki np po 64 lub 128 bajtów. Zatem wybierając adres powiedzmy 32, zaglądasz do szufladki w pamięci do której możesz zapisać te 64 lub 128 bajtów. Adres 33 wskazuje na inną "pustą" szufladkę w której jest...
witam, trywialny przykład z 'biblii' T. Francuza ATmega88, timer - tryb CT [syntax=csharp] void timer_init() { TCCR1A=(_BV(COM1A0) | _BV(COM1B0)); TCCR1C=_BV(FOC1A); OCR1A=F_CPU/1024/1; TCCR1B=_BV(WGM12) | _BV(CS12) | _BV(CS10); //Preskaler 1024, CTC DDRB|=(_BV(PB1) | _BV(PB2)); //dodane przeze mnie - active-low, zgaś wyjścia PORTB|=(_BV(PB1) | _BV(PB2));...
Aby ustawić do pracy MC145158 musisz załadować mu po SPI licznik referencyjny R oraz 2 liczniki sygnału Fin czyli N i A . Wzór jest w aplikacji MC145158 i wygląda tak: Nt=N*P+A Nt to podział całkowity czyli wynikający z podziału wymaganej częstotliwości VCO przez raster strojenia. P to podział preskalera (jeśli preskaler jest np 64/65 to chodzi o 64)...
Jeżeli nie używasz przerwań to ich nie włączasz. Wprawdzie nie włączasz głównego, ale włączasz od timera (TIMSK1), dlaczego? Wzór z dokumentacji dla CTC: F = Fclk / (2 * N * (1+OCR1A)) = 16000 / ( 2 * 8 * 2000 ) = 16000 / 32000 = 0.5Hz Sterowanie pinem OC1A dla CTC: . Atmega88 ma zegar max 8MHz, dlaczego liczysz dla 16MHz? Wyłączyłem TIMSK więc sterowanie...
20ms wzięło się z wzoru F=fuc/(2*preskaler*ICR1) znalezionego na tym forum, mam nadzieje że go dobrze używam.... Co do reszty, chciałbym Delay-ami sterować wypełnieniem, natomiast timer ma mi służyć jako źródło wysyłania okresowego co 20ms sygnału do serwa. Dodano po 1 Co do programu wygląda on narazie tak: [syntax=c]#define F_CPU 1000000 //częstotliowość...
Witam Bawię się obsługą sprzętowego PWM. Skonfigurowałem trzy timery w tryb Fast PWM. Do uC podpiąłem kwarc 20MHz i ustawiłem fusebity. Wpisałem w OCR1A wartość 128 i podłączyłem oscyloskop. Okazuje się że okres wynosi zaledwie 0.1 ms to 10kHz, mimo tego że preskaler ustawiłem na 1... coś mi tu nie pasuje bo zgodnie ze wzorem: Fpwm = Fcpu/1/255 powinienem...
spodziewałem się :D:D Ja także mam z tym problemy bo generalnie pracuję na PICach Microchipa Do obliczenia potrzebujesz: ADC str. 246 Table 20-1. Auto Triggered conversions w kolumnie Conversion Time (Cycles) + 16MHZ + preskaler Oczywiście nie chodzi o dodawanie ale sądzę że wymyślisz wzór :) Proponuję bogate komentowanie by było łatwiej Zmieniłem...
A... chyba wszystko jasne: jak ściskasz rdzeń, to szczelina robi się mniejsza, na skutek ugięcia rdzenia. Wzór na indukcyjność: L=µ0*N^2*S/D, S to powierzchnia (przekrój na szczelinie), D szerokość szczeliny, N ilość zwojów, µ0=0.4π µH/m; ale L=AL*N^2 nH, więc AL=µ0*S/D, albo D=µ0*S/AL. Uwaga na jednostki. Tak jest dla...
manekinen : zrobiłeś bardzo sympatyczny miernik, który spełnia swoją rolę całkiem dobrze. Nie rozumiem tego "nakręcania" projektu. Tak na marginesie - kto na serio potrzebuje pomiarów 1GHz oprócz ludzi od GSM, WiFi, i może jeszcze jakichś ekstremalnych technologii? Osobiście zmontuję sobie co najwyżej preskaler na 74196 z rozsądnym układem wejściowym,...
W trybie CTC nie robi się obsługi przerwania. Po prostu konfiguruje się timer i on zajmuje się generowaniem przebiegu prostokątnego na odpowiedniej nóżce procesora. W programie po prostu na odpowiedni czas się go włącza i później wyłącza. U mnie na attiny2313 wygląda to tak. void start_freq(void) // generowanie nosnej { TCCR0A = 1<<COM0A0...
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...
Tak, dokładnie o tego typu efekt chodzi, jednak chciałbym do tego jeszcze mieć możliwość cyklicznego załączania sygnału wyjściowego coś na wzór funkcji delay_ms(), w celu opóźnionego załączenia i wyłączenia sygnału wyjściowego. Aktualnie mój kod to tylko sama konfiguracja, dodatkowo przerzuciłem się na ATMega328P ze względu na jeden dodatkowy Timer....
Musisz soprawdzić w dokumentacji ale jest chyba tak , że to co masz na kwarcu jest puszczane na preskaler (możliwe kombinacje mnożnika i dzielnika ) i potem jest otrzymywany zegar który jest puszczany na wszystkie peryferiały. I teraz masz jeszcze do dyspozycji podzielnik. Ważne też ilo bitowy jest Twój timer którym obsługujesz PWM-a. Każde tyknięcie...
Dzień dobry. Wiem, że temat był wielokrotnie wałkowany, jednak spotykam się z wieloma różnymi sposobami skalowania, że nie potrafię ocenić, który jest prawidłowy. Często obliczenia zawierają błędy, co tylko komplikuje obliczenia. Ogólną ideą jest 1 preskaler ("P"), według którego będzie można obliczyć uSv/h według wzoru: (CPM - zliczeń na minutę) CPM...
Dawno nie zajmowałem się czujnikiem ale znów wracam do niego...wlutowałem na kablach dwa potencjometry podciągające magistralę - zasilanie ATmegi 1,8V i tyle samo na magistrali, bez konwertera. Ustawiłem narazie na potencjometrach około 4,7k i nic, nie da się połączyć z czujnikiem. Zastanawiam się czy da się w ogóle na 1,8V uzyskać niskie transmisje...
Dodam jeszcze kod w BASCOMIE: 'Ten Programik Generuje 32khz Przy 4mhz Kwarcu ' 32khz mozna wyliczyc wedlug wzoru ze strony 113 datasheeta atmega8a. 'jak dam kwarc 4,19MHz to wyjdzie 32'734Hz. $regfile = "m8def.dat" $crystal = 4000000 Config Pinb.3 = Output Config Timer2 = Timer , Async = Off , Prescale = 1 , Compare = Toggle , Clear Timer...
// przelaczenie timera na 16KHz(timer na 1,6MHz) TCCR2 |= _BV(WGM21) | _BV(COM20) | _BV(CS20); // usatawienie jako CTC, preskaler na 0 OCR2=0x04; Timer zlicza od 0 do OCR2 (włącznie z wartością OCR2), dlatego aby odliczył n cykli zegara trzeba do OCR2 wpisać wartość n - 1 . Po odliczeniu do tej wartości stan na wyjściu...
Przy tym taktowaniu (8MHz) o wiele wygodniej byłoby zastosować prescaler = 8, gdzie 1 click timera to 1 microsekunda, i zamiast 1.5 milisec dla serva masz 1500 microsec. Użyłem preskalera 8, rozumiem że wyliczoną wartość w tym przykładzie, która wynosi 1500 microsec należy wpisać do OCR1A lub OCR1A? Pośpieszyłem się i wstawiłem poprzednio niedopracowany...
Sprobowalem uzyc trybu CTC. #include <io.h> #include <signal.h> #define bit_set(sfr,bit) sfr |= (1<<bit); #define bit_clear(sfr,bit) sfr &= ~(1<<bit) ; int main(){ cli(); // wlaczenie ctc bit_clear(TCCR0A,7); bit_set(TCCR0A,6); bit_set(TCCR0A,1); bit_clear(TCCR0A,0); bit_clear(TCCR0B,3); // wylaczenie przerwan bit_clear(TIMSK,0);...
Witam! Z tego wszystkiego wgrałem program spod Bascoma, gdzie próbowanie wynosi 8kHz, ADC ustawiony na preskaler 8, Single Conv, rez. 16MHz. Dla potomnych, tak powinien wyglądać sygnał (i tak wygląda spróbkowany dzięki programowi z Bascoma). Sygnał 1kHz. http://obrazki.elektroda.pl/8315338600_1... Prawda, ze ładnie :)? Probkowany sygnał programem...
Witam, Potrzebuje wygenerowac sygnal prostokatny na atmedze32A 8Mhz (zakres od 1-1000Hz). Postanowilem w tym celu uzyc trybu 4 CTC. Z tego co zrozumialem to powinnem zrobic tak: [syntax=c] TCCR1B |= (1<<WGM12); //włączenie trybu CTC TCCR1B |= (1<<CS10) | (1<<CS12) ; //ustawienie preskalera na 1024 OCR1B = 1000; //wartość do której...
Czesc Wam, korzystając z Waszej dyskusji ma temat ADC, rozdzielczości i dokładności wyniku, przypomniałem sobie problem, który kiedyś miałem z ADC w ATtiny26. Mianowicie chodzi mi o dynamikę ADC. Mierząc/zmieniając szybko poziom napięcia np z 0V na 3V, ADC zanim na LCD pokazała mi się wartość w miarę blisko 3V wcześniej np pojawiła się wartość chwilowa...
Zdjęcie eLektora w artykule o sprzęcie dla niewidomych i niedowidzących było robione smartfonem, i mi się jednak nie podoba, więc je pewnie podmienię, jak będzie artykuł o tym urządzeniu. O ile będzie kolejny artykuł, zwłaszcza kierowany do ludzi z wadą wzroku, to lepiej niech kolega nie miesza do tego artykułu lustrzanek, wiedzy o nich itp. ponieważ...
Witam, Chciałem zrobić nadajnik RC5. Chciałem sprawdzić na moim TV. Jako ramkę wysyłam polecenie wyłączenia TV. Niestety TV nie chce się wyłączyć. Problem chyba jest z częstotliwością. //ATmega 16 F_CPU = 16000000 #include <avr/io.h> #include <avr/interrupt.h> volatile uint16_t g_licznik = 0; ISR(TIMER1_COMPA_vect) { g_licznik++;...
Witam. Mam problem polegający na tym, że częstotliwość jaką uzyskuje z PWMa jest zupełnie inna niż w rzeczywistości. Ustawiłem w AVR Studio Int. RC Osc. 8 MHz. Zw wzoru z datasheeta mam, że w trybie fast PWM częstotliwość powinna wynosić f_PWM = f_CLK / (N * 256), czyli f = 8000000/256 = 31,25kHz (plus minus błąd). Natomiast na oscyloskopie mam, że...
Witam wszystkich Elektrodowiczów! Próbuje ustawić odpowiednie wartości rejestru CAN1BTR (CAN Bus Timing Register) , tak aby działała mi magistrala CAN, jednak mam pewne wątpliwości i niejasności. Wg dokumentacji (str. 361 Tabela 322 CAN1BTR) wynika, że trzeba ustawić pięć wartości w rejestrze CAN1BTR: - BRP (Baud Rate Prescaler/Preskaler Szybkości...
Ok, udało Ci się odpalić na AVR, czyli sekwencję sterowania masz jak należy, bo zadziałało. A w czym problem, żeby teraz to co zadziałało na AVR przenieść na STM? To że ma 32 bity, to nie oznacza, że nagle obsługuje się to jak kosiarkę, a nie jak MCU ;) Jest tu trochę więcej "pstryczków" (czyt. bitów) do ustawiania, przy czym większości wcale nie trzeba...
http://obrazki.elektroda.pl/2558089500_1... Częstościomierz został zbudowany w oparciu o mikrokontroler PIC16F876A. Podstawowy układ mierzy częstotliwości do 180 MHz. Dodany preskaler dzielący przez 64 pozwala na uzyskanie pomiarów do około 4,5 GHz. Wyniki pomiarów prezentowane są na wyświetlaczu LCD 16x2. Miernik posiada 3 wejścia:...
Po pierwsze, możesz jak najbardziej korzystać z timera (a właściwie to powinieneś, jeżeli chcesz pomniejszyć koszta o zakup zewnętrznego RTC). Po drugie - możesz kalibrować, możesz to robić długo i bezskutecznie. Po drugie i ćwierć - Wewnętrzny oscylator nie za bardzo nadaje się do tego celu. "Nieco" mu się zmienia częstotliwość wraz z temperaturą i...
tak, i w datasheecie rzeczywiście przeczytałem że jest taki tryb o którym mówisz dla timera1. Niebardzo tylko wiem jak go uzależnić od częstotliwości podawanej na jedno z wejść... Dajmy na to że na PD2 chcę podawać częstotliwość i chcę żeby timer1 zliczył czas trwania impulsu, zapisał a program porównał ją z wartością graniczną. Idąc za wzorem w datasheecie...
(...) brazki.elektroda.pl/3921054300_174077677... Czy ktoś z użytkowników wie, co powinienem zmodyfikować, aby uzyskać idealny sygnał - sinus? Próbowałem włączać kondensatory i rezystory szeregowo, ale zbytnio nie zmieniają kształtu przebiegu - ewentualnie amplitudę. Dodano po 1 Bezpośrednia odpowiedź na pytanie Aby uzyskać czysty, sinusoidalny sygnał...
Poczytaj o preskalerze tego Timera oraz o trybie CTC i zastanów się czy da się tak ustawić timer by osiągnąć Twój cel. Odpowiedni wzór masz na tej stronie którą podałeś.
Preskaler sprawdz najpierw to oczym piszesz. Dewiacja jaka obowiazuje to +/- 75kHz a nie +/-300kHz jak twierdzisz. Nie chce teraz przytaczac dosc skomplikowanego wzoru podajecego skladowe widma czestotliwosci sygnalu zmodulowanego FM. Jest szereg nieskonczony. I tak dla dewiacji +/-75kHz i czestotliowsic modulujacej 10kHz mamy widmo zajmujace pasmo...
Chyba się nie rozumiemy :) Poprawka naniesiona w OCR1A. Chodzi dokładniej, ale to ze mozna ustawić to ręcznie od dawna wiedziałem. NIe wpadłem na "doliczanie" Hz do kwarcu na podstawie różnic w czasie. Ale moim zdaniem to nie o to tu chodzi. Jesli przy kwarcu muszą być C takie a nie inne i to one powodują ze układ się rozjeżdża w czasie, to liczyłem...
Napisałem program bez użycia LPC175x_6x CMSIS-Compliant Standard Peripheral Firmware Driver Library, który co 1 s ma zmieniać stan P3.25 na przeciwny. Do pinu P3.25 podpięta jest dioda dzięki czemu mogłem zaobserwować zmiany i zmierzyć czas. Jednak moje obliczenia nie pokrywają się z wynikiem wykonywanego programu: [syntax=c] #ifdef __USE_CMSIS #include...
Dobra pierwsze podejście do kodu: Atmega8 ustawiona fusami na 8Mhz Najpierw dobór preskalera. Jak już wcześniej pisałem pomiar jest od 1,2-1,9ms więc zliczanie czasu moim zdaniem powinno być mniejsze od 0,05ms. Dobrałem preskaler 64 po czasie 524.288ms następuje przepełnienie T1 dla 0xFFFF, a więc jeden takt zliczania ma 524.288/65535 czyli 0,008ms...
Witam Obsluga ADC w Bascom jest banalna polecam polski help Bascom Basic, napewno sie zorientujesz o co chodzi... Jezeli chodzi o wypelnienie PWM to na potencjometrze mozna to zrobic bez wiekszego problemu... podlacz potencjometr pomiedzy +5V i GND, nastepnie do ADC uP, a pozniej odczytaj wartosc napiecia przez getADC(), ustaw odpowiednie granice i...
[syntax=c]#include <stdio.h> #include <stdlib.h> #include <avr/io.h> #include <util/delay.h> #include <util/atomic.h> #include "HD44780.h" #define NOSAMPLES 128 // usrednianie wyniku co 128 probek volatile uint16_t ADCwynik; // zmienna zawierajaca wartosc ADC co 128 probek void init_adc(void) { ADMUX = (1 << REFS0);...
Witam, Ściągnąłem kod uniwersalnego programowego UARTa ze strony http://supp.iar.com/Support/?note=88469. Próbuję go dopasować do mojej atmegi32, ale mam duży problem, bo nie wiem jakie określić parametry Timera. Po pierwsze co znaczy: 5. timer_set( BAUD_RATE ) Sets the timer to 3 times the baud rate. Czy chodzi o to, że np. przy 31250bps Timer...
Chyba wymyśliłem jak za pomocą pwm-a wygenerować ten przebieg. Muszę tylko zastosować zewnętrzny kwarc co najmniej 10MHz bo z wewnętrznego generatora 8MHz przy preskalerze ustawionym na 1 mogę wyciągnąć maksymalnie: 8000000/(256*1)=31250Hz, a to trochę za mało. Przy kwarcu 10MHz wyjdzie już 10000000/(256*1)= 39062Hz a to za dużo. Nie wiem tylko jak...
Witam Mam taki problem, próbuje zrobić sobie amperomierz oparty na uC Atmega32, korzystając z pomiaru różnicowego napięcia na boczniku. Czyli mierze spadek napięcia na boczniku, następnie dziele go przez jego rezystancje i wychodzi mi prąd. Jednak napotkałem się na taki problem, mianowicie: Żeby zwiększyć rozdzielczość amperomierza, napięcie z bocznika...
Niestety niewiele mi to mówi. Chodzi mi o to, że nie wiem jak przeliczyć przygotowaną już tablicę wartości na wartości dla innych czestotliwości. Może napisze co już mam. A więc: Przygotowałem tablicę posiadającą 128 elementów - są to wartości wypełnienia które są podawane do rejestru timera TIM2 pracującego z częstotliwością stałą 6250Hz. Wartości...
Witam Spójrz na mój artykuł o I2C czyli TWI na procesorze Atmega8 jest tam też sposób wykorzystania - kodowania układu PCF8583 i układu PCF8574AP (układ PCF8574AP to to samo co PCF8574A). Pisałem ten artykuł z myślą o początkujących kolegach zobacz może coś wybierzesz z mojego kodu a jest to zegarek z wyświetlaczami LED(SA10-21GWA) i układem PCF8583...
Czy masz na myśli ten wzór ? http://obrazki.elektroda.pl/3191457600_1... Między innymi. Nie mogę znaleźć rozwiązania tego problemu. Sprawa jest prosta :) Zastanów się, w którym takcie zegara systemowego następuje porównanie licznika z rejestrem OCRn, jeżeli użyjemy trybu CTC z preskalerem np.256 , a do rejestru OCRn wpiszemy np. wartość...
Ostatnio wpadły mi w ręce płytki syntezerów częstotliwości z radiotelefonów Radmor na pasmo 160 MHz (przynajmniej część z nich). Płytki mają wymiary 12,5 cm × 2,5/3,5 cm i znajdują się na nich m.in.: - syntezer TDD1742T, - PROM N82S129AN, - preskaler dwumodułowy ÷64/65 SP8718 lub MC12025 (żółty prostokąt), - podwójny wzmacniacz operacyjny TL062 (zielony...
Mam pytanie: jak obliczyć wartość napięcia skutecznego napięcia sinusoidalnego? Podaje sobie napięcie o amplitudzie 1V (+offset 1V) na kanał przetwornika ADC. I tu się pojawia problem. Jak powinienem napisać program, aby zbierać te próbki do jakiegoś bufora (rozumiem, że może być tablica float)? I dalej: jak policzyć tą wartość skuteczną? Wiem, że wzór...
Procedura odczytu wartości jest całkiem zła, a ustawień przetwornika nie pokazałeś. Obecnie masz coś takiego: czytasz bez potrzeby w kółko nieważną wartość z ADC, a czytanie przerywasz po ustawieniu bitu gotowości, który być może został ustawiony już po odczytaniu nieważnej danej. Nie rozumiem dlaczego bit "DONE" miałby być ustawiony po odczytaniu...
Musisz ustawić tak timera, aby odmierzał 3/26s i generował przerwanie. W zależności od częstotliwości źródła sygnału zegarowego może zdarzyć się tak, że nie uda się z zadowalającą precyzją ustawić timera do tego zadania. Wtedy możesz rozłożyć zadanie na 2 kolejne przerwania zmieniając ustawienia timera (prescaler, początkową wartość licznika timera)...
http://obrazki.elektroda.pl/7011174400_1... Cześć ! Dziś chciałbym zaprezentować swój najnowszy projekt, którym jest świąteczna choinka LED. Jako, że według świątecznego zwyczaju swoich bliskich obdarowujemy prezentami ów ozdoba została wykonana dla moje dziewczyny, która bardzo lubi klimat świąt i wszystkie ozdoby z nimi związane....
kwarc preskaler synteza preskaler preskaler matryca
czujnik przepływu zmywarka monitor samsung opinie sterownik turbo
płyta indukcyjna bosch piekarnik hisense
John Deere 5720 - Przepalający się bezpiecznik stacyjki Jak wzbudzić prądnicę od pralki Polar?