atmega przerwanie timer0

Znaleziono około 1052 wyników dla: atmega przerwanie timer0
  • [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ń: 1304
  • Atmega 8 Timer - Timer0 nie działa, kod nie wywołuje przerwań

    Dodaj kolejną zmienną w obsłudze przerwania.

    Mikrokontrolery AVR   16 Mar 2016 15:39 Odpowiedzi: 12    Wyświetleń: 1389
  • REKLAMA
  • 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ń: 2436
  • REKLAMA
  • 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ń: 1533
  • 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ń: 2725
  • 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ń: 498
  • [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ń: 3455
  • 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ń: 438
  • 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ń: 97080
  • 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ń: 1497
  • [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
  • REKLAMA
  • 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ń: 1044
  • 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ń: 1299
  • 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ń: 1215
  • 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ń: 1440
  • [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ń: 1212
  • 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ń: 1092
  • 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ń: 1653
  • 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ń: 876
  • 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ń: 609
  • 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ń: 1284
  • [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ń: 2646
  • [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ń: 501
  • 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ń: 3131
  • 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ń: 10469
  • [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ń: 1074
  • [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ń: 1191
  • [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
  • 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ń: 1182
  • 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ń: 1128
  • Atmega8 - Tym razem; przerwanie sprzętowe - nie działa

    SIGNAL(SIG_OVERFLOW0) - w ten sposób definiowały obsługę przerwania jeszcze nasze babcie i jeszcze za ich czasów wprowadzono nowy sposób - ISR(TIMER0_OVF_vect) 3-sekundowy delay w przerwaniu? "Super" pomysł.

    Mikrokontrolery Początkujący   03 Kwi 2013 20:44 Odpowiedzi: 30    Wyświetleń: 3780
  • [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ń: 4046
  • 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ń: 924
  • 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ń: 396
  • Dlaczego przerwanie przepełnienia timera 0 nie działa na Atmega8 w avr-gcc?

    wiesz... coś mi chodzi po głowie, że przy którejś wersji gcc albo avr-libc nastąpiły jakieś zmiany nazewnictwa procedur obsługi przerwań. Głowy nie dam że tak było, ale w każdym razie u mnie procedura obsługi od przerwania pochodzącego od przepełnienia timera 0 nazywa się: ISR (TIMER0_OVF_vect) { ... } A druga rzecz, to z całą pewnością...

    Mikrokontrolery   08 Mar 2011 14:44 Odpowiedzi: 18    Wyświetleń: 3111
  • 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ń: 888
  • 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ń: 1807
  • [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ń: 4541
  • [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ń: 2544
  • 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ń: 9273
  • 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ń: 813
  • 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ń: 1779
  • 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ń: 1020
  • 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ń: 2936
  • [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ń: 2829
  • 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ń: 1254
  • [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ń: 1416
  • 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ń: 3265
  • AtMega 324/644/1284 - reset mikrokontrolera po odblokowaniu przerwań

    Kod jest prosty, bo siedze nad nim od dawna i już wyrzuciłem wszystko co było zbędne. Zależy mi na tym by na wyświetlaczu pojawił się napis "Timer0 OK". [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "LCD/lcd44780.h" void timer_start (void); volatile uint16_t...

    Mikrokontrolery AVR   11 Lis 2015 17:52 Odpowiedzi: 6    Wyświetleń: 1278
  • [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ń: 1785
  • [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ń: 2589
  • 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
  • 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
  • Konfiguracja przerwań i timera w Atmega32-poprawność kodu ?

    Witam. Chciałbym prosić o pomoc. Czy ten kod jest poprawny. Program działa bez zarzutów. Natomiast, gdy włączę przerwanie"sei". Układ się zawiesza. [syntax=c]void init_Ex1() { // Timer clock = I/O clock / 1024 TCCR0 |= (1<<CS02)|(1<<CS00); // Clear overflow flag TIFR |= (1<<TOV0); // Enable Overflow Interrupt TIMSK |= (1<<TOIE0);...

    Mikrokontrolery   02 Gru 2024 11:59 Odpowiedzi: 3    Wyświetleń: 219
  • [Atmega16][C][AVR Studio] Problem z przerwaniem od licznika

    Witam, mam problem z uzyskaniem przerwania od licznika. Program w ogólności ma co mniej więcej sekundę na przemian zapalać i gasić diode. Licznik jest w trybie porównania do wartości 156. Częstotliwość oscylatora to 4 MHz, przeskalowana przez 256. Program niestety nie chce wejść w przerwanie. Może któryś z bardziej doświadczonych forumowiczów jest w...

    Mikrokontrolery AVR   08 Lis 2010 19:59 Odpowiedzi: 5    Wyświetleń: 1792
  • [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ń: 3843
  • [ATMEGA168][AVRGCC] Przerwania optymalizacja szybkości

    Dzięki za podpowiedzi. Nigdy nie dołączałem modułów w assemblerze do moich projekcików i nie wiem czy dobrze zrobiłem. Nie mam w tej chwili platformy sprzętowej ale sprawdzałem zaproponowane rozwiązanie w symulatorze AVRStudio. Dodany plik przerwania.s: #include <avr/io.h> .section .text .global TIMER0_OVF_vect .global TIMER0_COMPA_vect ;kod TIMER0_OVF_vect:...

    Mikrokontrolery AVR   28 Wrz 2008 20:04 Odpowiedzi: 10    Wyświetleń: 1797
  • Czy poprawnie pozbywam się drgań styków sposobem programowym? ATmega8A/Język C

    Po pierwsze - jeśli chcesz się przekonać czy kod działa to go uruchom i to sprawdź. Po drugie - nie wiem po co tak bardzo grzebiesz w rejestrach timera, wpisujesz jakieś własne wartości do TCNT0 i TCCR0 w przerwaniu, jaki to ma cel? Uruchom przerwanie i zapomnij o nim: [syntax=c]#define KEY_UP(PINB & (1<<3))//PB3 - przycisk UP - do masy. ......

    Mikrokontrolery AVR   03 Sty 2021 01:57 Odpowiedzi: 14    Wyświetleń: 711
  • 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ń: 3179
  • [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ń: 4136
  • [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ń: 1845
  • 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ń: 993
  • 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ń: 1484
  • 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ń: 609
  • [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ń: 6150
  • 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ń: 1341
  • Atmega Bascom: Jak uzyskać przesuwalne przebiegi PWM 50-200Hz?

    Wymyśliłem coś na próbę nim zacznę kombinować bo nie wiem czy do końca to ma tak wyglądać jak przedstawiam bo to teoria książkowa na której opieram swoje założenia. $crystal = 8000000 $regfile = "m8def.dat" ... .. Config Timer0 = Timer , Prescale = 64 .. On Timer0 Timer0_int Enable Interrupts Enable Timer0 Timer0 = 6 Licznik = 0 Timer0_int:...

    Mikrokontrolery AVR   07 Lip 2014 21:28 Odpowiedzi: 13    Wyświetleń: 4655
  • 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ń: 1436
  • [ATMEGA644P] [ATMEGA644P][GCC] ED161120 - Problem z odczytem przy szybkim kręceniu impulsatora

    Hmm , chyba coś żle kombinuję . Teraz w ogóle nie wchodzi do pętli wyświetlania: [syntax=c] while(1) { if (gflaga_impulsatora) { tmf_impulsator(); gflaga_impulsatora=0; } if (NoOfPulses_last!=NoOfPulses) { ks0108ClearScreen(); ks0108GotoXY(1,10); ks0108Puts("T"); itoa(NoOfPulses,buf,10);//NoOfPulses ks0108GotoXY(10,10); ks0108Puts(buf); NoOfPulses_last=NoOfPulses;...

    Mikrokontrolery AVR   25 Kwi 2011 16:06 Odpowiedzi: 10    Wyświetleń: 2970
  • ATmega32 - Przerwanie timer0 nie działa z warunkiem Transmit w USART_RXC_vect

    Nie wiem nic na ten temat. Na tą chwilę wydaje się że funkcja ustaw_timer() powoduje problemy, bo po jej wykonaniu układ nie reaguje na przychodzące dane. Dodano po 2 Po usunięciu z programu funkcji przelicz i ustaw timer i utawianiu timera na sztywno problem wciąż ten sam. Po inicjalizacji timera i rozpoczęciu transmisji zgodnie z przerwaniem TIMER0_COMP_vect...

    Mikrokontrolery AVR   04 Sty 2013 23:53 Odpowiedzi: 17    Wyświetleń: 2232
  • [Atmega169p] [C] Vu meter na 32 diodach RGB - problem z multipleksowaniem PWM

    Witam, próbuję wykonać vu meter na 32 diodach RGB. Aktualnie mam problem z samym sterowaniem wszystkich LEDów. Do zbudowania urządzenia użyłem atmegi 169p. Posiadam diody ze wspólna anodą. Są one podłączone jak na schemacie, czyli wszystkie katody danego koloru połączone są ze sobą i przez rezystor do mikrokontrolera do portów PWM, natomiast anody podłączone...

    Mikrokontrolery AVR   13 Wrz 2011 07:19 Odpowiedzi: 1    Wyświetleń: 1610
  • [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ń: 1709
  • Atmega328p - Odczyt potencjometrów z przerwaniami, wartości 0-255

    Cześć, Próbuję zaadaptować przerwania do swoich potrzeb z pomocą datasheet atmegi328p i strony [url=http://mikrokontrolery.blogspot.com ]Link Niestety napotkałem pewien problem z którym nie umiem sobie poradzić. Za pomocą przerwań chciałbym odczytywać stany z dwóch podłączonych potencjometrów. Reprezentuję ich wartości na LCD leczy w zakresie 0-255....

    Mikrokontrolery Początkujący   20 Lut 2020 21:14 Odpowiedzi: 14    Wyświetleń: 1113
  • 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ń: 1242
  • 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ń: 2477
  • [ATmega8] [ATmega8][C] - Przeróbka kodu z ATmega328 na ATmega8, Timer0 na Timer2, LCD pusty

    Próbuję przerobić przykład "Przyklady\LCDAlfa\LCDAlfa-transact-int\... z książki [url=http://helion.pl/ksiazki/jezyk-c-dl...

    Mikrokontrolery AVR   03 Sty 2016 19:19 Odpowiedzi: 2    Wyświetleń: 951
  • Atmel/ATmega644PA-AU/BASCOM - Jak skutecznie usypiać AVR i oszczędzać energię?

    (at)dondu Twoje artykuły czytałem dokładnie ;-) Z kodu poniżej wycięte ustawianie portów (bonie widziałem żadnej różnicy w zużyciu prądu). Procek ustawione fusami na 8MHz wewnętrzny z podziałem przez 8 [syntax=vbnet] $crystal = 1000000 ' ustawiamy prędkość zegara $baud = 9600 ' ustawiamy prędkość transmisji $hwstack = 220 ' ustawiamy wielkość stosu...

    Mikrokontrolery AVR   22 Gru 2016 15:08 Odpowiedzi: 33    Wyświetleń: 2424
  • [ATmega32a][USART] - Restartowanie mikrokontrolera przy "zalaniu" RXD

    Odbiór danych nie przez polling tylko poprzez przerwanie z wektorem TIMER0_OVF_vect Ciekawa koncepcja, ale to chyba jednak polling? Otwarte pozostaje pytanie jak często. Jeśli w kodzie jest więcej takich kwiatków to jednak bez całości kodu wgranego w procesor nie spodziewaj się pomocnej odpowiedzi. Albert

    Mikrokontrolery AVR   17 Kwi 2013 19:27 Odpowiedzi: 16    Wyświetleń: 2700
  • ATMEGA 328P-AU - FAST PWM na pinie PD6 nie działa poprawnie - analiza kodu

    Zerknij na to [syntax=c]/* * Timer0_fast_pwm_adc_irq_1.c * * Program uruchamia licznik Timer0 w trybie modulacji szerokości impulsu, tzw. Fast PWM. * Wyjście modulatora PWM na końcówce (OC0) PORTB.3. * Zostaje uruchomiony przetwornika ADC, pomiar z kanału 0, pomiar 10-bitowy, wyz. ADC z przepełnienia Timer0. * Częstotliwość PWM zależy od prescalera,...

    Mikrokontrolery AVR   26 Gru 2016 13:29 Odpowiedzi: 15    Wyświetleń: 2124
  • [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ń: 2960
  • 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ń: 2421
  • [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ń: 3436
  • [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ń: 1461
  • Błąd składniowy w kodzie dla wyświetlacza 7-segmentowego ATmega32

    Znalazłem kod obsługi wyś 7-segmentowego, pozmieniałem rejestry pod swój mikro procesor (ATmega32). Tylko mam problem z linia " static const uint8_t __flash DIGITS Dodano po 11 zrezygnowałem z pamięci flash teraz linia wygląda tak " static const uint8_t DIGITS Dodano po 20 Wystarczyło usunąć negacje w linii " PORTC=(PORTC & 0xF0) | (~(1<<LEDNO)...

    Mikrokontrolery AVR   07 Sie 2018 12:14 Odpowiedzi: 2    Wyświetleń: 609
  • [ATmega64] [ATmega64][C] Zawieszanie programu przy odczycie zmiennej w przerwaniu TIMER0

    Witam! Chciałem wykorzystać timer0 do dokładnego odmierzania czasu, jednak coś powoduje zawieszenie całego programu. Dzieje się tak gdy próbuję odczytać wartość zmiennej w obsłudze przerwania lub w pętli głównej programu. Przerwania od timera są na pewno obsługiwane ponieważ działa zmiana stanu portu w obsłudze przerwania. Kod wygląda następująco: //ZMIENNE...

    Mikrokontrolery AVR   26 Gru 2009 02:52 Odpowiedzi: 9    Wyświetleń: 4070
  • [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ń: 945
  • [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ń: 3065
  • 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ń: 1113
  • [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ń: 3917
  • [Atmega328] [Atmega328][C][PWM] - Jak poprawić jakość dźwięku .wav z karty SD?

    Poza (jakże słusznymi) konkluzjami kolegi d.d, oglądam sobie ten kod i ... W zależności z której tablicy(iChooseBuff) korzysta teraz przerwanie to z tej bierze informacje. Jeśli osiągnie koniec tablicy to pętla główna ładuje nowe info do tablicy nr 1, a przerwanie w tym czasie zczytuje info z drugiej tablicy, i na odwrót. Możliwe, że jest to przerost...

    Mikrokontrolery   12 Wrz 2013 19:47 Odpowiedzi: 13    Wyświetleń: 3375
  • [ATmega128L] [ATmega128L][AVR-GCC] Błąd w obsłudze TIMER0 i TIMER2, możliwy błąd w dokumentacji?

    ale w takim razie pozostaje jeszcze sprawa przeładowywania wartości TCNTx w przerwaniu skoro nie korzystasz z CTC. Nie przeładowuje, ponieważ jeżeli w ogóle wejdzie w przerwanie to znaczy, że timer działa. Dioda się zaświeci i będzie w takim stanie przez wieczność. :) Pozdrawiam

    Mikrokontrolery AVR   26 Sty 2011 11:06 Odpowiedzi: 13    Wyświetleń: 2556
  • 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ń: 4155
  • Atmega32[C] - Przerwanie od timera1 nie działa, miganie diody co 1s

    Samo zapalanie i gaszenie diody można zrobić w przerwaniu, pętla główna może być pusta, np. (tu akurat przerwanie overflow): [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> int a; ISR(TIMER0_OVF_vect) //a tu definiujemy to co bedzie sie dzialo, gdy wywolamy przerwanie. { a++; if (a>4)// co czwarte przerwanie { PORTB ^= 0x02;...

    Mikrokontrolery AVR   01 Kwi 2014 01:25 Odpowiedzi: 12    Wyświetleń: 1308
  • BTM112 - Jak sprawdzić status połączenia Bluetooth między ATmega32A i ATmega8L?

    Witam Czy istnieje w modułach bluetooth coś w stylu flagi nawiązania połączenia tzn. master zapala flagę gdy sparuje się ze slavem, a gasi ją gdy połączenie zostanie przerwane? Program miałby działać tak: Po nawiązaniu połączenia między mikrokontrolerami (ATmega32A i ATmega8L) za pomocą nadajników bluetooth przesyłany jest ze slave'a do mastera klucz...

    Mikrokontrolery Początkujący   20 Mar 2017 22:37 Odpowiedzi: 13    Wyświetleń: 1266
  • Dlaczego przerwanie T0 w ATmega32 nie działa? Zmiana stanu diody w C

    Działający kod, dioda zmienia stan co sekundę. #include<avr/io.h> #include <avr/interrupt.h> #define F_CPU 1000000 char licznik = 0; //zmienna dla licznika programowego int main(void) { TCCR0 = 0x05; //(1 << CS02) | (1 << CS00); prescaler na 1024 TIFR |= (1 << TOV0); TIMSK |= (1 << TOIE0); // aktywne przerwanie overflow...

    Mikrokontrolery   18 Lip 2011 17:54 Odpowiedzi: 7    Wyświetleń: 981
  • 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ń: 1234
  • 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ń: 7749
  • 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
  • [Atmega16] [Atmega16][C] Sterowanie silnikiem DC i zliczanie impulsów timerem0

    Przeczytałem, że bit TOV0 o adresie 0x20 w rejestrze TIFR ustawia się gdy występuje przepełnienie licznika Bit nie ma adresu, ma go tylko rejestr TIFR. Nawet w asemblerze nie ma potrzeby sprawdzania adresów i numerów bitów, to już jest zdefiniowane w pliku nagłówkowym i wystarczy używać: ISR ( TIMER0_OVF_vect ) jest ustawiony), ani go zerować, bo robi...

    Mikrokontrolery AVR   16 Lip 2012 19:41 Odpowiedzi: 12    Wyświetleń: 2555