Ustawiłeś tryb fastPWM i preskaler na 256. A zatem częstotliwość sygnału PWM będzie w okolicy: F_PWM = F_CPU/(preskaler * TOP ) = 8MHz/(256 * 256) = 122Hz Dodatkowo wpisałeś do rejestru OCR0 wartość 104 . Na początku gdy licznik ma TCNT0 = 0 wyjście PB3 jest w stanie wysokim. I dopiero jak licznik zliczy do TCNT0 = 104 zmieni się stan wyjścia PB3 z...
ad 1. Użyj timerów - taktując je zegarem o odpowiedniej częstotliwości licznik timera będzie zliczał czas. ad. 2. Użyj timera :) Tylko w trybie input capture - w tym trybie licznik zlicza impulsy zegara taktującego i jest stopowany zboczem sygnału doprowadzonego do wejścia ICP timera.
W pdf jest napisane wszystko . Może napiszesz czego oczekujesz a co wychodzi . Pewnie w obliczeniach zapomniałeś o samym liczniku i wychodzi 256 razy mniej . Wielu początkujących robi taki błąd , ze zapomina o tym ze aby licznik się przepełnił musi policzyć tyle impulsów ile ma jego pojemność a w niektórych trybach ta wartość się jeszcze zmienia . Napisz...
WItam Potrzebuję zmienić częstotliwość przebiegu prostokątnego o np 3,3 raza. Czestotliwość wejściowa jest zmiennna w pewnym zakresie maks 500hz. Wymyśliłem sobie żeby to zrealizować tak aby na INT0 podawać sygnał wejściowy i wywołuje przerwanie impulsy a timer0 generuje przerwania co jakiś mniejszy czas probkowania. Zliczam impulsy probowania pomiedzy...
Witam, mam problem z dokładnością licznika czasu. Licznik ma mierzyć czas pomiędzy pojawieniem się napięcia większego od 512 na pinie PA7 a pojawieniem się zbocza narastającego na INT0. Licznik zlicza setne sekundy i sekundy. Późni się około 10 sekund na minutę. Korzystam z Atmegi32 o taktowaniu 8MHz. Wynik wyświetlam na wyświetlaczu. Napiecię na pin...
A mam jeszcze takie pytanie, czy ustawiając wypełnienie PWM przykładowo tego Timera2 na np. 77.125 przy trybie CTC, licznik zlicza do 77, czy do 77.125 ?
...i do tego wszystkiego trzeba jeszcze zablokować przerwania, bo obliczenia się rozjadą. Do takich długich czasów w 99% przypadków używa się timerów - odpowiedni podzielnik razy licznik w przerwaniu i bez skomplikowanych obliczeń masz dokładny wynik.
Cześć, czy ktoś z was ma pomysł jak zrealizować pomiar n amplitud napięcia w celu obliczenie współczynnika tłumienia ? Napięcie jest mierzone przez dzielnik i jest ono wyprostowane częstotliwość to 100Hz. Pomiar pierwszej amplitudy nie jest problemem ale muszę zmierzyć jeszcze 5,7 lub 9 i określić która to była. W układzie użyłem już atmegi32 także...
Witam, Za nic w świecie nie mogę dojść do tego, więc skorzystam z wiedzy Szanowny Kolegów z forum. Otóż mam pewną zabaweczkę zrealizowaną na mega32 (projekt jak ukończę to udostępnię na forum) Ustawione mam przerwanie od Timera0, który ładnie odmierza mi 1 sekundę przy zastosowanym kwarcu 8Mhz. Wszystko pięknie ładnie, ale chciałbym zastosować "kwarc...
Witam serdecznie. Piszę program, w którym muszę zliczać przychodzące impulsy z licznika energetycznego do procka. Aby nie zliczać impulsów pochodzących od drgań styków wymyśliłam takie rozwiązanie. Jeśli na INT0 przyjedzie zbocze opadające, włącz licznik T0. Gdy licznik przepełni się- minie 32ms i w tym miejscu będzie poziom niski na pinie, to atmega...
Witam Potrzebuję mierzyć częstotliwość wolnych przebiegów 0-60 Hz. Program jako tako działa, ale czasem wkrada się błąd w wyniku ok. 1 Hz. Czy nakładają się wtedy jakieś przerwania? Jeden timer wyznacza mnożnik rosnący wraz z częstotliwością który mówi w ciągu ilu impulsów wejściowych ma liczyć impulsy z drugiego timera. Jego wartość jest najpierw wyznaczana...
Witam. Chciałbym zmierzyć czas pomiędzy dwoma impulsami (stanami wysokimi) występującymi na pinie ICP1. Używam do tego celu timera1 oraz kodu znalezionego w internecie, zmodyfikowanego na własne potrzeby: [syntax=c]#include <avr/io.h> #include <stdio.h> #include <avr/interrupt.h> #include <util/delay.h> #include "HD44780.h" volatile...
Rozwiązanie układowe wygląda w taki sposób, że pod porty PORTA, PORTB i PORTC mam podłączone drabinki rezystorowe r2r. Do pinu PD2 doprowadzany jest sygnał synchronizujący z detektora zera sieci. Do pozostałych PIND mam podłączone przyciski. Na podstawie zliczonych przerwań uC powinien generować trzy przebiegi prostokątne pierwszy w fazie z sygnałem...
Witam Mam problem z RTC w atmega32. Podłączyłem kwarc 32,768kHz jak datasheet nakazuje. Jeśli Timer2 skonfiguruje następująco: [syntax=c] TCCR2 = 0b00000001; ASSR |= 1 << 3; TIMSK |= 1<<6; [/syntax] To przerwanie [syntax=c] ISR(TIMER2_OVF_vect) { TCNT2=255; ... } [/syntax] Wykona się tylko 8192 razy na sekundę zamiast 32768. Natomiast jak...
http://obrazki.elektroda.pl/4973555100_1... Autor zbudował licznik częstotliwości którego sercem jest układ AT90S2313 produkcji Atmela i trzy układy HC TTL. Układ mierzy do co najmniej 52MHz, ponieważ autor nie mógł dostarczyć źródła sygnału powyżej 52MHz. Dlatego rzeczywisty zakres miernika może być nieco większy. fClock (typowo) dla układu...
Co myślicie o tym, aby zbudować miernik częstotliwości na mikrokontrolerze w ten sposób: skorzystać z przerwania INT0 lub INT1 i zliczać ilość przerwań w ciągu sekundy i dane przesyłać za pomocą UART do kompa. Jaką dokładność bym uzyskał i jaką maksymalną częstotliwość takiego pomoaru przy kwarcu 16MHz (mam na myśli uC Mega8535). Proszę o Wasze opinie...
Witam. Przymierzam się do zrobienia [url=http://electronics-diy.com/lc_meter... projektu miernika pojemności i indukcyjności. Jedyną zmianą będzie zastąpienie PIC'a jakimś AVR'em, najprawdopodobniej ATmega8 lub 328. No i wszystko fajnie, na wyjściu LM311 mamy fale prostokątną o częstotliwości układu LC. Tylko jak ją zmierzyć za pomocą ATmegi?...
Witam. Mam pytanie, jak realizujecie pomiar częstotliwości np. prostokątnego przebiegu . Czy program który "otwiera" licznik w mikrokontrolerze na jedną sekundę po czym wyświetla ile mu tam "nabiło" w tym czasie nadaje się do tego ? Słyszałem że pomiary czasowe w takim np. ATmega8 nie należą do dokładnych , nawet z zewnętrznym kwarcem . niewiem może...
Witam Planuje zrobić sobie miernik częstotliwości różnych kształtów napięcia: sinus, prostokąt, trójkąt. Zamianę sinusa i trójkąta na prostokąt mam już zaplanowaną. Zostało mi tylko zmierzenie częstotliwości sygnału prostokątnego o amplitudzie 5V i przedziale częstotliwości od około 10 kHz do 500 kHz. Chciałbym to zrobić na mikrokontrolerze ATmega8...
Witam. Jako, że dopiero powoli zaczynam zabawę z Atmegą (posiadam Atmege 32). Zaczynam od bardzo podstawowych rzeczy - chciałem liczyć częstotliwość naciśnięć przycisku a dokładniej ilość naciśnięć do momentu przepełnienia się licznika przez obsługę przerwań. Niestety nawet z tak trywialnym zagadnieniem mam kłopot, coś nie działa jak powinno.;) Zamieszczę...
Witam. Jest to mój pierwszy post także z góry przepraszam za niedokładność i serdecznie proszę użytkowników o jakiekolwiek porady i sugestie. Jest to mój pierwszy kontakt z elektroniką w praktyce, dużo czytam, nadrabiam zaległości jednak terminy na uczelni gonią. Ale do rzeczy : Zamieszczam schemat mojego projektu, jest to podajnik taśmowy z czujnikiem...
Witam Mam już gotowy działający układ na Atmega8-16AU. Problem polega na dołożeniu jeszcze jednej funkcji bez konieczności zmian mechanicznych. Timery T0 i T1 są już wykorzystane. Z pinu PortD.3 mrugam sobie diodą LED z założoną częstotliwością. Może ma ktoś pomysł jak programowo czytać z portu D.3 i przeliczać na częstotliwość. bo wiem, że się różni...
Witam. Jestem początkującym programistą. Muszę rozwiązać kwestię jak na zdjęciu, a mianowicie za pomocą przerwań chciałbym uzyskać na jednym z wyjść stan wysoki z opóźnieniem czasowym jaki sobie na początku ustawię za pomocą dwóch klawiszy<+><->. Następnie chciałbym mieć przypisane kolejne trzy klawisze do portów wyjściowych, aby po naciśnięciu...
Hej, mam problem z odczytem napięcia przy wykorzystaniu przetwornika ADC. Kwarc 16 MHz, dlatego preskaler ustawiony na 128. Wewnętrzne źródło napięcia odniesienia = 2,56V. Chciałbym odczytać napięcie z PA6.. program ten mam wyzwalany przyciskiem z klawiatury no i niestety nic nie wyświetla. Ekran LCD i funkcje do niego poprawnie działają. [url=http://www.btc.pl/pdf/zl3avr.pdf]Do...
Przecież możesz to zrobić tak: Zaprogramować timer aby zglaszał przerwanie co np 1us ( trzeba by było dać kwarc o dużej częstotliwości). W przerwaniu tylko Licznik++, gdzie Licznik jest typu long. W głównym programie wystarczy tylko przeliczyć częstotliwość na okres w us i porównywać ze zmienną Licznik. Jeśli Licznik > Okres zerujesz zmienną Licznik...
2. Teraz ustawiam np. preskaler na 256 - rozumiem, że wtedy licznik Timera0 mnożę przez wartość preskalera i wychodzi mi jakaś wartość. Zakładam, że nie ładuje to timera żadnej wartości na początku czyli: Np. 255 x 256 = 65280 - pytanie co to za liczba? co ona oznacza? Nic nie oznacza. Zacznij od przeczytania opisu timera w Datasheet. Preskaler dzieli...
Ale o co Ci chodzi z tym zdefiniowaniem pinu? A z tym wyrzucaniem wartości licznika na cały port to tmf dobrze gada. Ale do tego jeszcze dojdziemy, na razie wytłumacz o jakie definiowanie chodzi. Bo chyba nie o #define? Żeby na każdym pinie mieć inną częstotliwość to tych pinów nie trzeba "definiować" czy "rozdzielać". Po prostu na każdym zmieniasz...
Z drugiej strony jeśli nie masz takiej opcji to wybierz tryb symulacji - w tym trybie timery działają synchronicznie ze śledzeniem. Masz też licznik instrukcji, który umożliwia łatwe określenie czasu pomiędzy dwoma punktami, w efekcie nie trzeba bawić się timerami. Tylko dlaczego symulacja wykonywana jest dla zegara 1MHz, a nie jak zadeklarowem 16MHz....
Nie będzie, o ile częstotliwość będzie rozsądna, np. może być synchroniczna z odświeżaniem rejestrów wyświetlaczy. Zacznijmy od podstawowych obliczeń: Optymalny częstotliwość to ~300Hz, czyli jakieś 3,333ms na cykl. 4 cyfry, czyli 0,833ms na cyfrę. 64 bity + zatrzaśnięcie danych dla anody to <11us na bit. Atmega32 może to sterować przez SPI, ale...
Od czasu napisania posta zmieniłam częstotliwość SCK (w fukcji "InitSpiMaster") z fosc/128 na fosc/4 . Teraz otrzymywane wartości z rejestru napięcia zachowują pewną zależność: pierwszy odczyt to liczba ok 20 000, następnie z każdym kolejnym odczytem liczba spada aż do wartości ujemnych i ponownie rośnie. Sprawdziłam też zachowanie układu w przypadku...
Ręce mi już opadają... Zacząłem się bawić ADC, ale nagle coś mi się stało z wyświetlaniem. Mam teraz taką obsługę przerwania: [syntax=c]ISR(TIMER0_COMP_vect) { //static uint8_t dzialanie=0; static uint8_t licznik=1; static int j=10000; WYS_PORT = ~licznik; int temp=liczba%j; if(j==10000)cy1=(temp/1000); if(j==1000) cy2=(temp/100); if(j==100) cy3=(temp/10);...
Napisałem sobie coś takiego w trybie CTC, z włączeniem nóżki OC0 generującej prostokąt. Generuje sobie jakiś dany ton zmieniając wartość rejestru OCR0. Teraz akurat jest bardzo duża częstotliwość dająca wysoki ton. Pytanie mam takie: jak zrobić aby zmieniać cyklicznie wartość OCR0 ? Aby zagrać jakąś melodie, np 1s jeden ton, potem 2s drugi ton, 0,5s...
Witam Kolegów. Mam mały problem. W zasadzie mój problem polega na tym, że działa coś co moim zdaniem nie powinno działać. Napisałem prosty kod na obsługę timera w ATmega 32. Prpgramik ma generować na 1-szym pinie PORTA sygnał o określonej częstotliwośći. Kod jest następujący: #include <avr/io.h> main() { DDRA=255; //ustawienie PORTA...
Dziękuje za opis ale chyba mnie to przerosło :) Zrobiłem programowy PWM, oto kod: [syntax=basic4gl] '************** Petla glowna ****************** '***************************************... Do '(at)(at)(at)(at)(at)(at) Obsługa klawiszy (at)(at)(at)(at)(at)(at) If Przycisk > 0 Then Przycisk = 0 If L1 = 0 Then L1 = 20 If Wybor = 0 Then If K_wybor...
Otóż tak. Sprawa się ma następująco. Rozuiem że chcesz na wyjściu otrzymać sygnał prostokątny o wypełnieniu 50% i regulowanej częstotliwości. Ja proponowałbym takie rozwiązanie: #include <avr/io.h> int main() { DDRB=0xff; //Port B jako wyjście TCCR1A=_BV(COM1A0); //wyjście OC1A jest przełączane przy osiągnięciu wartości OCR1A...
Poprawiłem warunek else na następujący [syntax=c] else PORTA&=~(1<<PA2); // Jeśli nie zgaś LED [/syntax] zaś flagi zdeklarowałem następująco [syntax=c] volatile uint8_t flaga1=0; volatile uint8_t flaga=0; [/syntax] co w efekcie dało cały kod następujący [syntax=c] #include <avr/io.h> //dołączenie podstawowej biblioteki #include <util/delay.h>...
OCnX to wyjścia, nie wejścia. Skoro nie możesz odblokować timera0 (bo T0 i T1 można taktować z zewnątrz) to są opcje takie: 1. Zastosowanie przerwań INT0 i INT1 z detekcją odpowiednich zbocz i zliczanie imp. w przerwaniach 2. Polling pinów z odpowiednią częstotliwością Poza tym jaka częstotliwość impulsów?
Uruchamianie timera przed zaprogramowaniem okresu nie jest najlepszym zwyczajem. Wartość wpisywana do OCR to okres - 1. Napisz po prostu: OCR1A = FCLK / 256 - 1; (O ile częstotliwość zegara jest zdefiniowana pod nazwą FCLK - nie pamiętam, bo skończyłem z AVR jakieś 4 lata temu.)
Pytanie pomocnicze brzmi - po co zliczać przerwania w C, skoro od tego ma się sprzętowy licznik?
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....
Wpisywanie $CRYSTAL bez rzeczywistej zmiany taktowania procesora będzie powodować, że wszelkie opóźnienia i obliczenia kompilatora dotyczące liczników nie będą zgodne ze stanem faktycznym. GETRC5() korzysta aktywnie z licznika TIMER0. Tak manewruje wartością wpisaną do rejestru licznika oraz preskalerem by otrzymać jednakowe odcinki czasu zliczane później...
ale z tego co się już dowiedziałem nie będzie działać na mojej płytce Nie prawda, będzie działał po zmianie kilku linijek kodu. [syntax=basic4gl]$regfile = "8515def.dat" $crystal = 10000000 [/syntax] To zmień na swojego procka i częstotliwość oscylatora, jaki Masz. Na przykład [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 8000000 [/syntax] Tą...
zliczanie impulsów z dwóch enkoderów Jeżeli to są enkodery inkrementalne z sygnałem A, B i ew. Home, zrezygnuj z megi64/128. Xmegi mają wsparcie sprzętowe do obróbki sygnału z takich enkoderów przez użycie liczników w połączeniu z eventami. Na STM32Fxxx zrobisz to łatwiej i być może szybciej korzystając z gotowców. generowanie dwóch przebiegów PWM...
A bo tyle stanów potrafi przyjąć licznik 16-bitowy. 2^16=65536.
Witam, pracuję nad projektem systemu bilansowania mediów, a konkretnie koncentratorem. Chcę połączyć licznik: F&F LE-01M do ATMEGI32 i zapisywać w wewnętrznym EEPROMIE odczyty z licznika. -Częstotliwość odczytów i inne parametry będzie ustalał użytkownik (do tego LCD i przyciski). -Odczyty będą zawsze o określonej porze dzięki RTC. -Do komunikacji z...
Witam! Mam mały problem z licznikami w Atmedze32. Na początek kod: void IR_Generuj() { //TUTAJ WŁĄCZAM TIMER KLUCZUJĄCY SYGNAŁ// TIMSK|=1<<OCIE2; OCR2=75; TCCR2 = 1<<WGM21 | 1<<CS21; //PRESK 8 |TRYB CTC //TUTAJ GENERUJE SYGNAŁ 36kHz// OCR0=13; //(int)(1000000*(1/76000... TCCR0 = 1<<CS00|1<<COM00|...
Opóźnienia nie są krytyczne - masz przecież zegar sterujący transmisją. Więc zamiast 4us (o ile to opóźnienie istotnie tyle miało) możesz dać większe - chodzi tylko o to, aby CLK nie miało częstotliwości wyższej niż akceptowana przez SHT dla danego rezystora podciągającego. Co do samego delay - działa ono w ten sposób, że wartość opóźnienia jest przeliczana...
Rzeczywiście na oscyloskopie z przeliczenia częstotliwość wynosi około 100Hz... Dodano po 41 Posiadam dwa silniki, także wykorzystuje licznik T0 i T1 ...
1. W jakim języku piszesz? 2. Kalkuluje się to tak: Masz kwarc 16 000 000 Hz (16 MHz) i dajesz sobie jeden z dopuszczonych prescalerów, np. 64 i wtedy timer zlicza Ci impulsy z częstotliwością 16 000 000 / 64 = 250 000 Hz, czyli jeden impuls timera to 4*10^-6 s lub inaczej aby odmierzyć 1s musisz zliczyć 250 000 impulsów, Jako, że Timer0 jest 8 bitowy...
Tryb fast PWM działa w ten sposób, że licznik zaczyna zliczać od 0 do wartości 255 (w przypadku licznika 8 bitowego), przy każdym takcie zegara oprócz zwiększenia wartości licznika porównuje tę wartość z wartością rejestru OCR, jeżeli wartości są równe to neguje przypisane wyjście jednego z portów. Co z tego wynika - licznik zawsze zlicza w pełnym zakresie...
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...
Faktycznie, tryby fast-PWM mają swoje ograniczenia, już nie pamiętałem dokładnie. Robisz więc tak: Zegar rejestru podłączasz do OC1B. Ustawiasz tryb CTC, toggle OC1B on compare match. Do OCR1A wpisujesz 2047, lub 4095 - itp. wartość, aby uzyskać okres >= 2ms z wymagana rozdzielczością. Z tym, że najlepiej dobrać tak preskaler, aby częstotliwość taktowania...
Chciałem zrobić tak ze jak odczytam wszystkie próbki z bufora to ustawiam zmienna read na 1 wtedy następuje wczytanie kolejnych próbek z pliku do bufora i znowu wysyłanie tych próbek na pwm W czasie 125us to raczej za wiele na tym nie odczytasz. :) Jeśli jesteś pewien że timery i odczyt z karty działa, to zrób sobie przebieg 8000/32 = 250Hz. Odczytaj...
Maksymalna częstotliwość jaka mnie interesuje jest uzyskiwana przy OCR1A = 19. Generalnie wszystko mi działa i to całkiem przyzwoicie, ale muszę zliczać wygenerowane impulsy. Myślałem już nawet o jakimś zewnętrznym liczniku - w postaci układu TTL którego wyjścia będę sobie odczytywał w pętli głównej. To już oczywiście abstrakcja.
Witam i dzięki za zainteresowanie problemem, ale niestety nie może (99%) to być wina potencjometrów i przetwornika. Wykasowałem odpowiednią cześć kodu ale zrobiony był jeszcze podgląd wyników na wyświetlaczu. Dodatkowo aby wyeliminować małe wahania wyników dziele je przez 4. Co do tego rozjeżdżania to to wygląda tak że ustawiam jakąś wartość wypełnienia...
Nie tak źle z dostępnością, układy analoga są w RS-sie. A tak ogólne zapytanie. Robił ktoś miernik mocy 3F? Zrobiłem miernik COP do pomp ciepła, moc odczytuje z impulsów liczników ogólnodostępnych. Dobrze by było jednak użyć własnego układu a już brak mi czasu na tworzenie tego od podstaw.
Patrzę też, że u Ciebie występuje niepokojąca manipulacja konfiguracją ICP w obsłudze od przepełnienia. W obsłudze od przepełnienia mam tylko konfiguracje timera gdyby był zanik sygnału.. Tak zwany "timeout" gdy nastąpi pod rząd ponad 10 przepełnień timera (400ms) a ICP tego nie skasuje bo brak sygnałów to ustawia timer na zbocze narastające i ustawia...
Witam. Z pewnych przyczyn musiałem przejść z pisania oprogramowania w Bascom na C. I pojawił się problem. Mianowicie chodzi o konfigurację Timera1 tak aby był generatorem, którego częstotliwość zmienia się wpisem do rejestru pwm1a. Pwm1a = 312 Config Timer1 = Timer , Prescale = 8 , Compare A = Toggle , Clear Timer = 1 On Compare1a Impuls Enable Interrupts...
Hej! Jest możliwe ustalenie konkretnej częstotliwości sygnału PWM w AVR. Da się sterować serwem modelarskim bez problemu. W Datasheet od ATmegaXX znajdziesz opis timerów. Jest tam wiele trybów pracy możliwych do wybrania. Ja pamiętam że do uruchomienia serwa użyłem trybu poprawnej fazy i częstotliwości. Potem na podstawie częstotliwości kwarcu i nastaw...
Przy tak niskiej częstotliwości impulsów lepiej nie zliczać impulsy w czasie, lecz użyć zewnętrznego przebiegu do bramkowania licznika, który zlicza impulsy ze swojego zegara o dużej częstotliwości. Dzięki temu dostaniesz informację o liczbie taktów zegara referencyjnego przypadających na okres sygnału zewnętrznego. Umożliwia to dokonanie pomiaru w...
Witam, mam problem z uruchomieniem programu do zliczania impulsów na T1 przez 1 sekundę. Wyświetla mi ciągle zero. Co źle ustawiłem z Timerami ?? Atmega 32 [syntax=c] #define F_CPU 1000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <hd44780.h> volatile unsigned char licznik = 0; //liczba...
Witam! Mam program, który wykorzystuje liczniki do wysyłania impulsów o danej częstotliwości. Częstotliwością steruję za pomocą zmiennej okres1, która jest mnożnikiem preskalera. Np. preskaler=8 clkio=1000000Mhz okres1=127, czyli co 8*128=1024us zmienia się stan na danym pinie przerwania od przepełnienia licznika (dla timera1a jest to pd5), co znaczy,...
Podłącze się do tematu gdyż nie chcę zakładać nowego wątku. Mam timer (ATMEGA32) ustawiony w taki sposób [syntax=c]TCCR0 |= (1<<WGM01); TCCR0 |= (1<<CS02) ; OCR0 |=38; TIMSK |= (1<<OCIE0);[/syntax] Procedura obsługi przerwania zawiera funkcje komunikacyjne i zwiększa licznik. Problem polega na tym, że z wzoru podanego w nocie katalogowej...
Witam do postu dołączam kod programu. Problem jak w temacie. Przy "na sztywno" ustawionej częstotliwości pracy f=40000Hz i przy tym timer0 preskaler 8 i OCR0=50. Układ ewidentnie nie wchodzi w obsługę przerwania. Proszę o sugestie i ewentualne pytania co do kodu. Tryb pracy licznika CTC.
Pisałem ostatnio zegar na attiny2313 również popędzany z 8Mhz. Ponieważ musiałem ograniczyć się do 8bitowego licznika wykorzystałem: prescaller 64, zliczanie do 250 w trybie z maksymalną wartością licznik w rejestrze OCRxx i generowanie przerwania przy przepełnieniu. Otrzymałem generowanie przerwania z częstotliwością 500Hz. Teraz tylko programowy podział...
O właśnie teraz pomyślałem o zewnętrznych przerwaniach, że tak można by to zrobić. Natomiast nie rozumiem co rozumiesz przez stwierdzenie, że tryb PWM skraca cykl zliczania do 256 (czy ileś tam)? Specyfikacja procka stwierdza że dla Fast PWM "The minimum resolution allowed is 2-bit (ICR1 or OCR1A set to 0x0003), and the maximum resolution is 16-bit...
Mniej więcej co 2 tygodnie ktoś tu próbuje obsługiwać przycisk na przerwaniu portu i co dwa tygodnie próbujemy takiemu delikwentowi wybić ten nierozsądny pomysł z głowy. Przeszukaj archiwum. Przycisków NIE obsługuje się przy użyciu przerwań portu, a przy użyciu przerwania timera. Jak chodzi o mikrokontolery jestem początkujący. Tego typu obsługa była...
1Hz to raz na sekundę. 8MHz to osiem milionów razy na sekundę. Sekunda jest tu kluczowa. W ciągu sekundy procesor taktowany 8MHz przetworzy około 8mln instrukcji (pomijam te które wymagają dwóch taktow) no a jak podłączysz do procesora taktowanie 16MHz to odwali dwa razy tyle roboty w ciągu sekundy . Zerknąłem na twoje kody i mam kilka rad. W Bascom...
atmega32 licznik licznik częstotliwość częstotliwość licznik
filtr silnik odkurzacz karcher interfejs symulatora licznika cofanie
Safely Discharge DJI Batteries with Arduino Wybór dysku SSD dla płyty głównej LNVNB161216