licznik tcnt1

Znaleziono około 465 wyników dla: licznik tcnt1
  • Działanie rejestru ICR1 Timera1 - liczenie taktów między zboczami

    Czyli: jeżeli mam ustawioną reakcje na zbocze narastające, TIMER1 w trybie normal, i preskaler ustawiony na 1, to licznik TCNT1 cały czas się zwiększa, w momencie wystąpienia zbocza narastającego na ICP1 rartoś jaka była w liczniku jest przepisywana do ICR1 którą przypisuję do zmiennej. W momencie wystąpienia kolejnego zbocza narastającego wartość...

    Mikrokontrolery AVR   10 Maj 2019 10:32 Odpowiedzi: 13    Wyświetleń: 684
  • REKLAMA
  • Atmega8, C - Niedokładny pomiar czasu z dokładnością do 1ms, 8MHz oscylator

    Rzeczywiście to pomogło. Zastanawia mnie, dlaczego jak licznik był w trybie normalnym wywoływane było przerwanie... Bo przerwanie jest od porównania. Gdy TCNT1 = OCRA1 to jest wywoływane przerwanie. A wytłumaczysz mi dlaczego OCR1AL ma wynosić 124, a nie 125? Bo tak jest napisane w datasheet. Zresztą zauważ że taka sytuacja jest sensowna. Zwróć uwagę...

    Mikrokontrolery AVR   16 Kwi 2013 22:39 Odpowiedzi: 17    Wyświetleń: 2745
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (2min)...
  • ATMega8 - Jakie rejestry timera zerować przed uśpieniem mikrokontrolera?

    Pierwszy i bardzo poważny problem zauważyłem w funkcji TIMER1_COMPA, jest nim linijka rjmp uspij. Gdy się wykona, to przerwania pozostaną zablokowane, oraz kilka bajtów na stosie zostanie uwięzionych - głównie adres powrotu z przerwania. Można temu zaradzić poprzez wstawienie pop + pop + sei przed rjmp. Drugi problem, to karygodna pętla główna - dławienie...

    Mikrokontrolery AVR   15 Sie 2014 19:22 Odpowiedzi: 17    Wyświetleń: 2652
  • REKLAMA
  • Optymalizacja czyli jak najszybciej miotac 4-bitami [C] temat ogórkowy

    Wyprowadzając clk z portc można zyskać 1 cykl ( 15 cykli zamiast 16) przy okazji nie wyprowadzając zbędnej części bajtu na pozostałe piny. ld r17.50 lot: ld r16, x+ mov r18, r16 andi r16, 0x0F out PORTC, r16 ori r16, _BV(clk) out PORTC, r16 swap r18 andi r18, 0x0F out PORTC, r18 ori r18, _BV(clk) out PORTC, r18 dec r17 brne lot andi...

    Mikrokontrolery   21 Lip 2011 18:08 Odpowiedzi: 1    Wyświetleń: 963
  • Mikroprocesorowa Trawiarka PCB

    http://obrazki.elektroda.pl/7995180000_1... Witam! Jakiś czas temu rozpocząłem naukę pisania programów na mikrokontrolery AVR w języku C++. Przeczytałem wiele tutoriali, poradników, itp., aż w końcu doszedłem do pisania własnych, prostych programów. Po kilku takich „pseudoprogramach” zdecydowałem, że teraz czas napisać coś...

    DIY Warsztat   29 Gru 2014 14:04 Odpowiedzi: 70    Wyświetleń: 27819
  • atmega8 - Timer/Counter1 (16bit) atmega8 PWM (zasada dzialania)

    To tak, mam ustawioną wartosc max ICR1 = 1000, i wartosc min OCRIB = 800; Z dokumentacji widzę ze licznik TCNT1 zlicza impulsy i porównuje z OCRIB. Z dokumentacji - licznik TCNT1 zlicza impulsy i porównuje z ICR1(TOP) - następuje zapis nowej wartości OCR1A/B i zeruje(BOTTOM) TCNT1(licznik). PWM 50% to OCR1n = 1/2 ICR1.

    Mikrokontrolery   27 Sie 2015 19:36 Odpowiedzi: 3    Wyświetleń: 1299
  • [Arduino UNO] Jaka jest przyczyna przesunięcia wyświetlania znaków na wyświetlaczu 7-segmentowym?

    Udało mnie się zastosować kod zaproponowany przez (at)efi222, natomiast w funkcji void Cyfry musiałem zmienić typ argumentów na int8_t żeby objąć też liczbę -1 po ostatniej dekrementacji. Przy przenoszeniu kodu posiłkowałem się też innym tematem na elektrodzie https://www.elektroda.pl/rtvforum/topic3... gdyż dotychczas stosowałem tylko timery...

    Arduino   06 Cze 2025 20:28 Odpowiedzi: 17    Wyświetleń: 897
  • ATMEGA8 Tryb CTC: Konfiguracja stanów wyjść OCR1A i OCR1B

    Najpierw uruchomiłeś licznik a dopiero później ustaliłeś zawartość OCR1B. Czyli: - uruchamiasz licznik: TCNT1 = 0, OCR1B =0 - następuje porównanie: TCNT1 = OCR1B - zgadza się. Licznik robi to o co go poprosiłeś czyli ustawia PB2 w stanie wysokim - zmieniasz zawartość OCR1B ale to już nie ma znaczenia. Pin PB2 został ustawiony.

    Mikrokontrolery AVR   21 Kwi 2018 11:18 Odpowiedzi: 37    Wyświetleń: 1890
  • Czasowy regulator grupowy - do piekarnika elektrycznego

    https://obrazki.elektroda.pl/5690923100_... Jest to prosty grupowy regulator mocy z odmierzaniem czasu, wykonany na prezent do kontrolowania piekarnika elektrycznego. Osobiście wolę proste w konstrukcji prostokątne piekarniki z wbudowaną mechaniczną regulacją czasu i temperatury, jednak każdy ma swoje przyzwyczajenia i niektórzy wolą...

    DIY Konstrukcje   29 Wrz 2020 19:42 Odpowiedzi: 9    Wyświetleń: 3492
  • REKLAMA
  • [ATtiny2313][avr-gcc]Precyzyjny pomiar czasu luiminescencji z fotodiodą

    Przerobiłem licznik na timer: [syntax=c]while(1){ //---------------------- Krok 1 impuls światła ---------------------------------- licznik = 0; PORTD |= (1<<LED); _delay_ms(100); //mignięcie diody 50ms PORTD &= ~(1<<LED); //_delay_ms(22); //---------------------- Krok 2 pomiar czasu odpowiedzi ------------------------- if (!(PINB &...

    Mikrokontrolery AVR   03 Kwi 2014 13:22 Odpowiedzi: 17    Wyświetleń: 3363
  • REKLAMA
  • Arduino: Zliczanie impulsów enkodera i sterowanie przekaźnikiem

    Panowie, na szybko zapytałme chatGPT, o kod do obslugi enkodera i zapalenie diody na 1 sekunde ale żeby nie gubic liczenia impulsow. Czy taki kod jest prawidlowy: // Deklaracje zmiennych volatile int impulsy = 0; // Licznik impulsów const int enkoderPinA = 2; // Pin A enkodera podłączony do pinu 2 na Arduino Nano const int enkoderPinB = 3; // Pin B...

    Mikrokontrolery Początkujący   05 Lut 2024 15:37 Odpowiedzi: 19    Wyświetleń: 1602
  • atmega8- o co chodzi z phase and frequency mode?OCR1A co to?

    przebieg pwm(nieodwrocony) generowany jest tak, ze licznik TCNT1 jest inkrementowany do czasu wystapienia rownosci pomiedzy TCNT1 i OCR1A wtedy nastepuje zerowanie wyjscia, licznik TCNT1 jest inkrementowany dalej, az osiagnie wartosc TOP, potem nastepuje dekrementacja az znowu wystapi rownosc i wtedy jest ustawiany bit wyjscia. A mi chodzi o to ze w...

    Mikrokontrolery   26 Lut 2007 09:06 Odpowiedzi: 5    Wyświetleń: 1617
  • Jak mierzyć częstotliwość chwilową sygnału 10-15kHz z próbkowaniem 40Hz?

    ... ale zaraz, zaraz ;-). Zdarzenie ICP przepisze zawartość TCNT1 do ICR1. OK. Ale licznik TCNT1 wyzeruje się dopiero wtedy, gdy osiągnie wartość nowego ICR1, a więc nie od razu? Przecież może być "daleko" od ICR1...robiw Dodano po 8 ... a przy okazji zmniejszyć może znacznie (poprzez ustawienie nowego ICR1) wartość do jakiej zlicza Timer1 a co za tym...

    Mikrokontrolery   23 Cze 2012 11:29 Odpowiedzi: 94    Wyświetleń: 9525
  • Przerwania i PWM, ATmega8A - Brak reakcji na wektory przerwań

    Na poczekaniu zrobiłem podobny projekt sterujący serwomechanizmami poprzez przycisk, wykorzystujący przerwanie zewnętrzne na zboczu narastającym. Wszystko działało bez zarzutu. Tutaj, po przyjrzeniu się raz jeszcze temu, co naskrobałem widzę, że owszem, program działa. Wchodzi w pętlę while(1) i liczy. Ale najwidoczniej przepełnienie nie następuje,...

    Mikrokontrolery Początkujący   29 Mar 2015 01:56 Odpowiedzi: 49    Wyświetleń: 2793
  • Jak ustawić ICR1 dla serwa na PB7 w Atmega 644?

    A skąd wiesz że jest to naprawdę taki czas jak zakładasz? Może to dalej jest ponad 1.5ms? Zainstalowałeś ten pseudooscyloskop? No bo mi się widzi tak- TCNT1 już osiągnął 20000. Zanim sprawdzisz warunek to program coś robi. A licznik dalej liczy. TCNT1 już przekroczył 20000. No i warunek nigdy nie jest spełniony.

    Mikrokontrolery AVR   18 Maj 2012 13:01 Odpowiedzi: 14    Wyświetleń: 2234
  • Zegar widmowy - Propeller Clock

    To chyba nie kwestia wyważenia, tylko tego, że jest tak solidnie zamocowane, no i w końcu silnik od HDD jest dość mocny. Jest w tym sporo prawdy. Śmigło jest przykręcone w kilku miejscach a dodatkowo silnik ten ma tak zwartą konstrukcję, że mam wrażenie, że samochód mógłby po nim przejechać. Mimo to projektując płytkę starałem się rozmieścić elementy...

    DIY Konstrukcje   16 Gru 2021 23:01 Odpowiedzi: 239    Wyświetleń: 389483
  • Atmega32 - Wart. rejestru licznika przy debugowaniu jest inna niż w rzeczywistoś

    Staram się zoptymalizować kod. W tym celu chcę sprawdzić jak szybko zostaje wykonana instrukcja wysłania 16 bitowego słowa po sprzętowej szynie SPI. W tym celu zeruje i włączam timer1 (BEZ preskalera) na początku wysyłania i zatrzymuje na końcu. Zawartość licznika TCNT1 wysyłam po UARTcie. Wynik jaki otrzymuje to zawsze 278 cykli zegara (16MHz). Ciekawi...

    Mikrokontrolery AVR   21 Mar 2013 21:52 Odpowiedzi: 7    Wyświetleń: 1803
  • Attiny 2313A, C - Sterowanie fazowe nie działa na liczniku, tylko na delay'ach

    W końcu znalazłem przyczynę problemów - dzięki sugestii Andrzej__S zweryfikowałem jeszcze raz układ by się na 100% upewnić czy mam wszystko dobrze podłączone i wszystko było OK tylko ja zapomniałem o jednej oczywistej rzeczy - sterowanie oświetleniem odbywa się za pomocą TRIAKA :) Gdy załączałem triaka w obsłudze przerwania z timera to jego wyłączenie...

    Mikrokontrolery AVR   24 Wrz 2015 12:34 Odpowiedzi: 10    Wyświetleń: 1086
  • Zmierzenie szerokości impulsu z użyciem INT1/INT2

    Analizując pobieżnie Twój program - manipulowanie przerwaniami wygląda OK. Niestety coś w kodzie nie trybi ponieważ dioda informująca o dokonanym pomiarze się nie zapala. Wniosek nieuprawniony, ponieważ w pokazanym wyżej programie nie migasz diodą w przerwaniu, ani w części kodu sprawdzającej stan zmiennej end_echo_flag, a jedynie: - zieloną, gdy pomiar...

    Mikrokontrolery   12 Sie 2017 20:39 Odpowiedzi: 11    Wyświetleń: 909
  • ATMEGA32[C] - Źle działający programowy PWM na timerze 2

    Nie chciałbym zakładać nowego wątku także, opiszę kolejny problem jaki na potkałem przy budowie tego sterownika w tym temacie. Poniżej zamieszczam testowy kod do sterowania silnikiem lewo prawo. http://obrazki.elektroda.pl/6448390600_1... Przykładowo po pierwszym wysterowania śruba przemieszcza się z punktu 1 do punktu 2, przy kolejnym...

    Mikrokontrolery AVR   25 Cze 2015 22:43 Odpowiedzi: 12    Wyświetleń: 1332
  • Jak poprawnie obsłużyć przerwanie INT0 w ATmega8? Dioda miga bez naciskania guzika

    Nie chce zakładać nowego posta więc zapytam tutaj, szczególnie, że problem w sumie jest związany z wątkiem główny tego tematu:-) Napisałem coś takiego: volatile int licznik = 0; void main() { DDRB |= _BV(0);// wyjście DDRB |= _BV(1);// wyjście PORTB &= ~_BV(0);// zero PORTB &= ~_BV(1);// zero DDRD...

    Mikrokontrolery AVR   03 Wrz 2010 14:47 Odpowiedzi: 12    Wyświetleń: 3227
  • [atmega8][bascom] Pomiar przesunięcia dwóch sygnałów

    Witam. Próbuję napisać program odpowiedzialny za pomiar odcinków czasowych pomiędzy impulsami sygnału S1 i S2 (zgodnie z załącznikiem). Proszę o prześledzenie kodu, wszelkie uwagi i sugestie mile widziane. Nie mam pewności co do poprawności pobierania wartości licznika TIMER1 za pomocą TCNT1. 'program do pomiaru okresu sygnałów podpiętych do PD.2(INT0)...

    Mikrokontrolery AVR   23 Cze 2010 09:04 Odpowiedzi: 2    Wyświetleń: 1644
  • Odczyt czasu między przerwaniami z AD9850 przez Timer1 - błędy

    Celem jest zrobienie funkcji zliczającej czas między przerwaniami generowanymi przez zewnętrzny generator (docelowo będzie to obrotomierz). Generator jest precyzyjny, AD9850. Na wejście zapodaje prostokąt o różnym od 50% stopniu wypełnienia ale to właśnie nie powinno mieć znaczenia. Wyjaśniam. W poniższym kodzie korzystam z funkcji micros która mierzy...

    Arduino   16 Maj 2021 21:42 Odpowiedzi: 29    Wyświetleń: 1038
  • Dlaczego dany kod niewłaściwie zlicza impulsy enkodera optycznego?

    Witam serdecznie. Niestety po wielu bataliach poległem z tematem jakże prostym. Posiadam enkoder optyczny o dokładności 2000 impulsów na obrót. postanowiłem podpiąć go do mikokontrolera aby zacząć liczyć jego impulsy (kierunek obrotu tutaj jest nieistotny) impulsy liczy jednakże liczy je bardzo niedokładnie - szukając nie bardzo mogłem natrafić na szybki...

    Mikrokontrolery   20 Sty 2021 10:02 Odpowiedzi: 12    Wyświetleń: 660
  • [ATTiny2313/C] Błąd w przerwaniu po dodaniu jednej lini kodu

    Zmodyfikowałem przerwanie do takiej postaci: ISR(INT1_vect) //przerwanie od złącza PD3 (INT1) { if( ((PIND&0x08)==0)&... ) //jeśli został zwarty pin... { TCCR1B |= _BV(CS10); //start timera (przerwanie przez zrównanie) znacznik=1; //oznacz że rozpoczeło się liczenie...

    Mikrokontrolery AVR   06 Maj 2010 21:14 Odpowiedzi: 9    Wyświetleń: 2095
  • [atmega8] Jak odebrać sygnał z odbiornika Hitec HFD-08R0 na Atmega8?

    Niestety kod po waszych uwagach nadal nie działa:( Podłączenie GND do minusa odbiornika nie wpływa na działanie układu, podłączone nie było, ale po podłączeniu nic się nie ruszyło:( janbernat: zastosowałem się chyba do wszystkich uwag(chociaż nie rozumiem co one mają poprawić) i nadal nic... krru: fakt, mój błąd, ale po poprawieniu nadal nie działa:(...

    Mikrokontrolery AVR   15 Lis 2011 16:43 Odpowiedzi: 10    Wyświetleń: 3405
  • [AVR] Dlaczego przerwanie TIMER1_COMPA_vect nie działa w VMLab?

    Natrafiłem na kolejny problem w mojej walce z licznikami. Mój plan jest taki: - licz 18ms - uruchom przerwanie od OCR1A - zmień stan portu D na wysoki - ustaw teraz przerwanie od OCR1B - licz 512 razy po 62 takty (tak mi wyszło z obliczeń przy zegarze 16MHz bez preskalera) - ustaw PORT D na stan niski kiedy wartość licznika będzie się równała 255+polozenie...

    Mikrokontrolery AVR   08 Lis 2010 23:03 Odpowiedzi: 8    Wyświetleń: 4068
  • Jak sterować częstotliwością 1-5 kHz na ATmega32 za pomocą PWM?

    Napisałem taki kod... Sygnał wyjściowy chce mieć na PD5, resztę widać chyba w komentarzach, nie wiem jak takie coś z testować, poza tym brakuje tego całego porównania licznika z wartością gdyż nie wiem jak to zrobić za bardzo... Oraz czy dobrze i wystarczająco skonfigurowałem rejestry mi potrzebne do sterowania częstotliwością sygnału prostokątnego...

    Mikrokontrolery AVR   25 Mar 2010 21:04 Odpowiedzi: 16    Wyświetleń: 1854
  • Atmega8 - błędne wyświetlanie wartości TCNT0 na LCD po konwersji itoa

    Może stąd że nie czyścisz wyświetlacza przed wyświetleniem nowej wartości. To było przyczyną, sądziłem że funkcja itoa konwertując liczbę jedno czy dwucyfrową na tablicę znaków char (kilkuelementową) puste pola wypełni białymi znakami. Nie dzieje się tak, to co wydawało się być skonwertowaną liczbą w rzeczywistości zawierało śmieci z poprzedniej liczby...

    Mikrokontrolery AVR   16 Lut 2015 20:07 Odpowiedzi: 7    Wyświetleń: 1158
  • Jak ustabilizować obraz na wyświetlaczu widmowym przy różnych prędkościach?

    Może niech kolega spróbuje tak zmienić obsługę przerwania: Dodano po 16 Warto też upewnić się, że przerwanie od timera 0 jest maksymalnie zoptymalizowane. Jeśli wykonują się w nim obliczenia pochłaniające kilkaset cykli zegara, to mogą one opóźnić zresetowanie punktu startowego o ten czas, a przy maksymalnych obrotach podczas 400 cykli zegara wskazówka...

    Mikrokontrolery AVR   01 Lis 2011 20:46 Odpowiedzi: 17    Wyświetleń: 2480
  • [Atmega8] [Atmega8][AVR-gcc] - Jak dekodować 2 sygnały PPM z odbiornika RC?

    Koledzy mam małą zagwostkę. Potrzebuje rozkodować 2 sygnały ppm - sygnały pochodzące z odbiornika RC do serwa. Sygnał ma taka postać: Poniżej zrzuty z oscyloskopu: Długość impulsu 1.2ms serwo wychylone na maxa w lewo http://obrazki.elektroda.pl/5131828000_1... Długość impulsu 1.9ms serwo wychylone na maxa w prawo http://obrazki.elektroda.pl/6968753000_1...

    Mikrokontrolery Początkujący   13 Lut 2013 22:02 Odpowiedzi: 8    Wyświetleń: 3261
  • [Atmega32] Program w C - dioda miga co 2s zamiast co 60s, dlaczego?

    A czy mógł bym prosić o fragment kodu abym mógł to jakoś załapać bo nie wiem jak to za bardzo to napisać? Dostałeś przecież ode mnie link, a w nim dokładnie opisany przykład: http://www.elektroda.pl/rtvforum/viewtop... Czytam to co jest tam napisane, analizuje i kombinuje na kodzie ale nie mam pojęcia jak za pomocą Timera zdefiniować...

    Mikrokontrolery AVR   22 Cze 2012 15:04 Odpowiedzi: 32    Wyświetleń: 4171
  • Resetowanie timera w Atmega8 - jak wyzerować licznik do zera?

    Coś takiego ? [syntax=c] TCCR1B = 0; // wyłącz odliczanie SFIOR &= ~_BV(PSR10);// czyści oba TIMER'y (resztki wartości) ----------------------------------------... zmiana TCNT1 = 0x00; // ----------------------------------------... zmiana [/syntax]

    Mikrokontrolery AVR   16 Sty 2015 09:16 Odpowiedzi: 9    Wyświetleń: 1095
  • Atmega8 C - Licznik częstotliwości na wyświetlaczach 7 segmentowych

    Multipleksowanie jakoś działa, nie mam pomysłu jak można by to było zrobić lepiej. Gdzie umieścić pobieranie TCNT1 też nie za bardzo mam pomysłu...będę kombinował.

    Mikrokontrolery Początkujący   27 Lip 2013 07:44 Odpowiedzi: 9    Wyświetleń: 1854
  • [AVR] [AVR][C] Rozpoznawanie stanów sieci 1Wire na ATMEGA8, INT0 i timer

    Napisałem coś takiego (kod poniżej) i prawie działa. Problem był w deklaracji: volatile int LICZNIK (miałem double zamiast int i nie chciało działać). Jak przepisać cały licznik do zmiennej (jaką zmienną zadeklarować)? #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> //Definicje i markodeklaracje //Definicje do...

    Mikrokontrolery AVR   15 Mar 2009 12:37 Odpowiedzi: 8    Wyświetleń: 2514
  • [ATTiny2313/C] Przekłamanie w liczeniu czasu impulsu

    Witam! Napisałem program, który ma liczyć ile czasu trwał impuls i jaki jest odstęp między nimi. Problem wygląda tak, że mocno przekłamuje, ponad 2x i nie wiem z czego to wynika. Pomysł był taki, aby za pomocą przerwania od zrównania licznika uzyskiwać czas, czyli jedno przerwanie to u mnie 10µs. Gdy pojawia się impuls, ogólny czas między impulsami...

    Mikrokontrolery AVR   19 Maj 2011 06:44 Odpowiedzi: 21    Wyświetleń: 3199
  • Silnik krokowy bipolarny ATmega32 - program sterujący w języku C z wykorzystaniem przerwań

    Jeśli mam być szczery to potrafię korzystać z google i zależało mi na szybkim i prostym wytłumaczeniu, jakie timery jak zdefiniować odpowiednio czasy i jak obsłużyć te przerwania. W C robiłem głównie aplikacje konsolowe i znam konstrukcje pętli, umiem korzystać z instrukcji warunkowych i ogólne podstawy. Niestety przy uC zabija mnie tempo prowadzonych...

    Nauka Elektroniki, Teoria i Laborki   07 Sty 2021 00:04 Odpowiedzi: 2    Wyświetleń: 699
  • błędna obsługa przerwania INT1 - ustalenia szerokości impuls

    Witam. Tworzę mały projekcik i natrafiłem na pewną zagwózdkę. Na początku wprowadzenie co układ ma robić i jak działać. Układ składa się z części analogowej, tzn. dwóch detektorów tonu (LM567) odpowiedzialnych za detekcję "bitów" łącza fizycznego. Chodzi o to, że rozpoznają "swoją" częstotliwość i gdy stwierdzą zgodność z obwodem czasowym, na swoim...

    Mikrokontrolery AVR   01 Sie 2009 13:35 Odpowiedzi: 1    Wyświetleń: 1928
  • Atmega168A-PU: Brak działania przerwań, mruganie diodą nieudane.

    Cześć, dziękuję wszystkim za odpowiedzi. Generalnie problem rozwiązany, aczkolwiek muszę jeszcze zobaczyć do kodu asemblera bo wydaje mi się, że poprzedni kompilator coś nachrzanił i dlatego był taki cyrk, a w sumie ciekawy jestem. Korzystałem wcześniej z kompilatora dołączonego do CodeBlocks, jednak po tym co działo się w opisywanym wątku zmieniłem...

    Mikrokontrolery Początkujący   03 Lip 2018 14:16 Odpowiedzi: 10    Wyświetleń: 642
  • Niezrozumiały wynik obliczeń PWM na atmega 328p: Dlaczego ICR1=20000 daje 50Hz, a nie ICR1=40000?

    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,...

    Arduino   27 Wrz 2020 21:08 Odpowiedzi: 2    Wyświetleń: 876
  • Jak przeliczyć opóźnienie w timerze zamiast _delay_ms(x) w AVR?

    (at)excray No nie za bardzo robi się to tak jak pokazałeś. Przeanalizuj dokładniej pokazany kod a zauważysz, że nie działa prawidłowo. Np. TCNT1 ma 0xFFFF, ina ma więc 0xFFFF. Odmierzasz np. 10 taktów. 0xffff-0x0009 i warunek zakończenia pętli nie jest spełniony... [syntax=c]void delay_us(uint16_t time) { uint16_t ina, inb; ina = TCNT1; do { inb =...

    Mikrokontrolery AVR   06 Maj 2017 10:50 Odpowiedzi: 10    Wyświetleń: 1974
  • Przerwania w ATmega168 - Prośba o sprawdzenie programu i wytknięcie błędów.

    Witam serdecznie! Chciałabym na wstępnie nadmienić,że dopiero zaczynam przygodę z elektroniką. W związku z tym z góry proszę o wybaczenie, jeśli mój kod to masa banialuków. Próbuję zaprogramować uC ATmega168. Chciałabym nauczyć się poprawnej obsługi timerów. W związku z tym próbowałam napisać program dzięki, któremu dioda migałaby dokładnie co 1s. Korzystam...

    Mikrokontrolery AVR   05 Lip 2013 12:17 Odpowiedzi: 8    Wyświetleń: 1776
  • Fast PWM dla ATmega 32. Dobrze rozumiem działanie?

    Witam. Mam pytanie bo nie wiem czy dobrze zrozumiałem działanie fast pwm dla atmegi. Kicznik zlicza od 0 do max. Wartość max jak w nocie pisze uzależniona jest od rozdzielczości (8,9,10 bitów). Ale jest też mowa że można uzyskać rozdzielczość od 2 do 16 bitów w zależności od ustawienia OCR1A). Mi chodzi o rozdzielczość 8 bitów. Ustawiam WGM odpowiednio...

    Mikrokontrolery   11 Wrz 2007 01:43 Odpowiedzi: 9    Wyświetleń: 4302
  • [AVR] Błąd w opisie trybu prostego timera w książce: Język C dla uC AVR

    A sprawdziłeś to chociaż? Czy tylko teoretyzujesz? Bo jeśli to pierwsze to coś robisz źle, a jeśli to drugie to weź procesor i.sprawdź. Bo działa to.inaczej niż piszesz. 1. Mamy początkowo stan H 2. Ocr ustawiony na 1000 3. Licznik zlicza do 1000 i zmienia na L 4. Licznik zlicza do 65535, następuje przepelnienie i mamy w Tcnt1 0. Jednocześnie, o tym...

    Mikrokontrolery AVR   21 Wrz 2012 20:13 Odpowiedzi: 11    Wyświetleń: 2450
  • [C] [C][ATMEGA16] - Licznik czasu między impulsami w stacji pogodowej z hallotronem

    2 impulsy na obrót. (magnes neodymowy i czujnik halla) Nie zależy mi na super dokładności. Coś takiego skleiłem Dodano po 7 Dodam że mój program w innych linijkach kodu dokonuje pomiarów z innych czujników więc nie może być zapętlony i stawać w tej pętli . W pętli głównej while 1 jest parę delayów bo niektóre czujniki potrzebują czasu na pomiar

    Mikrokontrolery   04 Gru 2014 11:41 Odpowiedzi: 15    Wyświetleń: 2076
  • Czy Timer1 resetuje się po przepisaniu wartości do rejestru ICR1 w uP IPC?

    Witam, Mam którkie pytanko: Powedzmy, że do wyprowadźeń uP IPC doprowadzam sygnał prostokątny i chce wiedzieć jakie czasy mają poszczegółne impulsy. W tym celu konfiguruje Timer1. Mając skonfigurowany Timer1, mogę się spodziewać, że w momencie wykrycia zbocza narastającego (lub opadającego) na wejsciu ICP, aktualna wartość Timera1, rejestr TCNT1 jest...

    Mikrokontrolery AVR   19 Paź 2008 20:03 Odpowiedzi: 3    Wyświetleń: 1724
  • Przerwanie przepełnienia AVR w C - czas przekracza 1 sekundę, dlaczego?

    Dzięki ale dalej nic to niedało. Tak wygląda program po zmianach rozumiem ,że licznik zlicza od wartości z TCNT1 do 65535 więc poodejmowałem za jedną z rad, wartość TCNT1 od wyników ale dalej klapa wyświetla mi jakieś liczby w zmiennej " o " przekraczające czasem grubo ponad 10 000 a z mojch obliczeń 65535-34286 wynika że max to 29714 prosze mnie poprawić...

    Mikrokontrolery   09 Sty 2006 14:16 Odpowiedzi: 10    Wyświetleń: 1361
  • [Atmega8][Bascom] pomiar stoperem krótkich czasów.

    A ja dzisiaj nie byłem w pracy. Wziąłem zaległy urlop z 2007r. I oto co zrobiłem 'program do pomiaru czasu wciśnięcia przycisku podpiętego do PD.2(INT0) i PD.3(INT1) przez układ RC tłumiący drgania przycisku. 'Przy tych ustawieniach Timer1 zwiększa się co 128us a licznik przepełnia się co 8.389s 'Program sprawdzony i działa. 'W celu...

    Mikrokontrolery AVR   02 Lut 2010 00:32 Odpowiedzi: 30    Wyświetleń: 5894
  • Atmega8 i FAST PWM. Regulowanie prędkości obrotowej wiatraczków.

    Moim celem jest regulowanie prędkości obrotowej wiatraczków podłączonych do wyjść PB1 i PB2 za pomocą trybu PWM. Napisałem taki kod jednak coś nie gra. #include <avr\io.h> #include <avr\interrupt.h> #include <avr\signal.h> //ustawienie pinow na wyjscia wiatraczkow #define SET_FAN_OUTPUTDDRB|=(1<<PB1)|(1<... //wlaczenie...

    Mikrokontrolery   28 Lut 2006 12:30 Odpowiedzi: 2    Wyświetleń: 2989
  • ATMEGA8 - Jak ustawić TCNT1 dla przerwań co 0.1s przy F_CPU 7372800?

    Witam Po krotce omówię problemik z jakim się borykam: Uczę się oczywiście programowania AVR w C, napisałem prosty programik, który ma spełniać role BARDZO UBOGIEGO zegarka. problem polega na tym, ze nie wiem dokładnie jaka wartością mam nadpisać rejestr TCNT1 aby przerwanie wystąpiło dokładnie co 0.1s. Powinienem uwzględnić czasy wykonywania kodu zawartego...

    Początkujący Naprawy   20 Lip 2011 09:33 Odpowiedzi: 6    Wyświetleń: 2543