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....
https://obrazki.elektroda.pl/6347997200_... Cześć. Od jakiegoś czasu chodził mi po głowie projekt dzięki któremu mógł bym sobie sterować światła w domu i w ogrodzie poprzez wifi. Funkcjonalność banalnie prosta i spotykana w zapewne tysiącach rożnych projektów, jeszcze jeden nie zaszkodzi. :) W trakcie rozmyślania i projektowania kilka...
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...
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_...
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...
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...
Cześć Mam pytanie Załóżmy że mam taktowanie 8 000 000hz i preskaler jeden oraz rejestr porównania 110 czyli częstotliwość to 1/8 000khz razy 111 czyli mamy T=0,013 Czyli f=76khz korzystam z trybu CTC i timer 0 pin OC0 dlaczego f na tym pinie to 38khz Powinno dac 36kHz... W kadym datasheet, w sekcji Timer0 mode CTC masz wzór na częstotliwośc wyjściową:...
O faktycznie coś skiełbasiłem... Chyba tak i to okropnie! Probowałem to przełozyć na timer 1 i bascom wali błędami... STR 88: Fpwm = Fcpu/2x preskaler - (1-OCRnA ) OCRA to rejestr ... wiec trzeba mu wpisać parametr.. Stosujesz błedny wzór na częstotliwośc Fast PWM dla Timera1 ; Poprawny wzór jest ze str 91: http://obrazki.elektroda.pl/1495204000_1...
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...
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)...
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:...
Ale OCR0 to jest rejestr a nie pin i ja rozumiem to tak, że licznik liczy do tej wartości i się zeruje i tak w kółko No to policzmy jeszcze raz: 8.000.000 / 256 / 47 = 664Hz - częstotliwość przerwań gdzie: 256 preskaler 47 OCR0 Jeszcze raz podkreślam stosujesz wzór z datasheet, który służy do czego innego , a konkretnie do obliczenia częstotliwości...
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...
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)...
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...
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...
[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...
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...
Chętnie. Czegoś więcej się nauczę. plik H: [syntax=c] #ifndefLCDHD44780_H_ #defineLCDHD44780_H_ /* #defineLCD_HD_5X8 // Polskie znaki czcionką 5x8 a nie 5x7 //#defineLCD_ONLY_PL // Definicje w FLASH tylko znaków PL (mniejsze zużycie FLASH) //#defineLCDMIROR // Użycie tworzy w RAM kopię treści wyświetlacza #defineLCDLINE4 // Liczba wierszy #defineLCDROW20...
Witam, Próbuje napisać program do licznika częstotliwości na 9 wyświetlaczach 7 segmentowych (z czego 2 wyświetlać miały by tylko jednostkę Hz) - coś na wzór tego projektu: http://mdiy.pl/miernik-czestotliwosci-na... Z tym, że w języku C i na procesor ATMega8. Wystarczy mi zakres do około 1MHz. Kwarc 16MHz, fusebity C9/FF. Procedura...
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
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 :)
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))....
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]
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?
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;...
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ć...
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...
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...
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...
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>...
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.
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
1000ms /Prędkość_procka/Preskaler/Pojemność_tim... 1000ms /8MHz/256/256=8,192ms Zanim jeszcze przystąpię do obliczeń i pokaże Ci moje wyniki zapytam wprost o wzór powyżej. Jeśli dokonam takiego działania jak na powyższym przykładzie to wynik nigdy nie wyjdzie 8.192ms. Jak Ty to podzieliłeś, że taki wynik Ci wyszedł?
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...
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...
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)...
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....
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...
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ść...
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:...
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ść...
Sorry, że z opóźnieniem - sprawdziłem w czym był problem z częstotliwościami ułamkowymi w MHz, czyli np. 4,8MHz jak w Twoim przypadku. Najbardziej poprawny wzór zaproponowany przez BlueDraco nie liczy prawidłowo, gdy kompilator działa w systemie 32-bitowym z powodu przekroczenia zakresu dla liczb tylu Long. Aby się pozbyć tego problemu można przekształcić...
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...
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...
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...
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...
kwarc preskaler synteza preskaler preskaler 100mhz
mentor graphic excel ukrywanie arkusza wysoki rachunek prąd
Dystrybutor LPG/CNG Tokheim, Gilbarco SK800-II nie pompuje paliwa – przyczyny awarii na stacji paliw OV7670, STM32F103, SIM800L – przesyłanie obrazu, ograniczenia RAM i GPRS, jakość filmu