licznik tcnt1

Znaleziono około 411 wyników dla: licznik tcnt1
  • 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ń: 894
  • 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ń: 609
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • 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ń: 1284
  • REKLAMA
  • Amtega16 i fast PWM. Tryby pracy. Phase and frequency corect.

    Tak rzeczywiście PWM chodzi jak powinien zeruje sie przy przejściu przez MAX tylko symulator szwankuje sprawdziłem to dając w głównej pętli while warunek while(1){ if(bit_is_set(PIND,PD5)) { licznik[0]=TCNT1; delayus(205); licznik[1]=TCNT1; delayus(1); licznik[2]=TCNT1; delayus(5);...

    Mikrokontrolery   20 Sty 2007 10:38 Odpowiedzi: 6    Wyświetleń: 1667
  • [C][Atmega 8] Pomiar czasu (milisekundy) miedzy zdarzeniami

    Ustaliłem na początku wartość początkową licznika TCNT1=0; Mogę wykorzystać ICP ale nie wiem jak to zakodować.

    Mikrokontrolery AVR   09 Cze 2010 19:00 Odpowiedzi: 6    Wyświetleń: 2220
  • REKLAMA
  • 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ń: 1824
  • 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ń: 1596
  • Jak skonfigurować wektory przerwań Timer1 PWM w Atmega8?

    Problem dla mnie pojawił się ze zrozumieniem wektorów przerwań które obsługują timer1. W dokumentacji jest tabela na stronie 46 W czym problem? Jak korzystasz z przerwania np. Timer/Counter1 Compare Match A czyli przerwanie w momencie gdy zawartość licznika (TCNT1) zgadza się z tym co wpisałeś do OCR1A to jeśli wcześniej w TIMSK ustawisz odpowiedzialny...

    Mikrokontrolery AVR   20 Gru 2011 23:04 Odpowiedzi: 19    Wyświetleń: 2996
  • [ATmega8] ATmega8: Niedokładne pomiary odległości - problem z komparacją sygnału

    A sprobuj zerowac licznik takim czyms: TCNT1 = 0x0000; zamiast TCNT1H = 0x00;//zerujemy timer 1 TCNT1L = 0x00;

    Mikrokontrolery AVR   25 Maj 2008 13:37 Odpowiedzi: 14    Wyświetleń: 2890
  • 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ń: 3336
  • Atmega128: Jak mierzyć częstotliwość impulsów na T1 i wyświetlać na LCD?

    ...przy 10000HZ na LCD wyświetla 0666... No to prawie jak liczba szatana :) if(licznik==4) { T1=TCNT1; utoa( T1, bufor1, 10 ); lcd_gotoxy(3,0); lcd_puts(bufor1); TCNT1=0; } Widzę, że dodałeś pozycjonowanie kursora, żeby wynik za każdym razem był wyświetlany w tym samym miejscu wyświetlacza. Trzeba by jeszcze...

    Mikrokontrolery AVR   07 Lip 2010 16:54 Odpowiedzi: 16    Wyświetleń: 3268
  • Czy da się automatycznie policzyć ilość cykli zegara?

    Sądzę że to niemożliwe do policzenia podczas kompilacji ponieważ w programie może być pętla, a kompilator nie wie ile razy zostanie wykonana. W moim kodzie akurat w tym miejscu nie ma pętli ale są 3 warunki czyli co najmniej 2 bliskie skoki. Czyli też nei wiadomo ile czasu się bedzie wykonywać, bo skok to 3 cykle, a brak skoku to dwa cykle. Może są...

    Mikrokontrolery   06 Sty 2011 20:30 Odpowiedzi: 7    Wyświetleń: 2828
  • Miernik częstotliwości na ATmega16 - przerwania i liczniki T0, T1

    Zawartość licznika jest w TCNT1, a gotowa funkcja to: a=TCNT1; gdzie a to zmienna typu unsigned int ;)

    Mikrokontrolery   15 Lut 2008 16:19 Odpowiedzi: 12    Wyświetleń: 3441
  • REKLAMA
  • 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ń: 9390
  • [AVR] [AVR][C] Rozpoznawanie stanów sieci 1Wire na ATMEGA8, INT0 i timer

    Twój pomysł wygląda ok, ale trzebaby jakoś wyeliminować ryzyko zgubienia jednego zbocza, bo wtedy komunikacja padnie. Próbowałem przy opadającym zboczu wejść do przerwania, uruchomić timer i wykonywać przerwanie aż do momentu gdy na linii będzie stan wysoki (za pomocą loop_until_bit_is_clear, a następnie przepisując stan licznika do nowej zmiennej),...

    Mikrokontrolery AVR   15 Mar 2009 12:37 Odpowiedzi: 8    Wyświetleń: 2475
  • 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ń: 2736
  • [AVR-GCC] Jak poprawić kod częstotliwościomierza z użyciem przerwań?

    Witam, Próbuje zrobić częstotliwościomierz i napisałem taki programik: #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <avr/interrupt.h> #include "lcd.h" float f,licznik; int t; char bufor1[10],bufor2[10]; SIGNAL (SIG_INPUT_CAPTURE1) { licznik=TCNT1; } SIGNAL...

    Mikrokontrolery   18 Kwi 2007 00:16 Odpowiedzi: 4    Wyświetleń: 3075
  • Jak zrealizować programowy PWM na AtTiny2313 dla serwomechanizmów?

    Dzieki za szczegolowy opis, wczesniej zbyt szybko pospieszylem sie z odpowiedzia :) . Jeszcze raz przyjzalem sie programowi i mam watpliwosc co do odczytu z 16b. rejestru TCNT1. O ile zapis jest zgodny ze specyfikacja atmela (zobacz strona 83 pdf-u Tiny2313) najpierw wpis to bajtu starszego a pozniej mlodszego to odczyt powinien byc w kolejnosci odwrotnej....

    Mikrokontrolery   21 Gru 2004 12:45 Odpowiedzi: 10    Wyświetleń: 5520
  • W procedurze Timer 1 wywoływanie procedury Timer 0 <AVR&

    Dobrze się kolega domyśla to ATtiny26. TCNT0 to 8 bitowy rejestr licznika tak jak TCNT1 - czy mam go deklarować ? i jako volatile ?

    Mikrokontrolery   28 Paź 2005 13:56 Odpowiedzi: 5    Wyświetleń: 2008
  • Timer CTC na ATmega8 - różnice między kanałami OCR1A i OCR1B

    Odpowiedź jest prosta i można ją wyczytać nawet z tabelki ustawień WGM1x: Tryb CTC wykorzystuje m.in. OCR1A do ustalenia wartości TOP licznika TCNT1, czego OCR1B nie potrafi zrobić samodzielnie. Jeśli chcesz skorzystać z obu przerwań OCR w wybranym przez Ciebie trybie CTC, to OCR1A i tak musisz ustawić tak jak obecnie by "skrócić" licznik. Natomiast...

    Mikrokontrolery AVR   12 Paź 2009 07:46 Odpowiedzi: 5    Wyświetleń: 1320
  • Pomiar czasu wtrysku (atmega168, bascom) - mały problem

    Witam! Z tego co zauważyłem, a to: '-------------------------obsługa przerwań--------------------------------... '''''''''''''''''''''''sekunda - przerwanie od zegara'''''''''''''''''''''''''' Calasekunda: Cala_sekunda = 1 Stop Timer0 Impp = Tcnt0 Tcnt0 = 0 Start Timer0 Liczba_taktow = Capture1 Capture1 = 0 Return wg. mnie powinno być: '-------------------------obsługa...

    Mikrokontrolery   18 Sty 2008 09:11 Odpowiedzi: 9    Wyświetleń: 2791
  • [AVR][C] Zerowanie i przechwycenie wartości timera przerwaniem

    Przepraszam ze nie odpisałem ale nie miałem zupełnie czasu. Wymyśliłem coś takiego (program ma dzialac na Atmega99PA czestotliwość zegara to ok 100kHz: [syntax=c] #include <avr/interrupt.h> . . . /*przerwania*/ volatile unsigned int licznik=0; uint8_t przerwanie=1; ISR (INT0_vect) { if (przerwanie==1) { TCNT1=0; EICRA=_BV(ISC01)|_BV(ISC00); /*Reakcja...

    Mikrokontrolery   10 Lis 2014 18:57 Odpowiedzi: 4    Wyświetleń: 1431
  • [Bascom] Czy kod w Bascom do liczenia czasu otwarcia wtrysku jest poprawny?

    Na pewno nie wystarczy zmienić INT2 na ICP1. Czytałem jakiegoś manuala i zrozumiałem to tak. ICP służy do zapisu sygnałów wchodzących na procesor oraz odmierza ich czas trwania bądź momentu w którym wystąpiły. Działa to tak, że Timer1 (16 bitowy) liczy sobie z taką prędkością jaką zadaje mu preskaler. W chwili gdy na wejściu ICP pojawia się zbocze sygnału...

    Mikrokontrolery AVR   14 Paź 2016 04:12 Odpowiedzi: 20    Wyświetleń: 1908
  • 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ń: 2219
  • [ATTiny2313] Timerem1 i sterownik serwomechanizmów.

    Zobacz co się dzieje: TCNT1 ma wartość 65535 i za chwilę nastąpi przerwanie, wykonywana jest instrukcja timer1_=TCNT1 i w tym momencie następuje przerwanie. TCNT1 po powrocie ma mniejszą wartość ale jest już po herbacie - licznik==1 warunek po if jest spełniony PORTB=0 i czekamy na następne przerwanie. Dlaczego 20 cykli jest dobrze? Bo przerwanie musi...

    Mikrokontrolery   17 Maj 2008 14:28 Odpowiedzi: 5    Wyświetleń: 1866
  • 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ń: 1722
  • Jak poprawić dokładność zegara na Attiny2313 z kwarcem 4MHz?

    koniecznie zmień kolejność (manual str 88 ) TCNT1L = 0xDC; TCNT1H = 0x0B; na TCNT1H = 0x0B; TCNT1L = 0xDC; albo lepiej w C TCNT1=0x0BDC napisz co wyszło abstrahując od wszystkiego zmieniłbym algorytm tzn: wprowadziłbym dodatkowe zmienne licznika, i umieścił wszystko na jednym przerwaniu. Na pierwszy rzut oka to komplikacja, jednak w rzeczywistości przesuwasz...

    Mikrokontrolery   16 Lis 2007 17:53 Odpowiedzi: 16    Wyświetleń: 5378
  • [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ń: 2080
  • Zegar widmowy - Propeller Clock

    Zrobiłem sobie prosty wyświetlacz widmowy. Jednak gdy próbuję coś na nim wyświetlać to obraz mi się podwaja (chcę wyświetlić literę F a uzyskuję FF). Z czego może to wynikać? Dołączamy kod (na razie bardzo ubogi). Pomóżcie. [syntax=c]#include <util/delay.h> #include <avr/io.h> #include <avr/interrupt.h> volatile char licznik = 0; char...

    DIY Konstrukcje   16 Gru 2021 23:01 Odpowiedzi: 239    Wyświetleń: 388112
  • 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ń: 3212
  • Nierówne odczyty czasu między przerwaniami transoptora przy 400 RPM

    Dzięki BlueDraco za Twoją cierpliwość. Jaką wartość ma przerwa, jeśli nie wszedłeś pod pierwszy if()? przerwa ma wartość =1 (warunek zanegowany - nie wchodzi do pierwszej lini) Wchodzi do drugiej lini bo przerwa=1 a warunek=TRUE Czemu służy drugi if()? wejdzie do pierwsz linia if() po wystąpieniu (pierwszego) przerwania od INT0. -uruchamiany jest TIMER1...

    Mikrokontrolery   01 Gru 2018 23:39 Odpowiedzi: 17    Wyświetleń: 813
  • [Atmega32][c] timer1 ctc nie dziala clear output on comp match

    A change of the COM1x1:0 bits state will have effect at the first compare match after the bits are written. For non-PWM modes, the action can be forced to have immediate effect by using the FOC1x strobe bits. Być może w tym jest problem. OC1A jest prawdopodobnie inicjowane z wartością 0 do momentu wystąpienia pierwszego "compare match". W trybach "set...

    Mikrokontrolery AVR   31 Mar 2011 14:52 Odpowiedzi: 5    Wyświetleń: 2346
  • Wykorzystanie 3 liczników do generowania 6 sygnałów PWM na Mega328P

    Sprawdzam wartość rejestru TCNT1. Być może jest bug. mumin_80

    Mikrokontrolery AVR   27 Paź 2011 14:32 Odpowiedzi: 19    Wyświetleń: 1628
  • 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ń: 1836
  • [Atmega88][asm] - Timer1 i OCR1A źle odmierza czas

    Witam, Napisałem taki oto programik który ma za zadanie zmieniac stan diody co około jedną sekunde (odrazu dodam że nie chodziło mi o odmierzenie dokładnej sekundy tylko o opóźnienie). Wyliczyłem że przy preskalerze 256 timer1 musi zliczyć do 31250 żeby odczekał sekunde (taktowanie 8Mhz). Ustawiłem też bit WGM12 dzięki czemu Zawartość licznika TCNT1...

    Mikrokontrolery AVR   26 Lis 2009 06:25 Odpowiedzi: 3    Wyświetleń: 1864
  • [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ń: 3384
  • Atmega16 i Timery[C]. Można uruchomić 2 w jednym czasie?

    #include <avr/io.h> // dostęp do rejestrów #include <avr/interrupt.h> // funkcje sei(), cli() #include <avr/delay.h> ISR(TIMER1_OVF_vect) { TCNT1=50; } ISR(TIMER2_OVF_vect) { TCNT2=0x50; } int main() { // Ustawienie licznika 2 TCCR2=_BV(CS20); // Ustawienie licznika...

    Mikrokontrolery   02 Kwi 2009 10:29 Odpowiedzi: 13    Wyświetleń: 1287
  • [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ń: 4129
  • [ATTiny2313/C] Zajmowanie pamięci przez operacje na float

    Witam! Głowie się z tym nie wiem którą godzinę i nie mogę dojść czemu tak się dzieje. Mam tego typu program: #include <avr/io.h> #include <avr/interrupt.h> float m_sekundy_wtrysk=0, m_sekundy_obr=0, wynik2=0; uint8_t i=0, k=0, znacznik=0; float wynik=0; ISR(INT1_vect){ //przerwanie od złącza PD3 (INT1) TCCR1B |= _BV(CS10);...

    Mikrokontrolery AVR   26 Gru 2009 16:08 Odpowiedzi: 4    Wyświetleń: 1590
  • Stoper na ATMEGA 128 z wyświetlaczem HD44780 i klawiaturą - jak zacząć?

    #include <inttypes.h> #include <avr/io.h> #include <avr/signal.h> #include <avr/interrupt.h> #include "lcd.c" #define LED_ON (PORTB|=(1<<4)) #define LED_OFF (PORTB&=~(1<<4)... #define LCD_LIGHT_ON PORTB|=_BV(6) #define LCD_LIGHT_OFF PORTB&=~_BV(6) #define...

    Mikrokontrolery   14 Sty 2008 22:26 Odpowiedzi: 8    Wyświetleń: 3620
  • [Atmega32] - PWM i błąd podczas kompliowania przykładu z książki

    Jeśli jeszcze aktualne :) W ten sposób to obliczasz częstotliwość sygnału, a nie wypełnienie. Powinno być raczej: ts zawiera (bez konieczności przeliczania) czas trwania impulsu w mikrosekundach.

    Mikrokontrolery AVR   27 Gru 2014 20:07 Odpowiedzi: 4    Wyświetleń: 966
  • [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ń: 3148
  • atmega8[gcc] - błędne odczyty czasu 1uS przy użyciu timer2 i ISR

    Użyj licznika T1, a zamiast zmiennej uSeconds wykorzystaj zawartość rejestru TCNT1.

    Mikrokontrolery   14 Kwi 2018 14:33 Odpowiedzi: 16    Wyświetleń: 666
  • Atmega16 - różne wyniki zliczania impulsów przy 8MHz, dlaczego?

    zmieniłem kod programu: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include "hd44780.h" #include "stdlib.h" char Buffer[20]; int TCNT0_WART=0; volatile unsigned long imp_curr=0; volatile unsigned long imp_prev=0; uint32_t displ=0; int main(void) { //TCCR0 |=(1<<CS00)|(1<<CS01)|(1<...

    Mikrokontrolery AVR   15 Paź 2011 15:09 Odpowiedzi: 13    Wyświetleń: 3840
  • [C] Atmega32: Przerwania licznika, diody co sekundę, preskaler 256, TIMER1_OVF_vect

    Chodzi o to, że po pierwszym przerwaniu TCNT1 będzie miał wartość 0, czyli zliczy potem 65536 impulsów. Zaś do generowania, jak Ty chcesz, przerwań co określony odcinek czasu służy tryb CTC. Wtedy w rejestrze OCR ustawiasz ilość impulsów, które chcesz zliczyć, i wygenerować odpowiednie przerwanie.

    Mikrokontrolery Początkujący   27 Gru 2012 16:24 Odpowiedzi: 17    Wyświetleń: 1740
  • Timer1 w ATMega16 - GCC. Jak go włączyć? Jaki tryb?

    //inicjalizacja licznika TCCR1B |= _BV(CS10); //clkIO/1 (No prescalling) TIMSK |= TOIE1; //włączenie przerania sei(); //glogalne zezwolenie na przerwania ISR(TIMER1_OVF_vect) { //funkcja obsługi przerwania kiedy licznik się przekręci } kiedy będziesz chciał zapamiętać aktualną wartosc licznika np w zniennej a typu unsigned int wystarczy a = TCNT1; ps....

    Mikrokontrolery   19 Wrz 2007 11:58 Odpowiedzi: 5    Wyświetleń: 1425
  • [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ń: 3201
  • ATmega 16 - Brak sygnału PWM na pinie 3.3V, SD działa poprawnie

    Co jest źle, czego brak ? Wymagany sygnał: PWM -|________|-----|________|----| SD ---|______|--------|_______|------| (SD przed TOP) sygnały wyprowadzone na LEDy. Problem: Brak sygnału PWM. (na pinie 3.3V non-stop) !!!!! - pin SD działa prawidłowo. - ATmega 16 -nie uszkodzona. - Płytka PROPOXu sprawna. Tu wycinki z programu. [syntax=c] #define PORT_PWMPORTD...

    Mikrokontrolery AVR   26 Sty 2014 13:36 Odpowiedzi: 2    Wyświetleń: 1272
  • Dlaczego dany kod niewłaściwie zlicza impulsy enkodera optycznego?

    Sygnał podpinasz pod PD6, inicjalizujesz licznik: [syntax=c]void Init_Timer1() { TCCR1B = (1<<CS12) | (1<<CS11); TCNT1 = 0; }[/syntax] a w programie jako wartość enkodera czytasz TCNT1.

    Mikrokontrolery   20 Sty 2021 10:02 Odpowiedzi: 12    Wyświetleń: 603
  • 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ń: 2471
  • [ATmega8][C] Kłopoty z detekcją zera, fazowa regulacja mocy.

    Więc tak, napisałem program od nowa, zliczając tym razem przerwania INT1 i wywołując funkcję write_text_RAM() (wysyłającą dane po rs232) w przerwaniu TIMER1_OVF z odpowiednią wartością wpisaną do TCNT1. Okazało się, że jednak przerwania INT1 występują prawidłowo, co 0.01 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h>...

    Mikrokontrolery AVR   19 Wrz 2010 14:12 Odpowiedzi: 12    Wyświetleń: 7332
  • [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ń: 4041
  • 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ń: 1143
  • Licznik do starochińskiej gry GO

    http://obrazki.elektroda.pl/4678713800_1... Prezentowane w temacie urządzenie jest funkcjonalnym licznikiem przeznaczonym dla graczy starochińskiej gry GO. Sam nie jestem zapaleńcem GO, urządzenie zrobiłem bratu, pogrywamy wspólnie od czasu do czasu. Aby licznik zrobić bardziej uniwersalnym dodałem możliwość dowolnego ustawiania czasu...

    DIY Konstrukcje   27 Sty 2011 17:11 Odpowiedzi: 4    Wyświetleń: 5000
  • ATMega8: Jak uzyskać 12-bitowy PWM dla 4096 kroków w ASM?

    OCR1A rozumiem, ale TCNT1 po zapisaniu jakąkolwiek wartością powinien ją zmieniać, jako że jest licznikiem impulsów; a skoro piszesz, że ten rejestr pamięta wartość wypełnienia, to musi być jakiś bufor sprzętowy przed nim lub zrobione odświeżanie TCNT1 w przerwaniu od niego. Nie omieszkam sprawdzić niebawem jak to działa :)

    Mikrokontrolery   07 Lut 2007 15:01 Odpowiedzi: 54    Wyświetleń: 9392
  • Jak ustawić Timer1 na taktowanie zewnętrznym kwarcem?

    Witam !!! ISR(TIMER1_COMPA_vect) // przerwanie dla porownania { PORTC ^= 0x01; // zapalic/zgasic diode ICR1=28798; } int main(void) { DDRC |= 0x01; // INICJALIZACJA LICZNIKA 1 TCNT1 = 0x0000; // wartosc poczatkowa TCCR1A = 0x0000; // OC1A/OC1B odlaczone // zwykly tryb pracy //TCCR1A |= (1 << COM1A0); TCCR1B...

    Mikrokontrolery AVR   05 Kwi 2010 16:05 Odpowiedzi: 15    Wyświetleń: 1869
  • Funkcja micros() na Attiny85 zwraca wyniki o 2% większe - odczyt zegara na przerwaniu

    Mam ustawiony timer na 4kHz [syntax=csharp]cli(); TCNT1 = 0; TCCR1 = 0; OCR1C = 249; // 4000 Hz (16000000/((249+1)*16)) OCR1A = OCR1C; TCCR1 |= (1 << CTC1); TCCR1 |= (1 << CS12) | (1 << CS10); TIMSK |= (1 << OCIE1A); sei();[/syntax] W przerwaniu timera machałem pinem [syntax=csharp]ISR(TIMER1_COMPA_vect) { //licznik timer1 przepełnienie...

    Mikrokontrolery Początkujący   21 Wrz 2021 20:34 Odpowiedzi: 8    Wyświetleń: 1071
  • 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ń: 2691
  • Jak przeliczyć opóźnienie w timerze zamiast _delay_ms(x) w AVR?

    Witam nie mogę rozkminić jak działa przeliczenie opóznienia z kodu poniżej [syntax=c] void Wait_for(uint16_t delay) //Realizuje opóźnienie o zadanym czasie liczonym { //w odcinkach co 100 us TCCR1B=(1<<CS12) | (1<<CS10); //Preskaler timera 1024 TCNT1=0; //Pobierz aktualny stan licznika timera uint16_t val=delay*(F_CPU/10000UL)/1024; //Przelicz...

    Mikrokontrolery AVR   06 Maj 2017 10:50 Odpowiedzi: 10    Wyświetleń: 1941
  • 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ń: 1842
  • Problem z PWM, Phase and Frequency Correct dla atmegi 32

    W AVR Studio Version 4.14 korzystam z Debugera jesli o to Ci chodzi. Sprawdzam wartosci w I/O View, a konkretnie przygladam sie TCNT1 czyli wartosci licznika Timera1. Oprocz tego sprawdzam tam czy przypisane sa odpowiednie wartosci do ICR1 i OCR1A (wszystko sie zgadza). Sugerujesz, ze ten Debuger moze w tej kwesti klamac? Zaraz pojde sprawdzic w ukladzie...

    Mikrokontrolery   17 Sie 2008 12:05 Odpowiedzi: 6    Wyświetleń: 1437
  • 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ń: 1910
  • 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ń: 1062
  • 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ń: 1077
  • Schemat z Atmega16 i pytania odnośnie prograwania w C

    Do ustawiania jego parametrów służą dwa rejestry TCCR1A i TCCR1B, jeżeli ma chodzić jako zwykły tradycyjny timer to powinieneś tylko ustawić preskaler w rejestrze TCCR1B, w momencie ustawienia preskalera timer jest odpalany. W TCNT1 jest aktualna wartość licznika. Jeśli chcesz przerwanie od timera to w rejestrze TIMSK ustawiasz bit TOIE1(overflow),...

    Mikrokontrolery AVR   07 Kwi 2010 08:08 Odpowiedzi: 32    Wyświetleń: 4578
  • [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ń: 2441
  • 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ń: 1293
  • 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ń: 2971
  • [ATmega16] [ATmega16][AVR-GCC] Jak zmierzyć opóźnienie w obsłudze przerwania?

    Witam! Wielkie dzięki kolego atom1477 za wytłumaczenie mi dlaczego tak się dzieje i innym dlaczego tak zrobiłem, oszczędziło mi to pisania;) . Zrobiłem tak: mark[0]=TCNT1; PORTD&=~(1<<2);// Wyzwolenie przerwania opadającym zboczem _delay_ms(500); LCD_GoTo(0,0); LCD_liczba16(mark[1]-mark ...

    Mikrokontrolery AVR   20 Mar 2009 15:27 Odpowiedzi: 5    Wyświetleń: 2387
  • ATMEGA8 - Jak ustawić TCNT1 dla przerwań co 0.1s przy F_CPU 7372800?

    Dziękuje bardzo za pomoc, jak tylko przyjadę z pracy poprawie kod i dam znać czy i jak wprowadzone zmiany wpłyną na działanie programu. przetestowane - jedna uwaga zapis [syntax=c]TCNT1 = 0xFFFF - 100/7372800[/syntax] daje wpis o wartości ok 65534,99999 - obliczone na szybko w calc. potrzebną wartość jeśli się nie mylę uzyskam po wprowadzeniu: [syntax=c]...

    Początkujący Naprawy   20 Lip 2011 09:33 Odpowiedzi: 6    Wyświetleń: 2537
  • Jak zmieniać stan niski na wysoki za pomocą generatora? ATmega168 i język C.

    Witam, mam problem ze stworzeniem w języku C generatora, który będzie mi zmieniał stan niski na wysoki (stan niski 10ms, stan wysoki 0.32ms) przez czały czas działania programu niezależnie od pętli głównej programu. Czy jest to wogóle możliwe? Liczę na pomoc w dojściu do rozwiązania tego zagadnienia. ATmega 168 taktowana wewnętrzym oscylatorem 8MHz....

    Mikrokontrolery AVR   09 Mar 2019 16:24 Odpowiedzi: 17    Wyświetleń: 975
  • [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ń: 5849
  • atmega32, problem z przetwornikiem na kwarcu 14,745MHz

    Witam !!! Założę nowy temat z tego względu, że problem jest już trochę inny, niż ten poruszany w " ustawienie rejestrow w timerze 1" ISR(TIMER1_COMPA_vect) // przerwanie dla porownania { PORTC ^= 0x01; // zapalic/zgasic diode OCR1A=1440; //OCR1A=14745000/(512*(0.0185*AD... + 0.9814)); } int main(void) { DDRC...

    Mikrokontrolery AVR   09 Kwi 2010 21:38 Odpowiedzi: 9    Wyświetleń: 1466
  • Dlaczego dioda nie miga wolniej przy zmianie TCNT1H na ATtiny2313?

    Przyczyna jest banalna. To nie moze dzialac bo takie jest zalozenie producenta. A wystarczy napisac while(TCNT1<100); Nie nie to nie pomyjka ten rejest jest z zalozenia 16 bitowy i porownuje caly licznik T1 a nie tylko jeden bajt.

    Mikrokontrolery   22 Wrz 2006 15:54 Odpowiedzi: 9    Wyświetleń: 1277
  • 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ń: 1728
  • AVR Timer1 - wyświetlanie tekstu co 0.23s bez blokowania komponentów

    \ 1. Rozumiem, że ustawienie odpowiedniej częstotliwości da mi czas, który jest mi potrzebny? Tak, program z tego postu demonstruje rejestry i bity których odpowiednie ustawienie spowoduje daną częstotliwość przerwać timerów, a w konsekwencji odpowiednią częstotliwość wysyłania tekstu / migania diodą, jednak obecny ustawiony czas jest przykładowy, nawet...

    Arduino   20 Gru 2019 21:55 Odpowiedzi: 21    Wyświetleń: 2253
  • [ATMEGA8] [ATMEGA8][C] Reakcja na przycisk, zliczanie i zmiana stanu bitu po 1 sek.

    flaga==0; cóż to za cudo? Wykorzystujesz przerwanie TIMER1_OFV_vect a licznik ustawiasz w tryb CTC z wykorzystaniem COMPA. nic dziwnego ze nie działa. 2 sprawdzenie czy wciśnięto klawisz zbyteczne. if(flaga==1) { TCNT1=0x00; nie tylko zeruj licznik ale i włącz go, bo TCNT1=0X00; tylko zeruje licznik a nie zatrzymuje Dodano po 4 Ma byc...

    Mikrokontrolery AVR   04 Maj 2010 22:30 Odpowiedzi: 14    Wyświetleń: 2875
  • [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ń: 1587
  • Jak zbudować miernik prędkości obrotowej z Atmega8, LCD i GP1S51VJ000F?

    Żeby zrobić pomiar czasu w sek, potrzebuję wykorzystać drugi timer (TCNT1), on jest 16 bitowy. Kiedyś dla 8bitowego zrobiłem kalkulator w Excelu, za pomocą którego mogłem łatwo znaleźć czas, dopasowując częstotliwość, wartości w liczniku itd. Zamieszczam ten kalkulator, oraz program. Zrobiłem to samo dla 16 bitowego licznika. Ale nie umiem tego opanować,...

    Mikrokontrolery AVR   24 Sty 2011 00:38 Odpowiedzi: 62    Wyświetleń: 10806
  • PWM, program rozjaśniający diodę. Wyświetlanie na LCD.

    Witam wszystkich! Mam taki problem.... 'C026a.bas Zmiana jasności diody LED Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down Cls 'czyść ekran Lcd "EdW" 'wyślij napis Lowerline 'kursor do dolnej linii LCD Lcd "Cwiczenie 26a" 'wyślij napis 'czekaj 3 sekundy Do 'pętla nieskończona Incr Pwm1a 'zwiększ zawartość rejestru OCR1 If...

    Mikrokontrolery   10 Kwi 2007 21:22 Odpowiedzi: 3    Wyświetleń: 1551
  • [AVR][C] INT0 i INT1 wykonują więcej niż tylko własne procedury?

    Witam ponownie. Poniżej zamieszczam źródło mojego programu. Ma on działać następująco: Po wykryciu zbocza narastającego na INT0 resetuje zmienną x, włącza timer i obsługę INT1, którego przerwania cyklicznie inkrementują zmienną x. Po wykryciu zbocza narastającego na INT1, ma zatrzymać timer i włączyć obsługę INT0. Jednocześnie pętla główna cyklicznie...

    Mikrokontrolery   19 Mar 2011 13:15 Odpowiedzi: 11    Wyświetleń: 2497
  • 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ń: 1319
  • LCD 4x20 z przesuwanym i migającym kursorem w 4 wierszu

    trochę się doczepię: Teraz jest ustawiony na pojawienie się przerwania od przepełnienia TIMER1 Nie da się ustawić wyzwalania przetwornika od pojawienia się przerwania. Przetwornik może być wyzwalany przepełnieniem się timera. Zamiast uruchamiać przerwania tegóż licznika i wpisywać pustą obsługę przerwania, lepiej w przerwaniu od przetwornika dopisać:...

    Mikrokontrolery AVR   06 Wrz 2010 22:14 Odpowiedzi: 122    Wyświetleń: 9149
  • Jak zmierzyć czas wykonania algorytmu na AVR z użyciem Timera?

    Co prawda nie zliczam czasu tylko cykle zegara ale można z tego bez problemu wyliczyć czas. Umieszczam ten kod dla innych którzy będą czegoś takiego potrzebowali. Efekt końcowy tematu. [syntax=c] // Atmega1284P #define F_CPU 16000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include "uart0.h" volatile...

    Mikrokontrolery   13 Sie 2019 20:49 Odpowiedzi: 9    Wyświetleń: 726
  • ATmega128 - Timer - problem z transmisją starszego bajtu przez UART

    Cześć, Napisałem program, który uruchamia 16-bitowy Timer (TCNT1 w ATmedze 128). W moim programie Timer zlicza przez 128ms (dolicza w tym czasie do wartości 1000). Następnie wyświetla młodszy i starszy bajt Timera na wyświetlaczu alfanumerycznym (odpowiednio wartości dziesiętne 232 oraz 3). Do tej pory wszystko działa, ale gdy chcę wysłać odczyt każdego...

    Mikrokontrolery Początkujący   04 Paź 2016 13:06 Odpowiedzi: 6    Wyświetleń: 1209
  • Kodowanie biphase maski z PWM na ATMega32 - jak to zrobić?

    AD2. Hmm, ale myslalem ze tylko OCR1A moze robić jako TOP value w w TCNT1. Jeśli chce mieć te 12800 albo 14400, to musze ograniczać licznik a OCR1B chyba nie może tego robić. No chyba, że nie zauwazyłem jakiejś kombinacji prescaler/count number, która pozwolić działać na pełnym obrocie licznika. Jeszcze tego nie widze do konca, ale moze juz wkrotce...

    Mikrokontrolery AVR   17 Wrz 2008 16:03 Odpowiedzi: 22    Wyświetleń: 2081
  • [atmega8][C]Pomiar długości trwania impulsu / stanu niskiego

    Witaj Twoje obliczenia wyglądają na poprawne jednak wydaje mi się, że to cli() jest w złym miejscu. Z ustawień timera widze, że mierzysz "powolne" sygnały. Zatem twój program może nie zdążyć złapać przerwania od INT lub złapie tylko zbocze opadające, ale narastającego już nie, bo zostanie wyłączone globalne przerwanie. Poniżej przedstawiam mój kod który...

    Mikrokontrolery AVR   10 Sie 2008 19:58 Odpowiedzi: 3    Wyświetleń: 6844
  • 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ń: 1347
  • 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ń: 1703
  • ATmega32 - Licznik impulsów Timer0 i Timer1 ustawienie

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

    Mikrokontrolery Początkujący   29 Mar 2013 22:18 Odpowiedzi: 15    Wyświetleń: 5724
  • ATTiny2313 - Konfiguracja Timer0 w C do migania diodą LED bez użycia Delay

    Pusty blok jest dlatego, że utknąłem na konfiguracji Timer0. Jeśli chodzi o rejestry, to podejrzewałem, że jest tak, jak Kolega pisze. Wartość TCNT0 = 6; trzeba będzie wpisać do przerwania Timera Przy ustawieniach: [syntax=c] TCCR0A = (1 << CS01)|(CS00); // źródłem CLK, preskaler 64 TIMSK = (1<<TOIE0); //Przerwanie overflow (przepełnienie...

    Mikrokontrolery Początkujący   05 Lis 2015 15:45 Odpowiedzi: 47    Wyświetleń: 3003
  • [Atmega16] [Atmega16][C] Jak użyć timerów do opóźnionego załączenia na PB1 i PB2?

    Witam, dziękuję bardzo za cenne wskazówki jak rozwiązać mój problem. Stworzyłem kod i proszę o sprawdzenie czy takie coś ma szansę zadziałać. Pozdrawiam serdecznie #include <avr/io.h> #include <avr/interrupt.h> ISR(TIMER1_COMPA_vect) { ///dowolna akcja } int main (void) { TCCR1B |= (1 << WGM12);...

    Mikrokontrolery AVR   03 Maj 2010 15:07 Odpowiedzi: 13    Wyświetleń: 2652
  • [C][ATmega] Zegar widmowy, jak zlikwidować drganie obrazu

    Jak na załączonym obrazku, wskazówka i pozostałe elementy obrazu "migają", tak jakby nie zapalały się po każdym obrocie. http://youtu.be/SMU5YG3xl9k W czym tkwi problem? W kodzie prawie nic nie ma. Jeśli każę się zapalić wskazówce w przerwaniu to pięknie chodzi. PS: Wiem że zegar chodzi za szybko i w drugą stronę narazie tylko do testów :D. Przerwanie...

    Mikrokontrolery AVR   31 Maj 2012 22:25 Odpowiedzi: 14    Wyświetleń: 1698
  • Błąd Error: 222 przy użyciu Timer1 w ATtiny45 w BASCOM AVR

    Rejestry sterujące TCCR0A / TCCR0B , TCCR1A / TCCR1B - ustawianie trybu pracy. Rejestr licznika TCNT0 , TCNT1 (nic nie zmieniasz, ale jest wykorzystywany) - zliczanie. Rejestry porównania OCR0A / OCR0B , OCR1A / OCR1B - sterowanie wypełnieniem. A w liczniku Timer1 także GTCCR (dodatkowe tryby pracy) i OCR1C (dzielnik PWM).

    Mikrokontrolery AVR   19 Mar 2009 20:18 Odpowiedzi: 23    Wyświetleń: 2418
  • [C][Atmega8]presclaler,licznik T1, tablica stałych w PROGMEM

    Okazało się ze atmega chodziła na 1MHz...wewnętrznym oscylatorze... Ale teraz mam kolejny problem Dodano po 16 Więc jest tak, dzięki odpowiedniemu ustawieniu Fusebitów ustawiłem Atmegę na 8Mhz. Przeliczyłem tablicę stałych dla 8Mhz. I teraz mam pytanko: Uruchamiając ten program widać jak diody migają.. #define F_CPU 800000L #include <avr/io.h>...

    Mikrokontrolery AVR   27 Kwi 2009 18:41 Odpowiedzi: 3    Wyświetleń: 2906
  • Mikroprocesorowa Trawiarka PCB

    Poczytaj o tym, bo warto od razu przejść na taki "wyższy poziom" niż brnąć w ślepą uliczkę z blokowaniem programu przez zbędne delaye. W sumie czy aby przypadkiem migająca dioda w tempie 1s ze zmiennym wypełnieniem na jakimkolwiek timer to nie jest program z tych w rodzaju "Hello AVR!" :D Brakuje mi ewidentnie tutaj jakiegokolwiek ISR'a ;) // Clock...

    DIY Warsztat   29 Gru 2014 14:04 Odpowiedzi: 70    Wyświetleń: 27717
  • Atmega16 + Uart + pwm. AVR nie komunikuje się z PC.

    Witam pisze program do obsługi 2 silników dc poprzez avr atmega16 + rs232, mam pytanie odnośnie tego programu mianowicie: Przy obsłudze rs232 poprzez uarta 1. Linie portu RXD (PD0) ustawiamy jako wejście w jakim stanie wysokim czy niskim ? 2. Linie portu TXD (PD1) ustawiamy jako wyjście w jakim stanie wysokim czy niskim ? Czy modulacja pwm jest dobrze...

    Mikrokontrolery   17 Cze 2007 17:44 Odpowiedzi: 4    Wyświetleń: 1778
  • Ściemniacz 230V na Arduino

    Polecam sprawdzone rozwiązanie od co najmniej 30 lat na elementach dyskretnych. Układ posiada detekcję fazy. Żarówkę, lub silnik włączamy szeregowo z siecią AC. http://obrazki.elektroda.pl/2745125700_1... A ja nie polecam. Przy większych przesunięciach fazy ten układ jest bardzo niestabilny. Na ATiny2313 zrobiłem swojego czasu 4 kanałowy...

    DIY Zagranica   04 Cze 2021 20:45 Odpowiedzi: 75    Wyświetleń: 45645
  • [ATtiny2313] Jak ograniczyć zakres PWM w ATtiny2313 do 0-100 w Bascom?

    Kod skompilował się po dodaniu komendy Dim a as byte i wygląda to tak: [syntax=basic4gl]$crystal = 8000000 'Deklaracja częstotliwości kwarcu $regfile "attiny2313.dat" 'deklaracja modelu procesora Declare Sub Zwieksz 'Deklaracja procedury zwiększającej stan rejestru porównania Declare Sub Zmniejsz 'Deklaracja procedury zmniejszającej stan rejestru porównania...

    Mikrokontrolery AVR   24 Paź 2012 18:20 Odpowiedzi: 22    Wyświetleń: 4409
  • Atmega644 - sterowanie 5 serwami, kod nie działa poprawnie

    Mam nadzieję że zadziała: [syntax=c]#include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #define KEY1 (1<<PA0) // definicja przycików #define KEY2 (1<<PA1) #define KEY3 (1<<PA3) #define KEY1_DOWN ( !(PINA & KEY1) )// definicja wciśniętego przycisku #define KEY2_DOWN...

    Mikrokontrolery   02 Cze 2015 01:32 Odpowiedzi: 7    Wyświetleń: 876