Rozważyłbym coś takiego: timer 8bit do przerwań, które zliczasz dla odmierzania czasu; timer 16bit do sprawdzania, czy nie zgubiłeś przerwania - chyba nie zgubisz 256 przerwań?
Ta biblioteka nie używa sprzętowego PWM. Według opisu używa jednego 16Bit Timera na każde 12 serv. Tak wiec Timer 16Bit jest już zajęty, PWM sprżętowy tego timera również jest niedostępny, ale możesz sobie te serva podłączyć pod dowolne piny a do odmierzania czasu zamiast Delay musisz/możesz użyć innego Timera :D
(at)seba_x:A co to za bzdura?:> • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler, one Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode A co do pytania autora, nie, zliczanie umożliwiają tylko dwa pierwsze timery. Trzeciego można używać jako wewnętrznego. Nie tylko...
Cześć W załączniku podsyłam Ci formułę obliczeń z której korzystałem oraz arkusze Open Office w którym to wyliczałem. Z jakiegoś powodu (już nie pamiętam) użyłem wtedy Open Office zamiast Excela. Ten arkusz nie otwiera się poprawnie w excelu. Obliczenia wykonane dla 250 kroków, timer 16bit (procek PIC taktowany kwarcem 8MHz). Teraz nie mam Open Offica...
Witam, chciałbym przy użyciu Atmega8 i zewnętrznego kwarcu odmierzać i zliczać setne części sekund, sekundę mogę łatwo wyłapać z timera1 według przykładowych obliczeń 4000000MHz / 256 = 15625 65536 - 15625 = 49911 lub 8000000Mhz / 256 = 31250 65536 - 31250 = 34286 Nie mam jednak pomysłu jak....... Z góry dziękuję za pomocne wypowiedzi. Aby odmierzac...
Testy można przeprowadzić w niektórych symulatorach np. [url=http://www.edsim51.com/]edsim51. Przykładowy kod poniżej. [syntax=asm] sekundy EQU 07Eh ;zmienna sekund jedna_dwudziestaEQU 07Fh ;licznik jednej dwudziestej sekundy resetowanie EQU 19456 ;ustawienie zliczania co 0,05sek setkiEQU 07Bh dziesiatkiEQU 07Ch jednostkiEQU 07Dh flagiEQU 020h org 0000h...
Łap. W Tiny13 ma 460 bajtów i nie zajmuje nawet połowy. Zostawiłem Tobie tam jeszcze kilka bajtów RAM a podstawowe funkcje kodujące i repeat masz więc możesz się pokusić o więcej przycisków, albo nawet klawiaturę na ADC ;) To jest takie najkrótsze demo z jedną komendą ON/OFF dla telewizora. [syntax=vbnet]'*************************...
To nie Bascom jest przyczyną tylko źle napisany program ;). 1. odczyt timera1 16bit odbywa się po przez rejestr pomocniczy TEMP, ten rejestr jest też używany przez inne procedury i funkcje i jeśli jest użyty to właśnie niszczona jest wartość High timer1 bo ona tam jest wpisana gdy używasz komendy. wpisując tak timer1 do tablicy możesz gubić High timer1....
(...)Chcę przy moim kwarcu 11,0592 uzyskać przerwanie co 1 sek(...) Zwracam tylko uwagę na fakt, że Timer zlicza w dół od wartości ICR1 do zera włącznie (po czym znów od ICR1). Częstotliwość na jego wyjściu wynosi więc 11,0592MHz/256/( ICR1+1 ). A zatem wartość wpisywana do rejestru ICR1 powinna być o jeden mniejsza, czyli wynosić 43199. Oczywiście...
The extreme values for the OCR1x Register represents special cases when generating a PWM waveform output in the fast PWM mode. If the OCR1x is set equal to BOTTOM (0x0000) the output will be a narrow spike for each TOP+1 timer clock cycle. Setting the OCR1x equal to TOP will result in a constant high or low output (depending on the polarity of the...
Nie wystarczy zmienić wartość zmiennej "pwm". Musisz przede wszystkim zmienić zawartość rejestru OCRxx aby zmienił Ci się współczynnik wypełnienia: [syntax=c] if(pwm<1000) { _delay_ms(100); pwm++; OCR1A = pwm; //<==== }[/syntax]
https://obrazki.elektroda.pl/3563451200_... Intro Zawsze fascynowała mnie możliwość konwersji sygnału czasowego na dane w dziedzinie częstotliwości. Pamiętam jak w wieku około 16 lat dopytywałem mojego ówczesnego nauczyciela matematyki, jak działa transformata Fouriera. Dowiedziałem się wtedy tylko że jest to całka, niestety nic więcej...
http://obrazki.elektroda.pl/6038046600_1... http://obrazki.elektroda.pl/9492337500_1... http://obrazki.elektroda.pl/8744464400_1... http://obrazki.elektroda.pl/7450126200_1... Jak to w życiu bywa, człowiek kolejny raz staje przed wyborem kupienia wątpliwej jakości chińskiego produktu,...
Wydaje mi się, że zidentyfikowałem kilka rejestrów. Zakres zaczynający się od przesunięcia rejestru 0x1 wydaje się dostarczać wartości na żywo, podczas gdy drugi, zaczynający się od przesunięcia rejestru 0x1001, jest miejscem przechowywania ustawień. Wartości na żywo przy przesunięciu 0x1: [syntax=text] Slave ID: 1 (decimal) | 01 (hexadecimal) Function:...
Nom. Atmega162 nie ma nawet ADC, ale ma jedną ciekawą cechę - drugi 16Bit Timer czego Atmegi164/644 nie mają. Przydało mi się raz kiedy migrowałem gotowy projekt do innego zadania a potrzebowałem drugiego Timera 16Bit. Zależy co kto potrzebuje.
Po pierwsze to mega dziwnie ustawiasz ten oscyloskop, ale to detal. Po drugie, powiem szczerze, nie do końca rozumiem działanie trybu 15 TIMER1. W tym trybie licznik liczy do wartości ustawionej w OCR1A, ale kiedy następuje przełączenie wyjścia? Chyba już wiem w czym rzecz. Z noty: "Combined with the WGM13:2 bits found in the TCCR1B Register, these...
https://obrazki.elektroda.pl/8443317300_... Dzień dobry, Tym razem chciałbym się pochwalić moją dwudniowym projektem jakim jest mały dwu-kanałowy pilocik RC5. Mój tak naprawdę jest tylko w drobnej części, bo sam program napisał "bart-projects" ( https://obrazki.elektroda.pl/5129813300_... https://obrazki.elektroda.pl/9231548100_...
Jak możesz to zastosuj kwarc 4194304Hz na timerze 16bit przy preskalerze 64. Timer nie niepokojony niczym zgłosi ci przerwanie równo po 1 s.
100Hz wziąłem z - Ocr1a = 2857 (1,4kHz), a w Ocr1b = 3333(1,2kHz) to układ generuje tylko pierwszą częstotliwość z OCR1A, no bo 2957 taktów przychodzi szybciej i TIMER1 się zeruje, a wiec nigdy nie ma przerwania z OCR1B,przez co nigdy nie zmiana się stan końcówki PB.2 - Ocr1a = 3333(1,2kHz), a w Ocr1b = 2857(1,4kHz), to oba układy generują mniejszą...
Stop timer nie zeruje automatycznie zawartości timera. Nie wiem jak jest z Start timer. A jaki prescale byś proponował ? dla timera 16bit i 8000000Hz, żeby mierzyć dość dokładnie w całym zakresie ? Z moich obliczeń wychodzi 8, wtedy przerwanie będzie co około 65ms. Jeszcze tak się zastanawiam w helpie jest napisane, że "Uwaga! Użycie parametru PRESCALE...
Witam, zacząłem sobie dziś robić mały projekcik, są to 2 płytki z procesorami atmega32, jedna ma za zadanie naśladować silnik(prowizorycznie) jest generatorem impulsów prostokąt. z wykorzystaniem timera 16bit CTC, jeden kanał to częstotliwość a drugi to szerokość impulsu. Do przeliczania obrotów na minutę wykorzystałem wzorek: x=(F_CPU/(T1_PRESCALER*((float)obroty)/6...
Witam. Na wstępie chciałbym napisać iż szukałem informacji na ten tematu na tym forum a także na google ale nie znalazłem jednoznacznej odpowiedzi. Otóż czy używając sprzętowego PWM w uC blokuje jego timery? tj. o co mi chodzi. Otóż atmega 168 posiada: 6 kanałów PWM 2 timery 8bit 1 timer 16bit z noty katalogowej widzę iż 6 kanałów PWM OC0A - wykorzystuje...
Kolego (at)miszcz310 tu nie wykorzystuje się przerwań bo to enkoder magnetyczny z interfejsem I2C który dodatkowo ma tylko wyjście PWM lub DAC. Czyta się go przez odpytywanie co jakiś czas. BTW "Config Encoder = Enabled" to chyba tylko bot mógł napisać ahahahaha :D Trzeba sobie ustawić Timer i odpytywać. Enkoder ma 14bit więc najprosciej jest chyba...
Jak ustawic timer 1 żeby liczyl 16bit a nie 8? bo to co napisalem ponizej to zawsze tylko liczy w TCNT1L a to co wpisałem w TCNT1H automatycznie wymazuje przy kolejnym cyklu dlaczego? :( .cseg .org 0x00 rjmp start .org 0x06 rjmp timer1 .org 0x11 Start: Ldi Acc, 1; ustaw preskaler timera 1 na 1 Out TCCR1A, Acc Out TCCR1B, Acc Ldi Acc, 0x80 ; wpisz wartosć...
witam. mam taki program: void main(void) { TMOD = 0x01; //timer0 - tryb1 16bit timer TH0 = 0xfe; //stan poczatkowy TL0 = 0xB0; //stan poczatkowy TF0 = 0; //kasowanie bitu przepelnienia timer0 ET0 = 1; //wlaczenie przerwania przepelnienia timer0 EA = 1; //wlaczenie przerwan TR0 =1; //start timer0 while(1) { ; } } pozdrawiam a gdzie obsługa przerwania...
Zerknij na ten kod, zrobiony na rejestrach,... prosto tłumaczy co i jak a przy okazji ma tez DutyCycle. Jak niepotrzebne to ustaw 50%. https://www.elektroda.pl/rtvforum/viewto... Dodano po 8 Może inaczej... uC prosto ze sklepu z podzielnikiem CKDIV8 czyli kręci sie 1MHz Ty chcesz 2kHz=2000Hz 1000_000Hz/2000Hz = 500 Wystarczy...
Witam wszystkich w swoim pierwszym poście :) Wydawało mi się, ze moge znaleźć na kazde pytanie odpowiedź, ale jednak zmuszony jestem do napisania nowego tematu. Otóż walczę z problemem dokładności chyba z miesiąc. Układ co 1min ma załączać na okreslone czasy przekaźniki. Używam kwarcu 14,7456Mhz a układ notorycznie SPIESZY się o ok 0,5s na godzinę....
Tak myślałem, otałem sie o produkcje poligraficzną na maszynach offsetowych:D Główny problem to najniższa prękosc liczenia. Poza tym dość prosto, zewnętrzny kwarc jako podstawa czasu, wenętrzny ma za duże odchyłki. Timer 16-bitowy jako timer zliczający interwał czasu w którym odbywa się pomiar, drugi timer jako licznik impulsów z fototranzystora. Reszta...
Przepraszam, niefortunnie zasugerowałem się AVRStudio w wersji 5 oraz jego dokumentacji w PDF-ie. Uruchomiłem już licznik cykli w AVR Studio 4 i rzeczywiście można wyciągnąć następujące wnioski: dla kodu ze zmiennymi statycznymi są 443 cykle dla kodu ze zmienną typu "register" jest 198 cykli Dziękuję tmf za podpowiedź, rzeczywiście przyspieszyłem przerwanie...
najlepiej zastosuj w układzie zegarek pcf8583. on daje impuls z wypełnieniem 50% co sekundę czyli mozesz zrobić odświeżanie wyniku co 0,5 sekundy. a jakiego wyniku a no takiego: podłącz przez negację 40106 (negacja ze szmitem) sygnał z wtrysiwacza czy co tam masz na wejście przerwania. zdefiniuj timer jako timer 16bit ale bramkowany zewnętrznie. tzn...
Bluedraco no właśnie nie, do pwm używam timera 2. Timer 1 to tylko licznik więc zostaje mi tylko timer 1 16bit Zrobiłem tak bo t2 jest 8 bitowy i nim steruje silniki przez l293. Więc wyprowadzenia PB1 i PB2 mam zajęte. Na początku myślałem że mogę się bawić z przerwaniami tylko naPB1 2 i 3 , teraz wiem że tak nie jest. Przepraszam za błedy, ale tak...
Witam. Mam problem na który sensownej odpowiedzi nie znalazłem, w nocie katalogowej także nie ma opisanego takiego przypadku za to jest kilka innych które mi średnio pasują do czegokolwiek. Mianowicie potrzebuje produkować przebieg o niezależnie programowalnej częstotliwości i czasie trwania stanu wysokiego. Parametry tego przebiegu to częstotliwość...
1. pwm programowy bo potrzebny jest timer 16bit do odczytu impulsu z odbiornika(przy kwarcu 4MHz i prescale 8 - 1-2ms = 500 - 1000) ... wyczytalem ze attin2313 cztery wyjscie pwm 2 na timer0 i dwa na timer1 tylko zastanawia mnie jak sie do tego ma bascom, bo tam nic takiego nie wyczytalem? moze ktos ma pojecie na ten temat?bo jesli na timer0 dalo by...
Hmm, chwilowo prostsze do wykonania wydaje mi się coś na tiny10 - wewnętrzny zegar 128khz (może nawet podzielony, bo chyba się da) + 16bit timer z DIV1024 daje ponad 8 minut... Może to dlatego, że więcej miałem do czynienia z mikrokontrolerami niż ze składanymi z klocków układami cyfrowymi. Mógłbyś zaproponować jakiś praktyczny schemat do wspomnianego...
Witam! Mam dość nietypowy problem z AVR-kami. Ostatnio używałem Timera na ATTiny2313. Ustawiłem preskaler /256, kwarc 8MHz, timer 16bit w trybie porównania i przerwanie. Wartość do porównania była ustawiona na ok. 31250. Ostatecznie powinienem otrzymać przerwanie z częstotliwością ok. 1Hz. To zwiększało licznik i on był wyświetlany. I tu pojawił się...
No właśnie zmieniłem CLKDIV8 na 1 czyli nie zaprogramowane i wreszcie zaczęło działać ale nadal przy ustawieniach TIMERA jakie podałem w programie nie odlicza mi 1s ale około 3s natomiast przy takich ustawieniach: zegar 12MHz prescaler=1, Load Timer1 = 65000 i zliczaniu 200 Dla Timera1 przy taktowaniu 12MHz aby uzyskac 1sec. bez kombinowania zliczania...
Witam. Wyłączenie zgodności z mega103 nie jest przyczyną braku komunikacji z programatorem. W trybie zgodności wyłączone są tylko dodatkowe układy, którymi różnią się te uC. Np. drugi UART, jeden z timerów 16bit, TWI, itp. Być może ustawiłeś fusebity na zawnętrzny zegar, bądź układ RC a nie kwarc? Wydaje się to być jedyną możliwą przyczyną.
Timer-1 16bit pracuje jako PWM dwa kanały OC1A i OC1B chyba że chcesz mono wtedy wystarczy jeden kanał . Timer 8bit musisz ustawić tak żeby generował przerwanie z taką częstotliwością jak próbkowanie dźwięku a w przerwaniu ładujesz próbki do PWM . Ok , tak zrobię . Wiesz ja już robię , to chciałbym to zrobić w miarę "fajnie" i , żeby to w miarę też...
Nie możesz tylko używać Timera2 do innych celów, bo właśnie jest on używany przez RC5 Funkcja GETRC5 domyślnie wykorzystuje Timer0 a nie Timer2. Oczywiście można to zmienić w konfiguracji, jednak autor tego nie czyni. Zatem pozostają mi dwie opcje, albo przestać używać timera0 do odliczania 1s odcinków czasu i zaprzęgnąć do tego timer2 (co może nie...
Przecież pisze to wyżej:) Ma być CTC, i czy to ważne dlaczego? Ma być użyty dlatego, że Timer 1 to PWM, Timer 3 liczy czas między przerwaniami zewnętrznymi i wpisuje ten czas do wartości TOP Timera 2. Ale timer 2 jest 8 bitowy, wiec ucieka mi pewna wartość bo Timer3 jest 16bit. Timer4 jest również 16bit wiec powinno grac.. Teraz działa to tak, że wartość...
Hmm, właśnie nie rozwiązało to problemu. Racja, używa tych sprintfów do dodawania danych do tablicy, którą mu podaję. Żeby rozwiązać problem dużej biblioteki użyłem printf-stdarg.c z demo użycia FreeRTOS'a. Teraz jest tylko jeden problem, po pierwszym wykonaniu funkcji TaskGetRunTimeStats() dane wydają się być ok, ale po późniejszych procenty przekraczają...
Nie da się. W tej implementacji FreeRTOS dla AVR, tiki są generowane przez przerwania WD - ich interwał można więc ustawiać w zakresie od 15 ms do 500 ms, co czyni ten RTOS (w moim przekonaniu) praktycznie bezużytecznym, ze względu na rozdzielczość timeout-ów. Pobrałem najnowszą wersjębo zainteresowało mnie wykorzystanie wd do przełączania zadań ale...
ATmwga 8 ma 3 timery... 2x 8-bit i 1x 16bit... Timer2 może pracować z kwarcem zegarkowym... Timer1 jako PWM... A timer0 jako licznik...
Mam pewny problem i nie umiem tego policzyć bo mi coś źle wychodzi Tak mam ustawiony timer1 16bit [syntax=bash] cli(); TCCR1A = 0; TCCR1B = 0; TCNT1 = 0; TCCR1A = (1<<COM1A1) | (1<<WGM11); TCCR1B = (1<<WGM13) | (1<<CS11); // preskaler 8 ICR1 = 19999; sei(); [/syntax] 1<<COM1A1 - generuje PWM na pinie 9 początek stan wysoki,...
Ja mam takie opracowanie ale na '51 Szkoda bo Bascomem nie programuję. Timer napewno działa dobrze tylko zależy jak go ustawisz. Ja to robiłem trochę inaczej. Przerwanie sygnału DCF-a dawało informację do programu głównego o odmierzenie czasu zwłoki i czasu tim-out. Czas zwłoki sprawdzał wartość odebranego bitu no a tim-out oczekiwał na "dziurę transmisyjną"...
Nie chcę być sędzią w tym poscie ale sadło zwróć uwagę na: TDV napisał: Z jedną uwagą: zacznie zliczać od tego co było TH0 + 66h bo nie modyfikujemy TH0, więc pozosaje bez zmian Jasne dla mnie jest że TDV myśli o 16 bit timerze z TH0 i TL0 sadło napisał : Nie dokładnie. Instrukcja MOV nie dodaje nic do zawartości rejestru tylko wprowadza do niego nową...
Czesc, No niestety nie hula... probowałem tego. Myśle ze atmega jest zryta jakos... Mimo tego, ze mam obsługe przerwań i tak, wiem ze to musi działać bo skopiowałem to z mojego poprzedniego projektu, to mi się restartuje atmega. Zwrać na płytce nie ma. [syntax=c] #include <avr/io.h> // Załaduj bibliotekę input/output #include <avr/interrupt.h>...
Usiłuje uruchomi DMA tak aby zgłaszało mi przerwanie (na początku może by po zakończeniu transferu) Timer wyzwalający mam już skonfigurowany [syntax=c] TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; /* USER CODE BEGIN TIM1_Init 1 */ /* USER CODE END TIM1_Init 1 */ htim1.Instance = TIM1; htim1.Init.Prescaler...
Witam. Chciałem zrobić sobie obrotomierz z wyświetlaczem led na procku AVR. Przeszukując sieć nie natrafiłem na nic takiego, jedynie na elektrodzie jest coś podobnego, tylko na wyższym modelu procka i dodatkowo skomplikowany http://www.elektroda.pl/rtvforum/topic37... Korzystając z tego i mojej nikłej umiejętności skleciłem program. Podczas pracy...
mam już od dłuższego czasu problem mianowicie generator częstotliwości dzisiaj bardzo się zdziwiłem gdy nie ładuje do timera wartosci początkowej wszystko jest ok, dioda sobie miga co ok 2 sek i jest spoko gdy natomiast załaduje do timera1 16Bit np 1000 co w zauważalny sposób nie powinno zmienić częstotliwości migania diody ona zaczyna migać jak oszalała...
atmega8 16bit timer bascom 16bit komputer 16bit
ricoh reset bębna silnik zwolnić alhambra silnik
samsung kostkarka toyota zawory głowica
Backing Up Firmware on BL602 Tuya Devices Termistor NTC ELTH 2790046 - zastosowanie i połączenie