przerwanie timer0 atmega

Znaleziono około 1044 wyników dla: przerwanie timer0 atmega
  • [Bascom] Atmega 644pa - przerwanie Timer0 do sprawdzania sygnału GSM na LCD

    Pewnie że nie będzie działać, ustawiłeś Preskaler =256 a więc przy zegarze 16MHz przerwanie od Timer0 będzie pojawiać się z częstotliwością 62500 razy na sekundę. (16000000/256 = 62500). Zalałeś modem zapytaniami o CSQ i biedny nie ma czasu na odpowiedź.

    Mikrokontrolery AVR   16 Kwi 2012 18:16 Odpowiedzi: 4    Wyświetleń: 1322
  • Atmega 8 Timer - Timer0 nie działa, kod nie wywołuje przerwań

    Ustawiasz timer0 a oczekujesz przerwania z timera 1 Interesujace.

    Mikrokontrolery AVR   16 Mar 2016 15:39 Odpowiedzi: 12    Wyświetleń: 1428
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • ATmega32 - Program nie wchodzi w obsługę przerwania TIMER0_COMP_vect

    Mnie wychodzi, że to nie jest tryb CTC tylko normalny. Po drugie na przerwanie compare trzeba zezwolić w rejestrze TIMSK - bit OCIE0 - masz < zamiast << stąd problem. Jak masz jakieś wątpliwości co do konfiguracji, to użyj symulatora AVR Studio. Można sobie w nim też ustawić tryb pracy i odczytać wartości rejestrów kontrolnych dla niego i potem...

    Mikrokontrolery AVR   30 Gru 2012 14:29 Odpowiedzi: 17    Wyświetleń: 2466
  • REKLAMA
  • Atmega 8/88P: delay_ms nie działa przy użyciu Timer0 z preskalerem

    A gdzie jest obsługa przerwania?

    Mikrokontrolery AVR   09 Lut 2019 09:08 Odpowiedzi: 8    Wyświetleń: 546
  • Atmega 128 - Timer0 nie działa poprawnie, jak skonfigurować przerwania?

    Po pierwsze nie podoba mi się zapis: Pinc.1 = not Pinc.1 Powinno być raczej: Portc.1 = Not Portc.1 Albo jak ktoś się bardzo uprze: Portc.1 = Not Pinc.1 Ale ogólnie do rejestru Pinx raczej nie zapisujemy. Ponadto... zegar 4MHz, dzielnik w timerze przez 256, timer0 (8 bitowy) ładowany wartością 250.... to daje podział przez 6*256 = 1536. To częstotliwość...

    Mikrokontrolery   24 Sie 2007 15:42 Odpowiedzi: 2    Wyświetleń: 1539
  • REKLAMA
  • Atmega 32 - Jak przekazać wartość sekund z przerwania timer0 do main?

    Wpisać magiczne "volatile" volatile int sekunda=0;

    Mikrokontrolery AVR   30 Maj 2009 20:48 Odpowiedzi: 2    Wyświetleń: 2728
  • [ATmega 644p][C] Analizator - problem z przerwaniem

    Dzięki wielkie- ale to nie do mnie pisałeś. O Atomic_Block dowiedziałem się w czwartek- sprawdziłem- od czwartku jest to pierwsza wiadomość na ten temat. A wracając do tematu Fir3man- wymyśliłem taki schemat programu: #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> volatile uint8_t dol;...

    Mikrokontrolery AVR   01 Wrz 2010 14:56 Odpowiedzi: 14    Wyświetleń: 3497
  • ATMEGA 2560: Jak odtwarzać krótkie pliki WAV bez użycia avr-dos.bas?

    Coś mi się zdaje że przerwanie się nie wykonuje. W symulacji się wykonuje, ale co 65536 cykli. BASCOM coś pierdzieli. Może przejdz na Timer0 albo Timer2 , przynajmniej dla testu.

    Mikrokontrolery AVR   16 Lis 2016 22:22 Odpowiedzi: 328    Wyświetleń: 97245
  • ATmega1284p TIMER0_OVF_vect nie działa - diagnostyka przerwania

    Witam, Z racji tego ile już zrobiłem na atmegach to aż wstyd pisać taki post, ale ręce już mi opadają.... Mam układ ATmega1284p, na który przenoszę kod obsługi modbus'a RTU który już skutecznie odpaliłem na kilku innych atmegach. Ta jednak jest oporna. Drogą śledztwa doszedłem, że winny jest niedziałający timer0. Zacząłem więc go rozbierać na czynniki...

    Mikrokontrolery AVR   03 Kwi 2020 11:48 Odpowiedzi: 2    Wyświetleń: 441
  • Błąd w programie multipleksowania LED na atmega32 - przerwania nie działają

    // ================= PROCEDURA OBSŁUGI PRZERWANIA COMPARE MATCH ISR(TIMER0_OVF_vect) Błąd. To jest przerwanie od przepełnienia licznika. Przerwanie od porównania to: TIMER0_COMP_vect . W nagrodę Pomógł od mniej spostrzegawczych użytkowników i moderatorów :) A co do tranzystorów, to oczywiście lepsze by były PNP, ale z NPN też będzie działać (trochę...

    Mikrokontrolery Początkujący   01 Cze 2015 18:16 Odpowiedzi: 22    Wyświetleń: 1503
  • [ATmega][Bascom] Proszę o podpowiedź co robię źle, polecenie incr.

    marcinek.p - to gotowiec dla ciebie, nie mam jak go przetestować ale jestem pewien że zadziała jak trzeba. Masz tu przerwanie, miganie led i zliczanie migniec z incr Mozna to wszystko wkleic do przerwania ale dobra zasada nakazuje w przerwaniach umieszczać jak najmniej kodu. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 $hwstack = 32 $swstack...

    Mikrokontrolery AVR   08 Lut 2012 12:14 Odpowiedzi: 11    Wyświetleń: 2217
  • ATMega128 - Świecenie 2 diodami na raz ze zmienną częstotliwością

    Kod piszę "na sucho", więc lepiej sprawdź czy działa.[syntax=c] #include <avr/interrupts.h> void timer0_init(void){ TCCR0 = _BV(CS02); //Mode 0, normal operation, prescaler 64 TIMSK |= _BV(TOIE0); //Timer/Counter0 Overflow Interrupt Enable } volatile unsigned long millis=0; volatile unsigned int okresy_migania_ledow[4] = {100,200,300,400}; ISR(TIMER0_OVF_vect)...

    Mikrokontrolery AVR   18 Wrz 2014 22:17 Odpowiedzi: 6    Wyświetleń: 1041
  • Atmega32 - Jak wyświetlić co ile jest podawany impuls

    Sprawdź te fuse bity czy na pewno atmega nie chodzi na wewnętrznym kwarcu. Po drugie w obsłudze przerwania nie powinno być żadnego wait, szczególnie takiego dugiego. Zmień "Load Timer0 = 250" na "Load Timer0, 250"

    Mikrokontrolery AVR   09 Maj 2014 15:23 Odpowiedzi: 12    Wyświetleń: 1050
  • atmega8, c - Przerwanie TIMER0_OVF_vect wykonuje się tylko raz, dlaczego?

    Musisz też załadować nową wartość do licznika timera. Jak już pisałem, bez fragmentu kodu odpowiadającego za pobranie czasu przerwania dziaął poprawnie, więc nie w tym problem.

    Mikrokontrolery Początkujący   09 Mar 2015 10:28 Odpowiedzi: 9    Wyświetleń: 1221
  • REKLAMA
  • atmega 8535 - Program nie sygnalizuje przerwań. ISR(TIMER0_COMP_vect)

    Witam, z niewyjaśnionych dla mnie przyczyn program napisany pot atmegę 8535 nie chce uruchamiać przerwań wywoływanych przez zegar. Posiadam taki następujący kod który powinien co przerwanie zmieniać stan portu B. [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> void system_init() { TCCR0 = 0x00; // Wylaczenie Timera 0 TCNT0 = 0x00;...

    Mikrokontrolery AVR   10 Wrz 2013 09:47 Odpowiedzi: 1    Wyświetleń: 1458
  • prośba o sprawdzenie schematu Atmega + przekaźnik 12 VDC

    Load Timer0 = 625 ?? Mam nadzieję, że kolega sam rozumie błąd w tym miejscu:> Poza tym ładnie jest najpierw włączyć timer a potem zezwolenie na globalne przerwania:>

    Mikrokontrolery   19 Kwi 2008 13:02 Odpowiedzi: 37    Wyświetleń: 10493
  • atmega8 - Nieprawidłowe działanie klawiszy po edycji kodu ISR TIMER0_OVF_vect

    Dzień dobry, Mam problem z klawiszami. Zedytowałem do własnych potrzeb fragment kodu znaleziony na http://mikrokontrolery.blogspot.com/ [syntax=cpp]ISR(TIMER0_OVF_vect) { sei(); static uint8_t stan_przyciskow_najstarszy , stan_przyciskow_stary , stan_przyciskow_nowy; stan_przyciskow_najstarszy = stan_przyciskow_stary; stan_przyciskow_stary = stan_przyciskow_nowy;...

    Mikrokontrolery AVR   30 Lis 2013 01:37 Odpowiedzi: 2    Wyświetleń: 1134
  • Atmega32A - Moduł L298 - Sterowanie silnikiem DC - PWM

    Może spróbuj sterowania w inny sposób - za pomocą przerwania INT2 (wywoływanego przyciskiem) uruchamiaj i zatrzymuj licznik TC0 (parametry PWM są ustawione u Ciebie poprawnie) tzn ustawiaj bity TCCR0|=(1<<CS00)|(1<<CS01) kiedy chcesz uruchomić licznik i zeruj je jeżeli chcesz zatrzymać. Samo ustawianie wartości wypełnienia czyli rejestr...

    Mikrokontrolery AVR   02 Sty 2018 23:56 Odpowiedzi: 22    Wyświetleń: 1575
  • [C] Atmega16 Timer0 - Przerwanie co 1s opóźnia się o 1,5s na minutę, dlaczego?

    W takim razie będę musiał gdzieś wcisnąć kwarc na płytce :( chyba, ze inna atmega będzie bardziej dokładna.. dziękuje wszystkim za pomoc :)

    Mikrokontrolery AVR   12 Wrz 2012 18:12 Odpowiedzi: 11    Wyświetleń: 1221
  • Zawieszanie ATmega 32 przy użyciu przerwań zewnętrznych i TIMER0

    mam maly problem.. zdarza sie ze moj układ oparty na ATmega 32 jakby sie zawieszał... wykorzystuje przerwanie zewnetrzne... // External Interrupt(s) initialization // INT0: On // INT0 Mode: Rising Edge // INT1: Off // INT2: Off GICR|=0x40; MCUCR=0x03; MCUCSR=0x00; GIFR=0x40; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01; a w programie...

    Mikrokontrolery   10 Lut 2007 00:12 Odpowiedzi: 4    Wyświetleń: 1323
  • ATmega32 sterowanie silnikami krokowymi - robot kartezjański

    Pierwsze, to nie możesz kuglować włączaniem i wyłączaniem przerwań. Silnik musisz zatrzymywać w inny sposób. z stepCounter zrób tablicę stepCounter[4]; Przerwanie zmodyfikuj mniej więcej tak [syntax=c] ISR(TIMER0_COMP_vect) //funkcja obsługi przerwania { for(char l=0; l<4; x++) { // lepiej for(char l=0; l<LSILNIKOW; x++) // i zrobić #define LSILNIKOW...

    Mikrokontrolery AVR   19 Mar 2018 15:54 Odpowiedzi: 8    Wyświetleń: 882
  • ATmega Bascom - Jak zliczać impulsy powyżej 256 na Timer0?

    Należy: - zadeklarować zmienną globalną np. LICZNIK i nadać jej wartość zera, - włączyć przerwania od przepełnienia Timer0, - w funkcji przerwania należy zwiększać wartość zmiennej LICZNIK o jeden Aby poznać liczbę impulsów wystarczy pomnożyć LICZNIK*256 i dodać do niego aktualną wartość rejestru licznika timera, czyli jak sądzę counter0 (nie znam BASCOM).

    Mikrokontrolery AVR   14 Gru 2014 14:58 Odpowiedzi: 2    Wyświetleń: 1287
  • Czy blokować przerwania INT0, INT1, Timer0, Timer1 przy SPI na ATMega?

    A mówią Ci coś takie pojęcia jak: atomowość zmiennej, semafory, kolejka ..... Jeżeli nie to tu szukałbym przyczyny. Pamiętaj że przerwania, to tak jakby wielowontkowy system.

    Mikrokontrolery   25 Sie 2008 21:24 Odpowiedzi: 2    Wyświetleń: 1134
  • Atmega168A-PU: Brak działania przerwań, mruganie diodą nieudane.

    Widzicie gdzieś problem w kodzie? Zobacz rozwinięcie asseblerowe czy na pewno istnieje obsługa:[syntax=c]ISR(TIMER0_OVF_vect)[/... Kompilator AVT-GCC nie sygnalizuje próby stworzenia obsługi wektora, który nie istnieje a o bład łatwo, bo w nazwach wektorów jest "mały" nieład. Możesz tez sprawdzić debugerem. Jeśli przerwanie nie istnieje nie da...

    Mikrokontrolery Początkujący   03 Lip 2018 14:16 Odpowiedzi: 10    Wyświetleń: 624
  • [AtMega16] [AtMega16][C] - Implementacja multitaskingu dla odczytu ds18b20 i sterowania GPIO

    Powrócę jeszcze do tematu. Timery programowe to objaśnił Mirekk36 w swojej książce oraz artykułach i wideo poradnikach, bardzo dobrze je się stosuje. Jest to proste, wystarczy ustawić jakiś timer w tryb CTC i wywoływać przerwanie co jakiś zamierzony czas (stosuje około 10ms). F_CPU/Prescaler/100 Zaokrągloną wartość wpisujemy do rejestru OCRx. W przerwaniu...

    Mikrokontrolery AVR   13 Kwi 2013 20:38 Odpowiedzi: 24    Wyświetleń: 2649
  • Jak napisać program w C dla ATMega 128 z odliczaniem czasu na wyświetlaczu?

    Jako ze nie przepadam za pisaniem na maile, to odpowiem tutaj... Musisz skonfigurowac odpowiedni timer i przy przerwaniu, jakie generuje int czas=0; int timer0=131; SIGNAL (SIG_OVERFLOW0) { czas++; if (czas==5000) BUUM(); //jezeli czas osiagnal 5000ms, to wywolaj funkcje BUUM(); TCNT0 = timer0; // zaladowanie do...

    Mikrokontrolery   05 Gru 2005 17:01 Odpowiedzi: 5    Wyświetleń: 3158
  • 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ń: 3271
  • [AVR] Nieaktywny Auto Trigger ADC na ATmega168 przy użyciu Timer0 w trybie CTC

    Masz skasować flagę timera OCF0A [syntax=c]TIFR0 |= (1<<OCF0A); [/syntax] Możesz też włączyć przerwanie od Timera i zostawić pustą obsługę przerwania: [syntax=c] ISR (TIMER0_COMPA_vect, ISR_NAKED) { asm volatile("reti"); } [/syntax] Co spowoduje że cała obsługa przerwania sprowadzi się do RETI

    Mikrokontrolery AVR   16 Gru 2020 20:52 Odpowiedzi: 19    Wyświetleń: 504
  • [C] Atmega32 Timer0 CTC – dioda nie zapala się w przerwaniu, kod nie działa

    Chcialbym napisac najprostrzy program aby sprawdzic czy progra mi wogole wchodzi w przerwanie czyli czy zapali diode. Ale zupelnie nic sie nie dzieje. Zarówno symulacja programowa w AVR Studio, jak i program uruchomiony na realnym sprzęcie działa poprawnie. Albo się pomyliłeś co do podłączenia diody, albo procesor jest uszkodzony. Po drobnej zmianie...

    Mikrokontrolery   07 Mar 2011 09:24 Odpowiedzi: 8    Wyświetleń: 1997
  • [ATmega] ATmega – dekodowanie sygnału RC5 za pomocą ICP i Timer1, jak zaimplementować?

    Przerwanie wolę mieć wolne. Poza tym przez zastosowanie ICP zajmuje się wyłącznie Timer1 a nie Timer0 i Int)...robiw

    Mikrokontrolery AVR   03 Gru 2009 20:08 Odpowiedzi: 6    Wyświetleń: 4049
  • [Atmega16][C][AVR Studio] Problem z przerwaniem od licznika

    Albo tryb CTC i przerwania od niego albo normalny tryb pracy i przerwanie od przepełnienia. W porównaniu do ostatniej wersji zmieniłem ISR (TIMER0_OVF_vect) na ISR (TIMER0_COMP_vect) i działa. Po prostu w zestawieniu nazw wektorów przerwań z których korzystałem nie było TIMER0_COMP_vect i stąd te zamieszanie. Dzięki wielkie :) Problem rozwiązany

    Mikrokontrolery AVR   08 Lis 2010 19:59 Odpowiedzi: 5    Wyświetleń: 1804
  • Timer TCCR3 atmega128A - diody LED nie działają w trybie PWM

    DDRD|=(_BV(PB5) | _BV(PB6) | _BV(PB7)); DDRD|=(_BV(PE3) | _BV(PE4) | _BV(PE5)); Widzisz tu subtelną różnicę...? Działające wstawki dla pwm na Tim1 i Tim2: [syntax=c]void Timer0Init(void) { DDRB|=(1<<4); TCCR0 |= (1<<WGM01)|(1<<WGM00)|(1<... OCR0=0; } void Timer2Init(void) {...

    Mikrokontrolery   31 Sty 2014 21:18 Odpowiedzi: 1    Wyświetleń: 966
  • AVR ATmega16 - Zawieszanie programu przy przerwaniu Timer2, kwarc 8MHz

    Problem dalej istnieje, zakreskowuję obsługę przerwania ISR(TIMER0_COMP_vect}, poprostu je wywalam i w momencie startu timera 0 wiesza się program, a wtedy przecież nie robi żadnych obliczeń. Bo nadal masz włączone to przerwanie, a nie masz funkcji jego obsługi.

    Mikrokontrolery AVR   26 Sty 2014 09:24 Odpowiedzi: 8    Wyświetleń: 1665
  • Atmega8 - Tym razem; przerwanie sprzętowe - nie działa

    Wyrzuć te delay'e. Zmienną licznik jak radzili koledzy zmień na volatile. Zmień sei(); na SREG |= (1<<7); Jeśli będzie działać, to zapytam jakiej wersji avr studio używasz? [syntax=cpp] #include <avr/io.h> #include <avr/interrupt.h> volatile uint8_t Count = 0; ISR(TIMER0_OVF_vect) { Count++; TCNT0 = 0; } int main(void) { DDRB = 0xFF;...

    Mikrokontrolery Początkujący   03 Kwi 2013 20:44 Odpowiedzi: 30    Wyświetleń: 3789
  • Ustawienie timerów na ATmega128 - Zegar wewnętrzny 8MHz, Timer1 1s, Timer0 4ms, konfiguracja kodu

    Nie nie rób się kaczką albo sie prześpij ahahahahahaha :D OCIE1B zamieniasz na OCIE1A OCR1B zamieniasz na OCR1A zamieniasz wektor TIMER1_COMPB_vect na TIMER1_COMPA_vect kasujesz wszędzie to TCNT1=0 bo nie ma sensu Dla Timer0, w przerwaniu, pod linijką "dot ++ ; " dopisz TCNT0 = 6; To też można na palcach policzyć: 8MHz to jest na sekundę a sekunda ma...

    Mikrokontrolery AVR   12 Lis 2022 02:13 Odpowiedzi: 6    Wyświetleń: 417
  • Atmega16L Timer0 i Watchdog - wpływ soft UART na reset po 950ms

    Jeśli piszesz w WinAVR i otworzysz plik w asemblerze to zobaczysz, że każde nie używane przerwanie prowadzi do resetu. Nieużywane tzn. nie posiada funkcji obsługi przerwania. Przerwanie takie od np. przepełnienia timera może nastąpić jeśli zostanie odblokowane, ale jak mówisz w tym przypadku to nie to. Możesz po prostu wyłączyć watchdoga i upewnić się...

    Mikrokontrolery AVR   18 Cze 2010 17:01 Odpowiedzi: 3    Wyświetleń: 894
  • [atmega16][bascom] Dziwne zachowanie programu z przerwaniem.

    Nic nie trzeba informować kompilatora - Bascom ładnie przyjmuje wprost rozkazy asemblera ale w zasadzie atom1477 zrobił to nawet bez asemblera - sorki - po prostu "ręcznie" odwołał się do rejestrów i wpisał do nich odpowiednie wartości tzn poustawiał bity tak żeby coś tam działało w tym przypadku co ja ci podałem trza by to było mniej więcej zrobić...

    Mikrokontrolery AVR   03 Mar 2010 09:56 Odpowiedzi: 35    Wyświetleń: 4556
  • Jak przyśpieszyć (zmodyfikować) program w na ATMega32

    OCR0=0x20; /// podobno mozna zjechac do 0 i otrzymac fck/2 Zjechać może i można, ale chyba tylko do sprzętowego przełączania pinu. bo obsługa przerwania w 1 cyklu jest niemożliwa. void timer0_comp_isr(void) { PORTC ^= BIT(0); } Wrzuć co kompilator wyrzuca do assemblera do kompilacji. W sumie na obsługe jest 32 takty razem...

    Mikrokontrolery AVR   02 Lut 2010 08:00 Odpowiedzi: 6    Wyświetleń: 2036
  • Timer0 AVR 16MHz: Przerwanie zamiast 1us trwa 2-4x dłużej, jak to naprawić?

    Tak, tylko, że: 1. Ten problem poruszasz dopiero teraz. I to dowodzi tylko, że atmega to nie ideał procesora. A dobieranie procesora do zastosowania to jedna z podstawowych umiejętności konstruktora 2. Dalej nikt nie wie co to za atmega. 3. Inkrementowanie zmiennej co 128us to jakby trochę rzadziej niż co 1us Albert

    Mikrokontrolery AVR   02 Lut 2012 14:16 Odpowiedzi: 9    Wyświetleń: 1858
  • [ATmega32] ATmega32 Timer0 CTC - przerwanie nie działa poprawnie, licznik się zeruje

    A co na to symulacja programu? Taki program wgraj: .nolist .include "m32def.inc" .list ; ## START ########################################... .cseg ;=======================================... ;= WEKTORY PRZERWAŃ = ;=======================================... .org 0x0000 rjmp reset_vector ; po...

    Mikrokontrolery AVR   13 Sie 2008 21:39 Odpowiedzi: 4    Wyświetleń: 2556
  • Jak napisać program w AVR GCC do dekodowania RC5 na ATmega16?

    Witam Temat dekodowania RC5 był już poruszany http://www.elektroda.pl/rtvforum/atmega-... , bardzo fajnie opisane są kody w różnych standardach (m.in. RC5) na stronce http://www.xs4all.nl/~sbp/knowledge/ir/r... i jeszcze na http://www.ustr.net/infrared/index.shtml Sam sobie też...

    Mikrokontrolery   26 Cze 2006 22:34 Odpowiedzi: 4    Wyświetleń: 9294
  • Atmega328 timer0 nie odlicza czasu/nie generuje przerwania (tryb normalny)

    Po pierwsze, timer liczy od 0 do 255, ale to oznacza 256 impulsów pomiędzy przepełnieniami, czyli powinno być 256, a nie 255 * 128us. Po drugie zaokrągliłeś wynik z 32.64 do 32 przed dzieleniem, co w efekcie dało niedokładny wynik ilości przepełnień. W rzeczywistości częstotliwość przerwań można obliczyć dużo prościej: ( 8000000 / 1024 ) / 256 = ok. 30,5176.....

    Mikrokontrolery AVR   11 Kwi 2019 11:28 Odpowiedzi: 9    Wyświetleń: 885
  • Jak zrealizować detekcję zbliżenia ręki z TSOP1736 na ATmega 8L?

    Witam... Generalnie rzecz biorąc procedury opóźnienia czasowego nie nadają się do modulowania diody IR... Częstotliwość nie jest zbyt stabilna to raz... Dwa nie uzyskasz 36kHz musisz skorzystać z dobrodziejstw timera... Np. tak... #include<avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <inttypes.h> int...

    Mikrokontrolery   03 Sie 2005 13:34 Odpowiedzi: 3    Wyświetleń: 1782
  • [ATmega16, C] ATmega16 Timer0 - jak uzyskać dokładny pomiar co 2µs?

    1. T0 w M16 ma tryb CTC. Skorzystaj z niego. 2. Jak już prawie nic nie robisz w przerwaniu to może warto uruchomić je w trybie NAKED i samemu zadbać o jego obsługę i powrót. Skróci to takie przerwanie.

    Mikrokontrolery   16 Gru 2013 20:12 Odpowiedzi: 7    Wyświetleń: 1419
  • [ATmega32] Jak działa funkcja millis() w Arduino i konfiguracja Timer2 w ATmega32?

    W tym trybie timer po prostu zlicza impulsy zegarowe do niego doprowadzone, jeśli przekroczy zakres to zgłasza przerwanie overflow (nadmiaru) i rozpoczyna zliczanie od nowa. Funkcja obsługi tego przerwania zlicza je zwiększając liczniki f - przechowujący czas z rozdzielczością <1ms i m przechowujący liczbę milisekund. W programie należy korzystać...

    Mikrokontrolery AVR   16 Paź 2012 10:38 Odpowiedzi: 7    Wyświetleń: 2355
  • [atmega] [ATmega][Bascom] Jak odliczać czas bez zatrzymywania programu?

    Dzięki wszystkim za zainteresowanie , najbardziej pomógł kalkulator do którego dostałem linka. Poza tym naprawde to było jakieś małe nieporozumienie pomiędzy mną a bascomem. Myślałem że to policzy jak trzeba. rozwiązanie timer0 z preskalerem 64 wywołuje przerwanie raz na 0,016384 sek więc liczymy 61 razy i mamy sekunde nawet dokładnie do 3 min wystarczy...

    Mikrokontrolery   12 Wrz 2008 14:02 Odpowiedzi: 20    Wyświetleń: 2610
  • [C] Atmega16 - Timer0 spieszy o 3 sekundy po 5 minutach, prescaler 1024, 8MHz

    Witam, Chciałem napisać program do liczenia 'sekund'. Jest to początek mojej drogi do zrobienia zegara. Problem jest taki, że po 5 minutach zegar spieszy już o 3 sekundy. Gdzie popełniłem błąd? Prescaler ustawiony na 1024, atmega na 8MHz na kwarcu wewnętrznym(może tutaj jest problem?), według informacji które posiadam przerwanie powinno być generowane...

    Mikrokontrolery   31 Maj 2011 11:28 Odpowiedzi: 9    Wyświetleń: 2966
  • Jak ustawić TIMER0 w Atmega48 w C z preskalerem 1 i przerwaniem?

    Lepiej będzie dla Ciebie , jak poczytasz o AVR-ku po polsku i sam wyciągniesz wnioski.Wprawdzie ten przetłumaczony PDF dotyczy ATMega16 , jednak myślę , że 70% zawartych w nim informacji dotyczy całej rodziny AVR ATMega. [url=http://www.pg.gda.pl/~zbczaja/pdf/a... po polsku Piotrek

    Mikrokontrolery   22 Wrz 2006 19:54 Odpowiedzi: 5    Wyświetleń: 1284
  • Jak skonfigurować przerwania w ATmega8 w języku C z użyciem GCC?

    Bity w MCUCR określają na co będzie reagować przerwanie zewnętrzne... Zmiana stanu, opadające lub narastające zbocze więc jest to jak najbardziej potrzebne... SIGNAL (INT0_vect) - obsługa zewnętrznego przerwania INT0... SIGNAL (TIMER0_OVF_vect) - obsługa przerwania od przepełnienia timer0... Co do portu... Jak na mój gust powinno być PORTC = !PORTC;...

    Mikrokontrolery   13 Lis 2010 16:13 Odpowiedzi: 48    Wyświetleń: 19525
  • [Atmega32][C][Eclipse] - bład programu gdy przerwamnie timer0 aktywne

    Podczas odbioru danych z pinu PD2 ( funkcja zgłoszenie ) występuje błąd tylko wtedy gdy przerwanie z timera 0 jest aktywne. Gdy na czas odbioru danych zablokuję to przerwanie procesor ładnie odbiera wysyłane do niego dane. I moje pytanie brzmi: Co jest nie tak z przerwaniem? Konkretnie to, co wskazał albertb: ... jeśli masz włączone przerwanie to jego...

    Mikrokontrolery AVR   05 Gru 2012 08:49 Odpowiedzi: 12    Wyświetleń: 1842
  • Który rejestr odpowiada za Timer0 w mikrokontrolerze Atmega16?

    mam takie pytanko w atmega 16 niewiem w jaki sposób włanczać i wyłanczać timer niewiem któr rejestr dego dokonuje , a może one chodzą cały czas bo jeśli ustawie timer na to żeby zliczał (timer0) impulsy zegara sys. i włanczał przerwanie gdy zgodzie się jego wartość z rejestrem OCR0 ale od kiedy on ma się włączyć ktury bit to ustawia ? nobo leci sobie...

    Mikrokontrolery   22 Sty 2006 20:08 Odpowiedzi: 17    Wyświetleń: 4221
  • [atmega328p] [atmega328p][c] Timer0 - dioda nie miga, ustawienia 8MHz, kod nie działa

    Przepraszam, że odkopuję temat ale mam problem właśnie z timerem 0 w atmedze 328p i jak bym miał zakładać nowy temat to nazwał bym go prawie tak samo jak ten więc wolałem napisać w już istniejącym temacie. Chcę sprawdzić działanie 8-bit Timer/Counter0 w ATmega328P. Efekt do uzyskania prosty. Ustawiam pin C5 jako wyjście (na początku stan niski) i przy...

    Mikrokontrolery AVR   11 Sie 2014 23:33 Odpowiedzi: 7    Wyświetleń: 3849
  • [ATMEGA168][AVRGCC] Przerwania optymalizacja szybkości

    Witam Przy pomocy Timera0 procesora ATmega168 tworzę falę PWM do sterowania silnikiem bezszczotkowym. Przerwanie od przepełnienia licznika załącza odpowiednie (w zależności od stanu czujników halla wirnika silnika) tranzystory mostka 3-fazowego a przerwanie od porównania wyłącza. Zależy mi na jak najkrótszym czasie wykonywania procedur przerwań. W zmiennych...

    Mikrokontrolery AVR   28 Wrz 2008 20:04 Odpowiedzi: 10    Wyświetleń: 1815
  • Atmega16 - jak poprawnie sterować 16 serwami za pomocą PWM i timerów?

    Witam, Pomysł dobry ale sypie się najprawdopodobniej z powodu zbyt dużej ilości przerwań. Proponuje projekt sterownika "równoległego", taki wykorzystałem w mojej pracy inżynierskiej. Wprawdzie korzystałem tylko z 8 serw ale 16 też obsłuży po drobnej modyfikacji. Program zabiera większość mocy procesora do obsługi przerwań ale tylko przez czas 2ms potem...

    Mikrokontrolery AVR   14 Cze 2011 10:32 Odpowiedzi: 8    Wyświetleń: 2942
  • Atmega 8 - przerwanie od przepełnienia timera 2 działa w symulatorze, nie w układzie

    Procedura obsługi przerwania: ISR(TIMER2_OVF_vect) { //TCNT2 = 0x00; x++; if(x==0x03) { if(y==0x00) { x=0x00; DIODA_CZERWONA_ON; y=0x01; } else { x=0x00; DIODA_CZERWONA_OFF; y=0x00; } } } i inicjalizacja w pętli głównej TIMSK =((1<<TOIE2)); TCCR2 = 0x05; TCNT2 = TIMER2_INIT; sei(); Po tych zabiegach powinno ruszyć Timer0 śmiga jak trzeba a z tym...

    Mikrokontrolery   01 Sty 2007 21:04 Odpowiedzi: 13    Wyświetleń: 3191
  • [ATMEGA128] Timer1 CTC nie generuje przerwań przy 16MHz, OCR1A=62500

    Działa. Pewnie o czymś zapomniałeś na wstępie. Mój działający kod: .include "m128def.inc" .cseg .org0x0000 rjmpreset ;skok po resecie systemu .org0x0018 rjmpdata ;skok po wykryciu zgodności reset: ldi r16, high(RAMEND) out SPH, r16 ldi r16, low(RAMEND) out SPL, r16 rcallKONFIGURACJA_TIMER1 sei loop: nop rjmploop ;......

    Mikrokontrolery AVR   06 Lip 2008 08:32 Odpowiedzi: 23    Wyświetleń: 4139
  • [Atmega32]Jak skonfigurować zegarki wewnetrzne (Timer1 i Timer0)?

    drogi starosto int0 jako przerwanie zewnętrznę może posłużyć np tak jak na laborkach do obsługi odbioru rc5 gdy podczas wystąpienia tego przerwania odbierany jest kod rc5 z odbiornika podczerwieni . pml11

    Mikrokontrolery AVR   26 Cze 2011 20:40 Odpowiedzi: 13    Wyświetleń: 1848
  • Czy przerwania Timer1 i Timer0 w ATmega32 mogą się kolidować?

    Jeżeli piszesz w C i używasz avr-libc, to przerwania "nieblokujące" (takie które mogą być przerwane przez inne przerwanie (lub nawet same przez siebie, trzeba uważać)) deklaruje się tak (przykład dla INT0): ISR(INT0_vect, ISR_NOBLOCK) { jakiś kod } Dzięki temu sei() zostanie wywołane prędzej, niż zrobiłbyś to wewnątrz procedury sam.

    Mikrokontrolery AVR   05 Lut 2011 01:34 Odpowiedzi: 21    Wyświetleń: 1490
  • Atmega 8 układ czasowy. Proszę o propozycje programu.

    Użyj jakiegoś timera i przerwania, powiedzmy TIMER0. Policzmy trochę. Zakładam zegar 8Mhz. Jezeli uzyjemy preskalera 256 to czas co jaki zostanie wywołane to przerwanie to 256*256/8000000=0,008. Ilość taktów co jakie zostanie wywołane przerwanie to 256*256=65536 (pierwsze 256 wynika z tego, ze licznik jest 8 bitowy drugie to preskaler) Żeby odliczyć...

    Mikrokontrolery   13 Sty 2007 12:53 Odpowiedzi: 13    Wyświetleń: 2769
  • [ATmega128][C]przerwania nie wracają, reset uC: fuse M103C

    Kurdę no przerwanie jest wywoływane co 310us a to jest bardzoooo wiele cykli zegara na to by mogła się wykonać cała pętla while, cały czas nie rozumiem czemu na atmega 16 działa a na atmega128 nie chce działać :/ sprawdzałem bity ustawiające timer i przerwanie, są one takie same dla mega 16 i 128 więc nie wiem w czym jest problem :( Ten program działa...

    Mikrokontrolery AVR   08 Gru 2009 21:36 Odpowiedzi: 11    Wyświetleń: 2880
  • [atmega128][C] Jak powinno wyglądać prawidłowe przerwanie?

    Czyli dla timera 0 powinno wyglądać to tak? ISR (TIMER0_OVF_vect) { ... ... ... }

    Mikrokontrolery AVR   08 Gru 2009 20:09 Odpowiedzi: 7    Wyświetleń: 1584
  • [Atmega32][C] Zliczanie kliknięć przycisku w timerze, eliminacja drgań przycisku

    [syntax=c] #define Button (1<<PB0) #define Button_PORT PORTB #define Button_PIN PINB #define Button_DDR DDRB volatile _Bool Key_Pressed = 0; // flaga wciśniętego przycisku [/syntax] [syntax=c] Button_DDR &= ~(Button); //port - wejście Button_PORT |= (Button); //włącz pull up [/syntax] [syntax=c] ISR(TIMER0_OVF_vect)//przerwanie wywoływane...

    Mikrokontrolery AVR   22 Lis 2018 21:11 Odpowiedzi: 7    Wyświetleń: 1083
  • AtMega 324/644/1284 - reset mikrokontrolera po odblokowaniu przerwań

    Hmm... Dziwne, Ustawiając Timer0 sprawdzałem tylko dla Timera0.. a Ty korzystasz z Timera1.. no dobra, najważniejsze, że działa. Dzięki Wam :)

    Mikrokontrolery AVR   11 Lis 2015 17:52 Odpowiedzi: 6    Wyświetleń: 1287
  • Problem - Przerwanie TIMER0 zliczanie przez T0 na ArduinoMEGA2560.

    Witam. Trochę inny procek ATmega644 [syntax=c] TCCR1B |= (1 << WGM12); // Mode 4, CTC on OCR1A TIMSK1 |= (1 << OCIE1A); //Set interrupt on compare match TCCR1B |= (1 << CS12) | (1 << CS10); // set prescaler to 1024 and start the timer| (1 << CS11);// OCR1A = 976*8; //wartość do której zlicza licznik [/syntax]

    Arduino   03 Kwi 2018 19:20 Odpowiedzi: 2    Wyświetleń: 618
  • Atmega 128 - dioda świeci zamiast migać po wgraniu programu z Bascoma

    Pewnie trza wyłączyć bit M103C w fuse. zapis: [syntax=basic4gl]Load Timer0 = 250[/syntax] jest błędny. prawidłowo: [syntax=basic4gl]Load Timer0 , 250[/syntax] Poza tym przy tych ustawieniach timera w stosunku do prędkości kwarcu nie uzyskasz przerwania co 8ms.

    Mikrokontrolery AVR   29 Cze 2011 20:51 Odpowiedzi: 2    Wyświetleń: 1439
  • Zegar na Atmega 32 - spieszy o 2sekundy na godzinę

    W projekcie masz 16MHz a pisałeś o timer0. Najbliższym kwarcem, który łatwo można kupić będący najbliżej wartości będącej potęgą liczby 2 jest właśnie ten kwarc. Dzieląc 14745600 przez 2 będziesz miał całkowite wyniki do 16-tego dzielenia włącznie. Przy kwarcu 16MHz skończysz zaledwie na 10-tym dzieleniu. Najlepszym rozwiązaniem jest kwarc zegarkowy...

    Mikrokontrolery   18 Maj 2017 21:33 Odpowiedzi: 20    Wyświetleń: 1350
  • Ubuntu 8.10 dziwny problem z timerazmi pod ATMEGA16

    Zakładam że kompilujesz w takim GCC jak ja. Spróbuj tego: #include <avr/io.h> //#include <stdio.h> niepotrzebne, bez tego też działa #include <avr/interrupt.h> //#include <avr/signal.h> tej biblioteki się nie stosuje - patrz gcc-libc ISR(TIMER0_OVF_vect) //po co tam miałeś INT0_vect? { PORTD ^= 0xFF; //będziemy mieli...

    Mikrokontrolery AVR   28 Sty 2009 10:31 Odpowiedzi: 3    Wyświetleń: 1194
  • [ATmega128L] [ATmega128L][AVR-GCC] Błąd w obsłudze TIMER0 i TIMER2, możliwy błąd w dokumentacji?

    Na początku zaznaczę, że siedziałem nad tym ostatnie 3 dni. Jestem z tego powodu CHOLERNIE WKURZONY. Ostatnie doświadczenia z kompilatorem AVR-GCC i obsługą TIMER0 i TIMER2 doprowadziły mnie do konkluzji, iż w Nocie Atmegi128 lub w headerach jest błąd. Spójrzmy na tabele preskalera TIMER2. http://obrazki.elektroda.pl/3213520200_1... Oto prosty...

    Mikrokontrolery AVR   26 Sty 2011 11:06 Odpowiedzi: 13    Wyświetleń: 2562
  • [Atmega 16] [Atmega 16][C/Eclipse] Jak uzyskać opóźnienie 1us przy kwarcu 11.0592 MHz?

    Oczywiście, że się da jeśli chodzi o sekundy . Teoretycznie ;). Wystarczy wziąć "nierówny" kwarc. Jego wartość powinna dzielić się odpowiednio przez dwa podniesione do odpowiedniej potęgi. Tak aby np. przerwanie przepełnienia od licznika było wywoływane dokładnie co 1 sekundę, albo inną jej część (zdatną do przeprowadzania obliczeń). Dla przykładu kwarc...

    Mikrokontrolery AVR   07 Maj 2011 09:45 Odpowiedzi: 8    Wyświetleń: 1730
  • ATmega32 - Przerwanie timer0 nie działa z warunkiem Transmit w USART_RXC_vect

    LCD był tylko dla debugowania. A wywalenie tego w main spowoduje to że będę musiał kilkanaście flag mieć... Ile razy na sekundę wykonuje się ustaw_timer()? Co jest funkcjach przelicz() oraz nadaj(), których nie pokazałeś? Jak często wywoływane jest ISR(TIMER0_COMP_vect)?

    Mikrokontrolery AVR   04 Sty 2013 23:53 Odpowiedzi: 17    Wyświetleń: 2253
  • Atmega 16 - Błąd error 12(Unknown CONFIG parameter[auto]) w konfiguracji ADC

    Witam. Jestem w trakcie wykonywania projektu. Sterowanie PWM-owe ogniwem peltiera załączanym mostkiem typu H, z sprzężeniem zwrotnym na czujniku PT100 odczytywanym z ADC. Pierwsze kroki to budowa układu, z odczytem ADC, kalibracjom i skalowaniem. Zrealizowałem, i działa. Gdy zacząłem pisać kod z timerami zakończył się schody. Dlaczego wyrzuca mi błąd...

    Mikrokontrolery AVR   25 Wrz 2016 20:44 Odpowiedzi: 5    Wyświetleń: 801
  • Bascom Atmega - Program z wykorzystaniem timera do odmierzenia czasu. Pytanie.

    Chcę napisac własny program z wykorzystaniem Timerów. Na początek proszę o wytłumaczenie dlaczego w poniższym programie: 1. wykorzystano podzial częstotliwości zegara (po preskalerze 256) 250/125 zamiast wykonac jedno dzialanie? 2. uzyto wartość początkową Timera0 = 250 przed Petlą do Loop End . O ile wyjaśnienie podane przez Tomq jest błędne(!) Load...

    Mikrokontrolery Początkujący   03 Maj 2014 20:09 Odpowiedzi: 4    Wyświetleń: 1260
  • [Atmega128][c][WinAVR] Timer w trybie asynchronicznym

    Witam! Postanowiłem przetestować tryb asynchroniczny timera0 z podłączonym kwarcem 32768 Hz na płytce #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include "HD44780.h" volatile int time=0; int main (void){ TCCR0|=(1<<WGM01)|(1&l...

    Mikrokontrolery AVR   08 Lis 2009 21:48 Odpowiedzi: 2    Wyświetleń: 2299
  • Czy mikrokontrolery ATmega mają określony rdzeń jak ARM7 czy ARM9?

    Ja osobiście nie mam problemów z przenaszalnością kodu w firmowym asemblerze Atmela, nawet pomiędzy różnymi wersjami rdzenia, gdyż są w nim wbudowane definicje pozwalającej na asemblację warunkową. Przykład - instrukcja lpm , zamiast której używam następujące makro: .macro LpmPlus #if ((__CORE_VERSION__==V2E)|...

    Mikrokontrolery AVR   20 Sty 2011 18:23 Odpowiedzi: 6    Wyświetleń: 2525
  • [AVR] [C] - Jak obsłużyć przerwania INT0 i timer0 w atMega8?

    Zasilanie bateryjne 3,6V - 5200mAh. Urządzenie będzie pracować 24h/dobe. Otwarcie drzwi nastepuje kilkdziesiąt/set razy dziennie. Elementy zuzywające energię ograniczone do minimum czyli atmega8 i w czasie wysterowania buzzera jeden tranzystor. Buzzer ma pobór ok 60mA. Nie wiem czy coś jeszcze potrzeba? Dodano po 1 ATmega 8A-PU :)

    Mikrokontrolery AVR   22 Lis 2013 00:28 Odpowiedzi: 60    Wyświetleń: 6216
  • Atmega16, problem z przerwaniem przepełnienia timera0

    Witam, walczę z tym cały dzień i nie potrafię zrozumieć dlaczego program nie działa. Próbuje poprostu "uruchomić" przerwanie podczas przepełnienia timera0. Jak widać niżej jest bardzo prosty kod który powinien zapalać i gasić diodę. Preskaler ustawiony na 1024, ustawiona odpowiednia flaga w rejestrze TIMSK ...i nei działa. Jeśli w pętli while wrzuce...

    Mikrokontrolery   20 Wrz 2010 09:34 Odpowiedzi: 2    Wyświetleń: 1205
  • 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ń: 5730
  • Bascom - Atmega1284P + ESP8266 + Domoticz - losowe wysyłanie danych JSON

    Przerobiłem program na Atmega328. Teraz ma tylko odbierać dane z master na Atega1284p i wysyłać do Domoticz. [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 100 ' rozmiar stosu sprzętowego $swstack = 100 ' rozmiar stosu programowego $framesize = 128 $baud = 19200 '************ Uart 0 Config Serialin0 = Buffered , Size = 150 ,...

    ESP8266 i ESP32   14 Kwi 2019 20:49 Odpowiedzi: 12    Wyświetleń: 2427
  • Atmega 8 - SET Led_2 nie działa przy sterowaniu pilotem, co sprawdzić?

    Witam !! Napisałem program na sterowanie pilotem. Nie działa mi set Led_2. Przycisk 2 z pilota wykonuje warunek ale nie setuje portb.2 ? Co jest [syntax=c] $regfile = "m8def.dat" 'rejestry mikrokontrolera atmega8 $crystal = 8000000 'częstotliwość taktowania mikrokontrolera $baud = 9600 Config Portb = &B11111111 : Portb = &B00000000 'cały portB jako...

    Mikrokontrolery AVR   07 Sty 2017 21:22 Odpowiedzi: 11    Wyświetleń: 1026
  • Dekodowanie sygnału DCF77 na ATmega - synchronizacja czasu bez GPS

    Kiedyś umieściłem na obecnie niedostępnej stronie and.elektroda.eu materiał o dekodowaniu sygnału DCF. Urządzenie potrzebne było w urządzeniu, które wymagało synchronizacji czasu w pomieszczeniu gdzie wyprowadzenie anteny zewnętrznej do GPS było utrudnione. Poniżej umieszczam treść oryginalnego materiału, który może być pomocny przy budowaniu urządzeń...

    Mikrokontrolery AVR   09 Mar 2023 17:01 Odpowiedzi: 27    Wyświetleń: 10179
  • [ATmega32][C][2 przerwania od przepełnienia licznika T0 i T2

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

    Mikrokontrolery AVR   31 Sty 2010 17:29 Odpowiedzi: 6    Wyświetleń: 3451
  • [bascom] Przerwanie timer0 i nieczytelne znaki na LCD w trybie 4-bitowym

    witam. Napisałem taki oto program. LCD jest podpięty w trybie 4ro bitowym. y=53 x=3y=53 Za jakiś czas zaś lcd jest pusty. Jeżeli w pętli głównej zmienię waitms 50 na 1000 to program dłuższą chwile wszystko pokazuje dobrze, ale i tak prędzej czy później na lcd pojawiają się krzaczki niczym z matrixa. Mój tok rozumowania jest taki; w pewnym momencie gdy...

    Mikrokontrolery AVR   20 Lut 2012 19:28 Odpowiedzi: 2    Wyświetleń: 1464
  • [Atmega48][C] Dziwne zachowanie w przerwaniu timera0

    Witam Ostatnio próbując ustawić timer0 natknąłem się na pewną dziwną sytuację. Jeżeli wywołane zostanie normalne przerwanie (tzn. bez opóźniej wew. funkcji obsługi przerwania) to nie działa. Znaczy się sam program się kompiluje i działa tylko wogóle nie zapala się ale jeśli wprowadzę opóźnienie powyżej 70ms to wszystko jest ok. Nie znam się jeszcze...

    Mikrokontrolery AVR   23 Wrz 2011 19:07 Odpowiedzi: 9    Wyświetleń: 916
  • [atmega8] [atmega8][c] - Jak obsłużyć czujnik Mobot przez I2C i wyświetlić wynik w mm?

    Problem leży w sposobie działania biblioteki TWI_Master i miejsca, skąd jej pośrednio używasz. TIMER0_OVF_vect, jak i każde inne przerwanie, uruchamia się z czasowo wyłączonymi przerwaniami, dlatego ani sonar_request, ani sonar_gets_distance nie zadziała z tego miejsca. Polecenia zostają zakolejkowane, i może tylko TWI::START zostaje wykonany. Możesz:...

    Mikrokontrolery AVR   14 Sie 2014 17:16 Odpowiedzi: 5    Wyświetleń: 1206
  • ATMega32A - Niedokładne zliczanie impulsów do T1 bramkowane przez T0

    Poczyniłem programik w C do zliczania impulsów z zewn. wejścia T1. Program zlicza impulsy do T1 w czasie ustalanym przez T0. Sterowanie jest tak ustawione że pierwsze odliczanie wpisywane jest do F1, drugie do F2, trzecie do F3 i tak w kółko. Na czas wyświetlania na LCD wyłączyłem przerwania. Wszystko działa ale nie do końca prawidłowo. Problem polega...

    Mikrokontrolery AVR   06 Lip 2013 10:45 Odpowiedzi: 13    Wyświetleń: 1662
  • [ATmega32U4][avr-gcc] - Typ zmiennej a jej wartość po petli while.

    Witam i proszę o wyjaśnienie, dlaczego jeśli zmienna x w funkcji main jest typu long int to po zakończeniu pętli while ma ona wartość mniejszą (66) niż jeśli jest typu int (86). Dzięki. [syntax=c] volatile uint8_t timer1; ISR (TIMER0_COMPA_vect){ uint8_t x = timer1; if (x) timer1 = --x; } int main (void) { TCCR0A |= (1<<WGM01);//tryb CTC TCCR0B...

    Mikrokontrolery Początkujący   14 Lis 2014 13:04 Odpowiedzi: 4    Wyświetleń: 951
  • Atmega8 - Timer0 nie odlicza 1 sekundy przy 12MHz i preskalerze 256

    Poza tym to: TCNT0 = 130; Powinna być pierwszą instrukcją w przerwaniu, a tak w ogóle polecam poczytanie o trybie CTC - nie będzie trzeba martwić się o ciągłe ładowanie wartości timera. EDIT: A problemem właściwym jest nadmiarowy średnik, o tu: if(licznik == 375); jak go wywalisz to będzie w miarę OK. A zmienna nie musi być w tej sytuacji volatile,...

    Mikrokontrolery Początkujący   19 Lut 2013 14:47 Odpowiedzi: 4    Wyświetleń: 1119
  • [ATMega16][C]Program do sterowania serwem na liczniku 0

    Co 3.88us wywołujesz przerwanie od przepełnienia timera. A przetwarzanie ADC w pętli while trwa 0.12ms- czyli 120us. Czyli podczas tej pętli pojawi się wielokrotnie przerwanie od timera0. A jeśli się pojawi podczas sprawdzania warunków tej pętli to moga się dziać dziwne rzeczy. Jedna instrukcja przy 8Mhz trwa 0.125us. Czyli obsługa przerwania powinna...

    Mikrokontrolery AVR   29 Sie 2011 21:26 Odpowiedzi: 22    Wyświetleń: 3956
  • [ATmega32][C] Nie działa przerwanie od przepełnienia timera0

    Taka skromna mała propozycja, zrobione najprościej jak to możliwe - i chyba jasno - działa - przetestowane: #include <avr/io.h> #include <avr/interrupt.h> void led_toggle(); ISR (TIMER0_OVF_vect) { led_toggle(); } int main (void) { DDRA = 255; TCCR0 = 0x01; TIMSK = 0x01; PORTA=0xFF; sei();...

    Mikrokontrolery AVR   08 Lis 2011 09:26 Odpowiedzi: 23    Wyświetleń: 3083
  • ATmega32 - Odmierzanie 1 sekundy a zmiana rezonatora

    Na nie możesz policzyć? Chyba że nie wiesz jak :D Masz 8MHz. A przerwanie przychodzi z częstotliwością 125Hz (dlatego trzeba 125 razy odliczyć aby wyszła 1 sekunda). Preskaler Timera 256. 8000000/256/125 = 250. I dlatego jest Load Timer0 = 250 Teraz chcesz kwarca 7372800. Więc musisz tak kombinować aby uzyskać jakąś sensowną liczbę przerwań i sensowny...

    Mikrokontrolery AVR   22 Lis 2014 22:59 Odpowiedzi: 17    Wyświetleń: 2658
  • avr atmega32[c] - odliczanie sekundy ,zliczenie 15625 przerwan ?

    Nawet gdyby wcisnąć tam tą konwersję to nie w przerwaniu, ale w pętli głównej. Jednym z problemów wprowadzonych w kodzie jest korzystanie z wolnego porównania == - powinieneś użyć and Powinieneś użyć rtc - miałbyś przerwanie co sekundę i byłby spokój - nawet źle zaprojektowane pcb może ci wprowadzić więcej niż te 3% niedokładności kwarcu, dużo też zależy...

    Mikrokontrolery AVR   25 Sty 2017 11:12 Odpowiedzi: 62    Wyświetleń: 4206
  • Jak zintegrować ADC z TIMER2 w ATmega32 do próbkowania 8kHz w AVR Studio 4?

    A może wykorzystać Timer0 i ustawić odpowiednio rejestr SFIOR? Wtedy przerwanie od Timer0 compare wyzwala ADC. A pojawienie się flagi moźna sprawdzać w pętli głównej albo w przerwaniu od ADC.

    Mikrokontrolery AVR   13 Lis 2011 15:02 Odpowiedzi: 21    Wyświetleń: 3390
  • Atmega16: Brak reakcji na zmianę stanu portu A w Bascomie, pętla Do Loop

    hmmm Przede wszystkim: Enable Interrupts On Timer0 Przerwanie Stop Watchdog Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 256 'PWM=250Hz Load Timer0 = 195 To włączenie przerwania jest wstrętne w tym miejscu:P Co do wniosków... może spróbuj zwiększyć stos o...

    Mikrokontrolery   04 Maj 2008 23:52 Odpowiedzi: 8    Wyświetleń: 1537
  • Atmega16 i AVR Studio - problem z multipleksowaniem i funkcją inkrementacji

    Drogi kolego , popełniłeś szkolny błąd :D W procedurze obsługi przerwania Timer0 masz ... SIGNAL(SIG_OVERFLOW0) //obsługa multipleksowania wyswietlaczy { //extern unsigned char wyswietl[7]; unsigned char licznik;//<-- ********** błąd !!!!!!!!!!! ... zmienną licznik , tyle że jest to zmienna lokalna , czyli istnieje w pamięci...

    Mikrokontrolery   17 Paź 2006 18:33 Odpowiedzi: 2    Wyświetleń: 1240
  • Jak napisać kod w Bascom dla przepływomierza 648 impulsów/litr na ATmega32?

    Hmm, moim zdaniem gdzieś jest zmienna 8 bitowa (Byte) musisz zmienić ją na większy typ. np. Word, Long. zmienna word Dodano po 1 A czy trzeba konfigurować port Config Pinb.0 = Input Set Portb.0 pod counter0 atmega 32 Dodano po 11 [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 8 $framesize = 24 Config Lcd = 16...

    Mikrokontrolery AVR   11 Wrz 2014 07:38 Odpowiedzi: 62    Wyświetleń: 7800
  • [ATmega64] [ATmega64][C] Zawieszanie programu przy odczycie zmiennej w przerwaniu TIMER0

    Wielkie dzięki za odpowiedź. Jeżeli chodzi o konfiguracje rejestru TCCR0 to wzorowałem się na pracy dyplomowej w której był taki zapis i działał poprawnie. Wcześniej nie używałem tego rodzaju zapisu. TCCR0=(1<<WGM01)|(1<... Rozumiem, że w przyszłości jak będę konfigurował jakiś rejestr to należy...

    Mikrokontrolery AVR   26 Gru 2009 02:52 Odpowiedzi: 9    Wyświetleń: 4127
  • Jak ustawić Timer0 w Atmega8 z BASCOM do odliczania sekund?

    Zrób to tak: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 4000000 Config Timer0 = Timer , Prescale = 256 'onfiguracja timera, przescaler 256 On Timer0 Odmierz_1s 'włączamy timer0 Dim Licz_8ms As Byte 'definiujemy zmienną pomocniczą Dim Sekundy As Byte Enable Interrupts 'włączamy zezwolenie na przerwanie Enable Timer0 Load Timer0 = 125 'ładujemy...

    Początkujący Elektronicy   08 Cze 2014 19:07 Odpowiedzi: 17    Wyświetleń: 1515
  • [ATmega][BASCOM] Odbiór RC5 bez użycia GETRC5 - gotowiec dla początkujących

    Bardzo ciekawa alternatywa;-) Brawo. Jakbyś w przyszłości rozwijał kod to mógłbyś się pokusić o wspieranie dowolnej częstotliwości taktowania procesora. Wystarczy że przeliczę wartości dla timera i na poczatku programu umieszczę Const xxxx = xxx i każdy sobie podstawi okresloną wartość mirekk - tak, można mierzyć długości półbitów ale zauważ że wtedy...

    Mikrokontrolery AVR   03 Sty 2013 13:29 Odpowiedzi: 13    Wyświetleń: 6675
  • [C] [C][ATmega88] - Jak poprawnie obsłużyć przerwanie Timera0 dla diod LED?

    Steryd3 Korzystam z Eclipse'a, tam w parametrach projektu wybieram typ mikroprocesora i taktowanie, tak przeczytałem w książce Kardasia, choć rzeczywiście prawdopodobnie nie zmieniam w ten sposób w ogóle taktowania i źle zrozumiałem autora :| Z trybu CTC kiedyś już korzystałem, jednak z tego co wiem nie jest on dostępny w Timerze0. Chciałem w tym przypadku...

    Mikrokontrolery   29 Mar 2013 11:23 Odpowiedzi: 15    Wyświetleń: 2934
  • Programowanie ATMega128 w BASCOM AVR lub ASM przez ElektrodaBot

    (...) żdy zasilany z osobnego źródła i odseparowany transoptorami PC817. Ze względu na ich szybkość oraz niską wartość prądów je sterujących 1mA zegar musi być obniżony do 10KHz ma. Chcę zrezygnować z polecenia: waitus 100 w zamian zrealizować to w obsłudze timer0 a w główną pętle przeznaczyć na inne cele. Rozumiem, że chcesz optymalizować swoje oprogramowanie...

    Projektowanie i Tworzenie Po godzinach   20 Mar 2024 14:16 Odpowiedzi: 18    Wyświetleń: 801