volatile przerwa

Znaleziono około 3099 wyników dla: volatile przerwa
  • Reanimacja i modyfikacja świeczek LED na Attiny13a - problem z poborem prądu tryby SLEEP

    Prawdopodobnie źle używam zmiennych volatile przerwa. Zmienna ta jest chyba gubiona. Jeśli zamiast if (przerwa == 0) wpiszę jakąkolwiek inną wartość układ pobiera cały czas te 5 nA

    Mikrokontrolery AVR   03 Kwi 2023 18:32 Odpowiedzi: 10    Wyświetleń: 915
  • Attiny13 - przerwania: LED nie gaśnie po 5 sek. po naciśnięciu switcha

    Co jest źle? To co zwykle, to co zawsze, to o czym pisane jest w 95% tematów o problemach z przerwaniami. http://en.wikipedia.org/wiki/Volatile_va... 4\/3!!

    Mikrokontrolery   03 Sty 2011 17:51 Odpowiedzi: 1    Wyświetleń: 927
  • REKLAMA
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • AtMega 128 - problem z odczytem UART i przerwaniami RXCIE, TXCIE

    Czy z przerwania mogę zwrócić daną do głównego programu (jako dana globalna) ?? Tutaj znajdziesz odpowiedź: http://mikrokontrolery.blogspot.com/2011...

    Mikrokontrolery AVR   05 Maj 2011 22:22 Odpowiedzi: 26    Wyświetleń: 1716
  • REKLAMA
  • Nierówne odczyty czasu między przerwaniami transoptora przy 400 RPM

    Nie jest to kod do jakiegoś Pentium. To prosta ATmega. A że, długo nie używałem i nie pisałem ,to stąd problemy. Jakby mógł Koś, zerknąć na kod i wytknąć błędy to będę cheppi. ( Program ma za zadanie, zmierzyć czas pomiędzy dwiema szczelinami na obracającym się kółku. wykorzystany transoptor) [syntax=c]#include <avr/io.h> #include <avr/interrupt.h>...

    Mikrokontrolery   01 Gru 2018 23:39 Odpowiedzi: 17    Wyświetleń: 813
  • [ATmega8][C] - TIMER1 kontrolowany przerwaniami INT0:1

    Witam, ustawienie rejestru DDR i PORT na 0 daje wejścia pływające (ATmega8 nie ma rezystorów ściągających do masy, tylko podciągające do plusa). Tak jak jest teraz łapiesz kolego zakłócenia. Należałoby albo dodać zewnętrzne rezystory między przyciskami a masą lub zmienić położenie przycisków (między pinem a masą) i włączyć wbudowane rezystory. O volatile...

    Mikrokontrolery AVR   04 Lis 2012 12:30 Odpowiedzi: 3    Wyświetleń: 1629
  • obsługa wyświetlacza LED przerwaniami i wyświetlanie zmiennej z pętli głównej

    Jeżeli odwołujesz się do zmiennej w pętli głównej i w przerwaniu zadeklaruj ją jako volatile .

    Mikrokontrolery Początkujący   14 Paź 2013 16:56 Odpowiedzi: 16    Wyświetleń: 2805
  • REKLAMA
  • Xmega128A3 - uart na przerwaniach, biblioteka Atmela, echo na terminal.

    (at)dawid.barracuda Na pewno nie powinieneś robić na siłę samemu. Potrzebujesz modułu, który implementuje algorytm FIFO aby w elegancki sposób obsłużyć UARTA. Warto się posłużyć implementacją, która już działa. Możesz pokusić się o własną implementację ale mimo wszystko wzorować się na czymś sprawdzonym. Taki moduł będziesz mógł sobie w przyszłości...

    Mikrokontrolery AVR   09 Kwi 2017 14:24 Odpowiedzi: 6    Wyświetleń: 987
  • [c/AS6] Debugowanie kodu C dla AVR: problem z SPI i przerwaniami w symulatorze

    Jeszcze przy zmiennych występujących w przerwaniach dodaj modyfikator volatile .

    Mikrokontrolery AVR   17 Maj 2013 17:10 Odpowiedzi: 14    Wyświetleń: 2874
  • [atmega16] [atmega16][c/avr-gcc] UART w przerwaniach - nieoczekiwane działanie programu

    Oto kod: Nie wiem, czy to może być przyczyną, ale taka deklaracja oznacza "wskaźnik na ulotne dane", a potrzebny jest "ulotny wskaźnik" czyli [syntax=c] char * volatile wskaznik; [/syntax] Oczywiście volatile z przodu też może być niezależnie.

    Mikrokontrolery AVR   29 Cze 2012 11:49 Odpowiedzi: 25    Wyświetleń: 2454
  • Przerwanie pętli arduino proszę o szybką poradę

    Potrzebuję pomocy w przerwaniu pętli while (linijka 146) założenie jest takie jeżeli BlutoothDane=s to ma wykonać tą pętle a jeżeli BlutoothDane=d to ma ją przerwać. problem jest taki, że nie przerywa pętli cały układ ma działać jako sterownik Led na bluetooth. Proszę o szybką pomoc. Masz tu kilka nieprawidłowości; Jakie znaczenie i zastosowanie ma...

    Arduino   04 Sie 2020 00:47 Odpowiedzi: 5    Wyświetleń: 1419
  • Atomowość w C: Zmienna _co20ms w przerwaniach i możliwe błędy

    Teraz zauważyłem, że trochę się machnąłem (dwa odejmowania jedynki). Oczywiście, że możesz tak zrobić - ja wydzieliłem dodatkową zmienną ze względu na optymalizację: aby uniknąć dwóch odczytów zmiennej volatile. Różnica będzie w dosłownie czterech czy pięciu cyklach. Jak chcesz, to możesz nawet napisać tak: [syntax=C]ISR(TIMER...) { if(cnt_busy && --cnt_val...

    Mikrokontrolery   12 Sie 2011 13:22 Odpowiedzi: 7    Wyświetleń: 1543
  • [ATmega32][c] Przerwanie od porównania w timer1 - ograniczenia

    Niestety problem znów się pojawił: Program nie wchodzi do pętli while, gdzie warunek jest niespełniony dopiero po zatrzymaniu dopiero co ustawionego rejestru licznika, próbowałem jeszcze inny sposób, z bitami zmiennej flag ustawianymi w przerwaniach - do przerwania wchodzi, ale jak wróci do programu to nie wychodzi z pętli - tak jakby warunek był cały...

    Mikrokontrolery AVR   21 Lis 2011 17:23 Odpowiedzi: 10    Wyświetleń: 2449
  • [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ń: 3452
  • REKLAMA
  • Atmega8: Zmienna volatile i przerwania - problem z opóźnieniem w pętli while

    Powód jest bardzo prosty: zmniejszenie zmiennej w pamięci nie jest operacją atomową. Co prawda za każdym razem następuje odczytanie zmiennej, zmniejszenie jej a następnie zapis, to jeśli przerwanie wystąpi pomiędzy odczytem a zapisem, to utracisz zmianę dokonaną w przerwaniu. W przypadku gdy przerwanie i funkcja main konkurują o jeden zasób, musisz...

    Mikrokontrolery AVR   25 Kwi 2010 12:42 Odpowiedzi: 2    Wyświetleń: 1353
  • Błąd czasowy w pętli z volatile unsigned int Time_out w przerwaniu 25ms

    [syntax=c] ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {Time_out=0;}; int x; do { ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { x=Time_out;); } while (x < 1000); [/syntax]

    Mikrokontrolery   25 Gru 2011 21:08 Odpowiedzi: 14    Wyświetleń: 1515
  • Czy odczyt stanu pinu w przerwaniu timera jest poprawny? Zmienna volatile

    Właściwie nie musi mieć. Jeśli przerwania są co kilka-kilkanaście ms to eliminacja drgań robi się niejako przy okazji.

    Mikrokontrolery AVR   06 Maj 2010 21:56 Odpowiedzi: 12    Wyświetleń: 1526
  • AtMega16 język C - zmienna Volatile nie przekazuje wartości z przerwania do main

    a co jest nie tak z pętlą while(1) bo nie mogę się dopatrzeć To, że jest pusta. Stan zmiennej flaga sprawdzasz tylko raz na początku programu, po czym zapętlasz go w pustej pętli. Poza tym sprawdzanie if(flaga=1) jest błędem, zapewne miało być if(flaga==1) - przeczytaj ostrzeżenia kompilatora generowane w czasie kompilacji.

    Mikrokontrolery Początkujący   22 Sty 2015 18:56 Odpowiedzi: 14    Wyświetleń: 1422
  • WinAvr: Przerwania TC1 i zmienne volatile, brak aktualizacji czasu na LCD

    Problem tkwi w miejscu gdzie są inicjowane wartości zmiennych do odnierzania czasu. Niestety nie :( Problem tkwi tu: /* TIMSK = 130; // globalne odblokowanie przerwań /* TIMSK |=(1<<TOIE1); Skąd wytrzasnąłeś te 130 :?: Piotrek PS A jaki to proc :?:

    Mikrokontrolery   20 Mar 2007 23:31 Odpowiedzi: 6    Wyświetleń: 1131
  • Jak zmierzyć czas przerwania DMA z I2S z rozdzielczością 1us?

    Chciałbym zmierzyć jak długo wykonuje się przerwanie od DMA po zakończeniu transmisji z I2S. Myślałem nad uruchomieniem jakiegoś timera, który będzie zliczał mikrosekundy, ale kiedy wykonuje się jedno przerwanie z najwyższym priorytetem to inne są hamowane. Dobrze kombinujesz! Ale trochę przekombinowujesz :). Nie potrzebujesz żadnych dodatkowych przerwań...

    Mikrokontrolery ARM   21 Lut 2024 22:50 Odpowiedzi: 6    Wyświetleń: 258
  • Jak użyć warunku if i przerwania UART do obsługi czasu w C?

    Witam volatile struct _sTime { volatile uint8_t uiHours; volatile uint8_t uiMinute; volatile uint8_t uiSecond; }; ... ... if((60*sTime.uiMinute + sTime.uiSecond)>=600) { eMAIN_AutomatState = SERVICE_accepted; } if(true==volatileEverySecondsToggle && FREE==TxBufor_0.eTxStatuss)//tylko do spr. że...

    Mikrokontrolery AVR   06 Gru 2010 15:51 Odpowiedzi: 4    Wyświetleń: 1362
  • [ATMEGA32] [C] jak zrobić arduinowe serial.available, Przerwanie od UART.

    Zmienną 'flaga' ustalasz w przerwaniu wiec powinna być volatile. p.s. Samych rejestrów nie sprawdzalem.

    Mikrokontrolery   29 Gru 2017 18:13 Odpowiedzi: 8    Wyświetleń: 768
  • Jak bezpiecznie modyfikować zmienne globalne w przerwaniu w C?

    Raczej doczytał, bo wstawił przed deklaracjami zmiennych, a jeśli rozwiązaniem jest wstawienie volatile też wewnątrz struktury, to raczej nie jest to oczywiste bez doświadczenia z C.

    Mikrokontrolery AVR   26 Lis 2011 11:03 Odpowiedzi: 5    Wyświetleń: 1224
  • [ATMega8][c] - problem z tablicą uzupełnianą w przerwaniu

    Wystarczy policzyć. 19200 bps = 1920 znaków na sekundę, czyli znak co ~0,5 ms. Przy taktowaniu 4MHz masz +/- 2080 cykli procesora pomiędzy przerwaniami od UARTa, czyli duuużo czasu na wykonywanie instrukcji w pętli głównej. Na Twoim miejscu skupiłbym się na przetwarzaniu tekstu np. linia po linii - przerwanie wypełnia bufor, a po wykryciu sekwencji...

    Mikrokontrolery AVR   03 Paź 2009 19:03 Odpowiedzi: 21    Wyświetleń: 2950
  • [c] [Atmega16] Przerwanie INT0 nie inkrementuje zmiennej - co poprawić?

    a słyszałeś kiedyś o zmiennych typu volatile ???? poczytaj sobie do czego służy słówko volatile a na pewno szybko poradzisz sobie z tym problemem

    Mikrokontrolery AVR   22 Sty 2010 15:17 Odpowiedzi: 2    Wyświetleń: 1311
  • STM32F0 DISCOVERY - Odczyt pinu wejściowego w przerwaniu.

    http://4programmers.net/C/Volatile , kolejność jest taka język c i konsola na kompie , a później mikro kontrolery , bo będziesz się bujał z takimi głupimi błędami

    Mikrokontrolery ARM   06 Sty 2014 19:49 Odpowiedzi: 16    Wyświetleń: 1656
  • [C] Atmega32 przerwania. Zmienna nie działa w programie.

    Dopisz "volatile".

    Mikrokontrolery AVR   11 Lis 2010 16:43 Odpowiedzi: 3    Wyświetleń: 1785
  • [ATtiny13][c] int0 - problem w obsługą przerwania

    Kliknij tutaj: [url=http://avr-libc.nongnu.org/user-man...

    Mikrokontrolery AVR   07 Lis 2010 19:47 Odpowiedzi: 4    Wyświetleń: 1237
  • [atmega88] [atmega88][C] Błąd 'index' undeclared w przerwaniu ISR(INT0_vect)

    Poczytaj o zmiennych globalnych typu volatile. Zamykam

    Mikrokontrolery AVR   07 Lis 2010 13:16 Odpowiedzi: 1    Wyświetleń: 906
  • Atmega8 - jak kontynuować działanie silnika po przerwaniu z krańcówki?

    Wydaje mi się że po prostu użyj jakieś flagi i zmiennej globalnej która zapamięta wartość PORTC w momencie wejścia do przerwania. Aby rzeczywiste wartość ta była zachowane użyj zmiennej volatile char to znaczy wchodząc do przerwania funkcja będzie wykonywana na tej zmiennej a nie na jej kopii.

    Mikrokontrolery AVR   10 Sty 2010 08:12 Odpowiedzi: 14    Wyświetleń: 1983
  • Miernik częstotliwości na ATmega16 - przerwania i liczniki T0, T1

    Uwaga! 1) Jeżeli zmienną licznik będziesz miał zadeklarowaną wewnątrz funkcji obsługującej przerwanie to przykładowa deklaracja powinna wyglądać tak: static uint8_t licznik = 0; 2) Jeżeli natomiast zmienną licznik zadeklarujesz gdzieś w programie głównym, wtedy powinieneś ją przykładowo zadeklarować jako: volatile uint8_t licznik = 0; po co te "przedrostki"...

    Mikrokontrolery   15 Lut 2008 16:19 Odpowiedzi: 12    Wyświetleń: 3426
  • STM32F4: Podwójne przerwania AWD przy optymalizacji -Os, dlaczego?

    1. Zbędny atrybut volatile w deklaracji AdcVal. 2. Czy AWD jest jedynym źródłem przerwania ADC? 3. Kasować bit zgłoszenia przerwania należy na początku procedury obsługi przerwania. nie wiem, aj to jest W STM32, ale w wielu innych Cortexach Zgłoszenie przerwania nie zdąży się w takiej sytuacji skasować i powtórnie wejdziesz w obsługę przerwania.

    Mikrokontrolery ARM   02 Kwi 2013 15:49 Odpowiedzi: 41    Wyświetleń: 5361
  • STM32 Przerwanie SYSTICK. Jak wrócić do funkcji main?

    myślałem że mogę wpisać praktycznie częstotliwość taktowania procka. Po zastanowieniu wiem że to niemożliwe. Podzielnik przez 8 można włączyć. Dodano po 4 Nie każdy pływa z zamiarem udziału w olimpiadzie ;-) Jest coś takiego jak hobby, ciekawość... na różnym poziomie wiedzy. Tu użyj CubeMX. Prosto, szybko i przyjemnie. Dużo kursów jest na Forbocie,...

    Mikrokontrolery ARM   09 Cze 2019 00:09 Odpowiedzi: 11    Wyświetleń: 981
  • ATmega32, C, przerwanie ADC - program przestaje działać po kilku minutach

    o volatile się zapomniało :P // no tak w przerwaniu :P a ruszasz coś układem? może źle jest cuś przylutowane ? Z taktowaniem może też coś nie tak? Może z zasilaniem? Może to wpływ wiatrów słonecznych ?

    Mikrokontrolery AVR   12 Kwi 2011 19:37 Odpowiedzi: 13    Wyświetleń: 2524
  • Atmega644PA - Obsługa przerwania, multipleksowanie ADC

    Jeśli wartość OKRES nic nie zmienia, to masz gdzieś gruby błąd. Prawdopodobnie skrzyżowałaś różne kawałki kodu i wyszło coś, nad czym nie panujesz. W moim kodzie 3 kanały są ciągle mierzone przez ADC, a wartość OKRES reguluje tylko to, jak często czytasz/przetwarzasz te pomiary. Tak to się robi w rzeczywistych zastosowaniach, gdzie zwykle musisz mieć...

    Mikrokontrolery   10 Sty 2016 16:07 Odpowiedzi: 53    Wyświetleń: 2865
  • AVR GCC TIMER0: Błąd kompilacji przy deklaracji '__vector_11' w przerwaniu

    #include <avr/io.h> #include <avr/interrupt.h> // funkcje sei(), cli() #include <stdlib.h> volatile int a=0; ISR(TIMER0_OVF_vect) { a+=1; } int main( void ) { //rejestry od timera 0 TCCR0 = _BV(CS02)|_BV(CS00);//pr... 1024 TIMSK = _BV(OCIE0); //włącza przerwanie...

    Mikrokontrolery   07 Mar 2008 20:04 Odpowiedzi: 6    Wyświetleń: 7897
  • Błąd kompilacji przy użyciu goto w C po przerwaniu SIG_INTERRUPT0

    Tego rodzaju kod najprościej Ci będzie opisać za pomocą automatu, może kod nie będzie aż tak szybki, ale na pewno będzie się go dało zrozumieć :) setjmp/longjmp też może być, ale to działa raz (tj. dla jednego przerwania), struktura sigjmp_buf zajmuje 23/24 bajty na AVR a zapamietanie/wykonanie skoku też zajmuje kilkanaście instrukcji. Szkielet implementacji...

    Mikrokontrolery   20 Paź 2008 09:22 Odpowiedzi: 8    Wyświetleń: 7182
  • [ATmega8] [ATmega8][C] Przerwanie licznika nie generuje opóźnień, brak wyświetlania tekstu

    a _delay_ms i _delay_us Ci nie wystarcza ? Do opóźnień nie trzeba wykorzystywać koniecznie przerwań timera. Można wykorzystać flagi timera (o ile się da, ale wszystko zależy). Poza tym, zmienna deb w Twoim programie zapewne nie jest volatile, ale wrzuciłeś nam NIC, także pomoc też nijaka

    Mikrokontrolery AVR   05 Paź 2010 18:38 Odpowiedzi: 2    Wyświetleń: 731
  • Komunikacja między Arduino przez SPI i TWI - tylko pierwsze przerwanie działa

    Nie wiem, skąd jest ten przykład "wzięty", ale odbieranie danych przez klienta I2C powinno być realizowane w funkcji receiveEvent() (wywoływana z ISR), a nie w pętli loop(). [syntax=c] volatile byte buf [32]; // called by interrupt service routine when incoming data arrives void receiveEvent (int howMany) { for (byte i = 0; i < howMany; i++) { buf...

    Arduino   02 Kwi 2019 12:07 Odpowiedzi: 4    Wyświetleń: 339
  • Zliczanie zmiennej w przerwaniu w C - zmienna nie wpływa na podprogramy

    I funkcje opóźniające w przerwaniu to trochę głupia rzecz. Prócz tego poczytaj może o słowie kluczowym volatile.Oczywiście jak już poprawisz te wcześniej wspomniane rejestry...

    Mikrokontrolery   09 Mar 2008 16:28 Odpowiedzi: 12    Wyświetleń: 1742
  • [C] ATMega8 - Timery i przerwania nie działają w kodzie C, WinAVR 20100110

    Spróbuj zrobić od przepełnienia. W proteus'ie też port zmieni raz stan i nic. volatile int flaga; #include <avr/io.h> #include <avr/interrupt.h> int main (void) { DDRC = 0xff; // Ustaw jako wyjście LED TIMSK = 0x04; // Włącz przerwania przepełnienia (1 <<TOIE1) SREG = 0x80; // włącz przerwania globalne sei()...

    Mikrokontrolery AVR   20 Maj 2011 18:47 Odpowiedzi: 14    Wyświetleń: 2163
  • [Atmega32] Timer0 nie wywołuje przerwania SIG_OVERFLOW0 w skanerze 3D

    ps. w manualu wyczytałem, że TIM0_OVF_vect jest tylko dla atiny. Dla atmegi32 jest TIMER0_OVF_vect pomyliłem się, sorki. i jest błąd bo volatile uint8_t overflow; uint8_t to 0-255, nie wiem jak to wygląda po skompilowaniu. if (overflow < 512) { PORTC = 1 << 1; } else { PORTC = 1 << 2; } if (overflow >...

    Mikrokontrolery AVR   15 Maj 2009 14:59 Odpowiedzi: 13    Wyświetleń: 3963
  • [ATMEGA8] [ATMEGA8][C] Reset mikrokontrolera zamiast obsługi przerwania INT1

    1. Na poczatku użyłeś obecnie obowiązująca formę w odniesieniu do przerwania INT1 : ISR(INT1_vect) a teraz starszą w odniesieniu do przerwania INT0 SIGNAL(SIG_INTERRUPT0) Czy zainstalowałeś starszą wersję WinAVR ? 2. O co chodzi z : asm volatile ("WDR"::); i jak to się ma do _delay_ms(); skoro w programie...

    Mikrokontrolery AVR   30 Gru 2010 23:13 Odpowiedzi: 54    Wyświetleń: 6054
  • Jak ustawić przerwanie INT0 do zmiany działania pętli while w sterowaniu diodami?

    Pisane z głowy i na szybko. [syntax=cpp] volatile int8_t stan; ISR (INT0_vect) { if (stan == 1) stan = 0; else stan = 1; } int main(void) { DDRD=0xff; PORTD=0x00; DDRC=0xff; stan = 0; MCUCR |= (1<<ISC01);//poczytaj o tym GICR |= (1<<INT0);/// i o tym sei(); uruchamia mozliwos uruchamiania przerwan while(1) { if (stan == 0) { while(1) { cośtam...

    Mikrokontrolery   27 Gru 2011 17:46 Odpowiedzi: 7    Wyświetleń: 956
  • WS2812 na choince w przerwaniach od USART - AVR Mega

    https://obrazki.elektroda.pl/7496355900_... Niby nic szczególnego, 120 ledów uC Mega324 taktowana 18,4321MHz. Schemat jest bardzo prosty, więc sobie go daruję (procek, kwarc, bramka NOT), nietypowe jak na AVR mega jest sterowanie przez USART na przerwaniach. Poniżej istotny fragment kodu: W sumie to mogą być włączone przerwania SIGNAL...

    DIY Konkurs   09 Sty 2018 14:44 Odpowiedzi: 25    Wyświetleń: 5796
  • [ATMega][SN75176][c] - problemy z UARTem (przerwania)

    i jak zwykle, odpowiedz standardowa - volatile. ile razy bedzie musiala jeszcze pasc, aby forumowicze znajdywali ja w wyszukiwarce, a nie pytali o nia co chwile? 4\/3!!

    Mikrokontrolery AVR   04 Mar 2009 12:54 Odpowiedzi: 3    Wyświetleń: 2084
  • Atmega168 Bascom - Przerwanie co 5us i odczyt 8 bitów

    optymalizacje mam na -OS, przestawić na O2 lub O3 ?? Przy tak minimalnym kodzie nic to nie zmieni Spróbuj z taką procedurą przerwania: [syntax=c]ISR(INT0_vect, ISR_NAKED) { asm volatile( "pushr24" "\n\t" "inr24, 0x09" "\n\t" "pushr0" "\n\t" "inr0, 0x3f" "\n\t" "pushr0" "\n\t" "pushr1" "\n\t" "pushr25" "\n\t" "pushr30" "\n\t" "pushr31" "\n\t" "ldsr25,...

    Mikrokontrolery Początkujący   18 Lis 2014 09:04 Odpowiedzi: 65    Wyświetleń: 4743
  • [WinAVR][C] - zamiana zmiennej na stan portów / przerwania.

    Witam, Zmienna l (i wszystkie inne uaktualniane w przerwaniach) powinna być zadeklarowana jako volatile: volatile unsigned int l; Dzięki temu kompilator wie, że może ona zmienić wartość poza kontrolą kompilatora np. w przerwaniu. Takiej zmiennej kompilator np. nie usunie podczas optymalizacji Twojego programu :) PS. w PHP operatory wyglądają tak samo,...

    Mikrokontrolery AVR   12 Sie 2008 13:04 Odpowiedzi: 14    Wyświetleń: 4401
  • 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ń: 3780
  • Arduino - Enkoder Optyczny - działanie programu...

    Witam. Chciałem zrobić program realizujący zliczanie poszczególnych impulsów enkodera oraz określenie kierunku obrotu tarczy - problem niestety tkwi w samej zasadzie działania programu - przy kręceniu w jedną stronę niekiedy pojawiają się błędne sygnały obrotu w drugim kierunku, a ponadto same zliczanie nie pracuje stabilnie - raz przy wolnym kręceniu...

    Arduino   01 Sty 2017 17:02 Odpowiedzi: 1    Wyświetleń: 1320
  • atrybut "volatile" dla struktury danych - niezgodność

    Zgadza się, jeśli zmienna jest volatile, to kompilator musi bezwzględnie realizować wszystkie dostępy bez buforowania odczytu ani opóźniania zapisu. Jak by nie patrzeć, kompilator optymalizuje kod zakładając liniowy(sekwencyjny) sposób wykonywania: w obrębie danej funkcji (jaka by ona nie była: program główny, przerwanie czy cokolwiek innego) można...

    Mikrokontrolery   28 Sie 2011 09:32 Odpowiedzi: 23    Wyświetleń: 3664
  • Jak odczytać i modyfikować zmienne Timer1 i Timer2 w różnych plikach?

    No i nie udało mi się tego zrobić na Timer0- on sie kręci bez przerwy a ja potrzebuję włączyć i wyłączyć timer. Tak że na razie na Timer1- szkoda bo 16 bitów- ale zrobię na Timer2. Spokojnie użyj Timer0, który będzie zgłaszał przerwanie np. co 1ms. W procedurze obsługi tego timera dekrementuj zmienną, jeśli osiągnie 0 to należy zatrzymać dekrementowanie,...

    Mikrokontrolery   01 Sie 2011 11:54 Odpowiedzi: 52    Wyświetleń: 3747
  • [AVR-GCC] Dlaczego zmienna 'status' ma nieoczekiwaną wartość w przerwaniu TWI?

    Nie masz dostępu do zmiennej, czy po prostu odczyt zawsze zwraca tą samą wartość (efekt braku volatile przy deklarowaniu zmiennej używanej przez przerwanie)? Bez "volatile" kompilator zoptymalizuje odwołania do zmiennej "status" w funkcji main - zmienna nie jest nigdy odczytywana (kompilator nie uwzględnia tego, że może przyjść przerwanie - widzi tylko...

    Mikrokontrolery AVR   08 Sie 2009 09:02 Odpowiedzi: 6    Wyświetleń: 1584
  • 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ń: 2722
  • Nazwa uchwytu w SIGNAL dla przerwania odbioru znaku w USART?

    obsłużyć wydarzenie jakim jest skonczenie odbierania znaku ? Chodzi mi to to aby program w pętli głównej robił co do niego należy, nie wiedząc kiedy ma spodziewac się znaku, jednakże cały czas byłby na to gotowy-aby go odebrać. tak na szybko algorytm: volatile char bufor[50]; volatile int ilosc_znakow; volatile char bufor_2[50]; int...

    Mikrokontrolery AVR   25 Lis 2010 12:11 Odpowiedzi: 6    Wyświetleń: 1695
  • [STM32F107VBT6][C/Keil] Obsługa I2C slave przez przerwania

    Sporo się namęczyłem, zanim ruszył mi slave transmitter w STM32F103. W 107 będzie tak samo. Po pierwsze zobacz do errat - tam między innymi napisali, że przerwanie i2c musi mieć najwyższy priorytet, bo inaczej się wiesza. Poza tym przykłady nie zadziałały mi od razu, a problemy mają też inni, o czym możesz poczytać na main.c // main.c main()...

    Mikrokontrolery ARM   09 Lis 2011 08:30 Odpowiedzi: 9    Wyświetleń: 6454
  • AVR ATmega8 Timer0 CTC – konfiguracja rejestrów do przerwania co 2ms

    Dałem pętlę while(1) w main i dioda nadal nie miga. Gdze ją dodałeś? U mnie działa. [syntax=c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define LED_PIN (1<<PD7) #define LED_TOG PORTD ^=LED_PIN volatile int licz; int main(void) { DDRD |= LED_PIN; TCCR0 |= (1<<CS02); TIMSK |= (1<<TOIE0);...

    Mikrokontrolery Początkujący   03 Kwi 2015 20:23 Odpowiedzi: 39    Wyświetleń: 3894
  • [STM32F3] - USART1 działa, USART2 i USART3 nie działają oraz przerwanie

    Czy pamiętałeś o włączeniu portów w ODPOWIEDNIM rejestrze APBENR? volatile nie ma nic wspólnego z AVR. Tego atrybutu używa się np. wtedy, kiedy zmienna modyfikowana przez obsługę przerwania jest testowana przez inny fragment kodu. Pokaż kod procedury przerwania, bo coś tam narozrabiałeś.

    Mikrokontrolery ARM   15 Sie 2013 22:36 Odpowiedzi: 3    Wyświetleń: 1131
  • Dekodowanie sygnału DCF77 na ATmega - synchronizacja czasu bez GPS

    U mnie (Katowice) z DCF77 nie ma problemu, oczywiście zdarza się, że przez jakiś czas nie działa, ale przecież nie musi - wystarczy że złapie sygnał od czasu do czasu. Z tego co zauważyłem, to strasznie przeszkadza w odbiorze DCF77 komputer. Kiedy miałem zasilane układy przez USB to generalnie był problem, gdy je zasilałem osobno - z sieci lub z baterii...

    Mikrokontrolery AVR   09 Mar 2023 17:01 Odpowiedzi: 27    Wyświetleń: 10101
  • [C] [C][asm] Jak przyspieszyć wykonanie przerwania PWM dla 12 kanałów?

    Tak jak piszą koledzy - utworzyć lokalną kopię zmiennej counter, żeby nie była volatile w przerwaniu. Ale prawdziwa optymalizacja to zmiana algorytmu - jak pamiętam chodzi ci o 12-kanałowy PWM. Lepiej więc zrobić tablicę przechowującą stan kanałów w danej jednostce czasu, wtedy 16-kanałowy PWM to będzie tylko PORTB=channel[counter].lo; PORTD=channel[counter].hi....

    Mikrokontrolery AVR   31 Paź 2010 14:32 Odpowiedzi: 18    Wyświetleń: 2289
  • NUCLEO-F103RB: SysTick_Config(8000000) generuje przerwania co 0.1s zamiast 1s

    W poradniku Szczywronka opis konfiguracji zegara był dokładnie opisany dla STM32F103. Przepisanie kodu stamtąd powinno dać Ci poprawny wynik konfiguracji. Teraz piszę z pomocą CMSIS". Pracę z STM zaczynam zawsze od przygotowania funkcji SystemClockConfig() jak to opisano w poradniku, posiłkuję się zarazem schematem z zegarów z CubeMX . Całość odbywa...

    Mikrokontrolery ARM   14 Maj 2018 14:20 Odpowiedzi: 7    Wyświetleń: 525
  • ATmega32, jak poprawnie ustawić przerwanie TIMER1 w C na zestawie and-tech EvB 4.3

    słowo kluczowe "volatile"

    Mikrokontrolery Początkujący   29 Gru 2011 20:59 Odpowiedzi: 4    Wyświetleń: 1530
  • [M16] Jak obsłużyć przerwanie UART i string w M16 przy baudrate 57600?

    Prawie że na kolanie napisane: #include <avr/io.h> #include <avr/interrupt.h> #define USART_BAUDRATE 57600 #define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1) // maksymalna liczba znaków polecenia #define UART_MAXBUFF 16 // bufor znaków polecenia (UART_MAXBUFF znaków + jeden pod znak zero)...

    Mikrokontrolery AVR   03 Lip 2008 19:30 Odpowiedzi: 10    Wyświetleń: 4915
  • ATMEGA88 - Brak reakcji na przycisk, wyświetla 0000 na 7-segmentowym wyświetlaczu

    Witaj, O volatile kolega słyszał? Jeśli nie, to czas poczytać: http://mikrokontrolery.blogspot.com/2011... Stosuj nowe funkcje obsługi przerwań ISR(), tym bardziej, że używasz nowe ich wektory: http://www.nongnu.org/avr-libc/user-manu...

    Mikrokontrolery Początkujący   13 Mar 2013 16:27 Odpowiedzi: 19    Wyświetleń: 2421
  • [AVR] Atmega gubi przerwania USART - jak rozwiązać problem z odbiorem danych?

    A może masz gdzieś funkcję obsługi tego przerwania? Dodano po 4 Dodam, że korzystam z programowego bufora cyklicznego, który w przerwaniach odbiera dane od UDR. Jedyne co mi przychodzi na myśl to to, że przerwanie tak szybko się wykona (odebranie danych do bufora i skasowanie flagi RXC), że część programu: while ( !(UCSRA & (1<<RXC)) ); nawet...

    Mikrokontrolery   13 Lip 2011 00:58 Odpowiedzi: 21    Wyświetleń: 5711
  • Odczyt czasu między przerwaniami z AD9850 przez Timer1 - błędy

    Dla przypomnienia: volatile: GWARANTUJE: odczyt sensownej liczby, tj wszystkie bajty z tej samej chwili czasowej, i jest to jedyna gwarancja Niezupełnie. Kwalifikator volatile instruuje kompilator, że zmienna ma być przechowywana tylko w pamięci (a nie np. w rejestrach MCU), przez cały czas jej życia w programie. Operacje na zmiennych volatile nie...

    Arduino   16 Maj 2021 21:42 Odpowiedzi: 29    Wyświetleń: 1005
  • Dlaczego zmienna volatile działa w przerwaniach w WINAVR?

    Witam czy ktos moze mi wyjasnic dlaczego tak jest: napisalem sobie procedure obslugi przerwania z uzyciem SIGNAL. w obsludze zwiekszalem zmienna o 1. w petli glownej programu z uzyciem if czekalem az licznik osiagnie 15. Gdy osiagal 15 (patrzylem podczas debuggingu) nic sie nie dzialo, if w zasadzie nie widzial zaleznosci 15 == 15. Dopiero gdy zmienna...

    Mikrokontrolery   17 Paź 2005 21:34 Odpowiedzi: 6    Wyświetleń: 1061
  • Attiny2313 - Konfiguracja Timer0 w C w Atnel Studio 6, jak napisać kod?

    Load Timer0 = 45 - jak sądzę oznacza nadanie wartości początkowej timerowi. Oznacza to, że powinieneś załadować tę wartość do rejestru TCNT0. Zakładam, że funkcja inicjująca BASOM inicjuje go w tryb normalny (czyli mode 0). W funkcji przerwania: - Incr A, Incr B - po prostu dodaj jeden do zmiennych A i B lub wykonaj inkrementację - If A = 305 Then ......

    Mikrokontrolery AVR   03 Lip 2014 18:00 Odpowiedzi: 8    Wyświetleń: 2175
  • Przerwania proste i przyjemne - część 2 - zmienne, bufory i latencja

    ... w dodatku tutaj jest błąd: Szkoda, że artykuł zupełnie pomija kwestie dostępu RMW oraz użycie volatile - dwie kluczowe sprawy. http://mikrokontrolery.blogspot.com/2011...

    Artykuły   08 Mar 2022 00:35 Odpowiedzi: 18    Wyświetleń: 2688
  • Atmega8 - Timer1 nie odlicza czasu przy kwarcu 16MHz i preskalerze 64

    Zmienna sek powinna być volatile: http://mikrokontrolery.blogspot.com/2011... ssek natomiast zrób statyczną w funkcji przerwania: unsigned tam gdzie liczby nie będą ze znakiem. Wprawdzie ani godziny, ani minuty, czy też sekundy nie przekroczą maksymalnych ich wartości, ale porządek warto mieć. Poza tym, taktujesz swój mikrokontroler...

    Mikrokontrolery AVR   08 Gru 2014 22:35 Odpowiedzi: 7    Wyświetleń: 1065
  • LPC1769 - DMA nie działa z |=, działa z =; UART TX w FreeRTOS

    Co więcej, jeśli chciałbym zrobić prymitywną synchronizację za pomocą flagi volatile, to też przestają działać przerwania od DMA (cała reszta programu chodzi). EDIT: przy synchronizacji flagą jakimś sposobem gubione jest pierwsze przerwanie, więc jeśli za pierwszym razem nie czekam na flagę, to potem już idzie, tyle że się trochę UART sypie - po 14tu...

    Mikrokontrolery ARM   29 Cze 2012 19:35 Odpowiedzi: 3    Wyświetleń: 2066
  • [atmega8] [atmega8][C] - Timer0 odlicza za szybko przy 8MHz, jak ustawić preskaler?

    Nie chcę grać roli lokalnego guru (zwłaszcza korzystającego z cudzych stron WWW), ale widzę następujące błędy: F_CPU nie defniuje się w kodzie -> http://mikrokontrolery.blogspot.com/2011... Twoje zmienne używane w przerwaniu powinny być volatile -> http://mikrokontrolery.blogspot.com/2011... Nie...

    Mikrokontrolery Początkujący   22 Lip 2013 10:32 Odpowiedzi: 8    Wyświetleń: 1245
  • RC5 atmega8 przypisanie przyciskowi konkretna funkcję

    1. Komentuj bogato swój własny kod, bo sam się w nim pogubisz, a i nam trudniej analizować, nie wiedząc co chcesz w danym fragmencie zrobić. 2. deklarujesz zmienną globalną cod , w przerwaniu nadajesz jej wartość cod=code : 2a. ale jej nie używasz w pętli głównej i nigdzie indziej - do czego więc jest? 2b. aby ją wykorzystać w pętli głównej cod musi...

    Mikrokontrolery AVR   04 Sty 2012 03:05 Odpowiedzi: 1    Wyświetleń: 1010
  • Zmienne globalne wykorzystywane przez przerwania i inne.

    Dla przyszłych czytelników tego tematu - warto przeczytać: http://mikrokontrolery.blogspot.com/2011...

    Mikrokontrolery Początkujący   28 Kwi 2021 13:48 Odpowiedzi: 47    Wyświetleń: 2838
  • Atmega328p - Odczyt potencjometrów z przerwaniami, wartości 0-255

    Próbowałem kilka dni uruchomić FreeRunning - niestety bez skutku. Stwierdziłem, że może lepie pójdzie mi z Timerem ale tutaj też klapa. Czy ktoś mógłby mi "łopatologicznie" wyjaśnić gdzie popełniam błąd? Teraz mam taką sytuację, że tylko raz dokonywany jest pomiar i wyświetlony, w dodatku na obu liniach LCD. [syntax=c] #define wej_2 PC2 #define wej_3...

    Mikrokontrolery Początkujący   20 Lut 2020 21:14 Odpowiedzi: 14    Wyświetleń: 1113
  • ATmega8A - Problem z przerwaniem od przetwornika ADC

    Witam. Po dość długim czasie postanowiłem powrócić do programowania AVR ze względu na mały projekt który planuję w niedalekiej przyszłości. Zaopatrzyłem się w oprogramowanie, mikrokontroler i do dzieła. Po całym dniu oprogramowywania różnych peryferiów utknąłem na ADC. Otóż mam taki problem, że nie działa mi procedura obsługi przerwania od ADC umieszczona...

    Mikrokontrolery AVR   24 Sty 2017 06:56 Odpowiedzi: 9    Wyświetleń: 987
  • Problem z przerwaniami w ESP32 pochodzącymi z transoptora PC817C

    Witam, jak w temacie, mam problem z wykrywaniem przerwań od transoptora PC817C. Napięcie to 3.3V a emiter transoptora (nóżka nr. 3) mam podłączoną do ESP32 z pinem GPIO35, z zewnętrznym pulldownem w postaci rezystora 10K Ω podłączonym do GND. Ustawiłem ten pin jako INPUT a tryb przerwania jako FALLING. ESP32 wykrywa przerwanie ale nie jest synchroniczne,...

    ESP8266 i ESP32   26 Kwi 2021 17:06 Odpowiedzi: 12    Wyświetleń: 1527
  • [atmega8] [atmega8][c] - Timer0 nie zmienia wartości zmiennych licznik i czas

    1. Do tego co napisał Fredy wyżej: http://mikrokontrolery.blogspot.com/2011... 2. Zmienną akt_wyswietlacz zdefiniuj sobie jako lokalną statyczną w funkcji przerwania. 3. F_CPU definiuj w opcjach, a nie w kodzie: http://mikrokontrolery.blogspot.com/2011... 4. W jakim celu zerujesz TCNT2 w przerwaniu...

    Mikrokontrolery AVR   20 Gru 2012 00:39 Odpowiedzi: 4    Wyświetleń: 1293
  • [STM32][STM32F407] - [DMA][USART]złączenie dwóch kanałów USART, wysłanie trzecim

    Na 99% nie. Można kombinować z auto-reload i transmisją jednego bajtu, o ile uda się przekonać DMA, że docelowy UART jest pamięcią, a nie peryferialem i o ile będziesz miał pewność, że nigdy dane nie będą równocześnie nadchodziły w takim tempie, żeby zapchać nadajnik. Czyli: nawet gdyby się udało, to jest to rozwiązanie wysoce niepewne i zawodne. Co...

    Mikrokontrolery ARM   19 Cze 2013 20:58 Odpowiedzi: 4    Wyświetleń: 2499
  • [STM32F103] Implementacja transmisji przez UART w przerwaniach

    Witam, Pracuje nad kodem programu do komunikacji przez UART (mikrokontroler <-> komputer) i zastanawiam się nad sposobem implementacji w przerwaniach. Na razie zrobiłem to w taki sposób: - Nadawanie danych wykonuje w taki sposób, że w programie głównym zmieniam w wskaźniku adres początku tablicy którą aktualnie przesyłam przez UART, w przerwaniu...

    Mikrokontrolery ARM   06 Lip 2018 13:06 Odpowiedzi: 3    Wyświetleń: 711
  • Arduino IDE i ESP32: Jak ustawić przerwanie co 2 ms z timerem sprzętowym?

    Zapytaj bota Bardzo proszę. Inicjalizacja timera : Funkcja timerBegin(frequency) tworzy i uruchamia timer z określoną częstotliwością. W tym przypadku ustawiamy częstotliwość na 500 Hz, co odpowiada okresowi 2 ms. 2. Przypisanie funkcji obsługi przerwania : Za pomocą timerAttachInterrupt(timer, &onTimer) przypisujemy funkcję onTimer jako obsługę...

    Arduino   19 Lut 2025 12:57 Odpowiedzi: 5    Wyświetleń: 261
  • Nano i Micro - Błędne wartości w zmiennych volatile (wielobajtowych)

    Sądzę, że problem pojawia się gdy przerwanie zostanie wywołane w trakcie zapisu lub odczytu zmiennej z RAM Bardzo słusznie sądzisz. 1. Czy jest to normalne zachowanie, czy raczej efekt źle skonfigurowanego środowiska Arduino? Nie ma pojęcia jak się zachowuje Arduino, bo nie używam, ale podejrzewam, że podobnie jak C czyli sam musisz się przed tym zabezpieczyć....

    Arduino   26 Lip 2016 16:55 Odpowiedzi: 51    Wyświetleń: 3423
  • tiny87 - problem z przerwaniami w symulatorze AVR Studio 4.19

    Witam 1. Poprzedź deklarację zmiennej "i" słowem "volatile". 2. Spróbuj ustawić rejestry, dotyczące INT0/1, na symulację poziomem logicznym zamiast zboczem narastającym.

    Mikrokontrolery AVR   15 Mar 2017 20:55 Odpowiedzi: 12    Wyświetleń: 1038
  • [Atmega8][C/Eclipse] - dekrementacja zmiennej w przerwaniu

    Próbowałem dekrementować tą zmienną w przerwaniu co sekundę ale nie działa. Bo nie zdefiniowałeś jej jako volatile: http://mikrokontrolery.blogspot.com/2011... Po za tym, jeżeli piszesz że coś Ci nie działa, to pokaż cały program.

    Mikrokontrolery AVR   28 Wrz 2012 12:28 Odpowiedzi: 7    Wyświetleń: 2181
  • Zliczanie impulsów w przerwaniach - Arduino, błędne wartości impulsów

    Witam wszystkich! Mam problem, otóż stworzyłem prosty projekt, którego zadaniem jest wyświetlanie temperatury/wilgotności z DHT-11 na wyświetlaczu i zliczanie impulsów. Niestety, coś jest nie tak - zliczane są jakieś dziwne wartości, przypuszczam, że błąd wynika z mojej niewiedzy, lub z jakiegoś błędu w składni. Przerwanie działa poprawnie - zapala...

    Arduino   22 Paź 2017 20:28 Odpowiedzi: 21    Wyświetleń: 2709
  • Konfiguracja ADC w przerwaniach na XMEGA - atxmega128A3U, wynik = 0 na LCD

    Rozumiem że w trybie freeruning częstotliwość próbkowania będzie taka sama? Pamiętaj też, że przy zmiennych do których dostęp nie jest atomowy (np. uint16_t) istnieje konieczność zapewnienia atomowości przy możliwym jednoczesnym dostępie z dwóch wątków (gównego i ISR). Także dostęp w kodzie programu do adc_data powinieneś zamknąć w ATOMIC_BLOCK. tzn....

    Mikrokontrolery   24 Wrz 2017 10:11 Odpowiedzi: 11    Wyświetleń: 828
  • [Atmega32][c] problem z komparatorem i przerwaniami zewn.

    Witam Sprawdź czy masz funkcje obsługujące przerwania mogą być nawet puste, np: dla Atmegi 8: ISR(INT0_vect) { //coś } ... ISR(INT1_vect) { //coś } jeśli masz to zaremuj ciało tych funkcji, być może masz jakieś delay (za długo je obsługujesz). Problemem mogą być to też zmienne, które powinny być zadeklarowane jako...

    Mikrokontrolery AVR   15 Kwi 2010 10:31 Odpowiedzi: 9    Wyświetleń: 1317
  • Atmega32 C - klawiatura matrycowa 4x4 na przerwaniach

    Nie no to jakas sieczka jest delay ms(20) w przerwaniu? ta obsługa to chyba długa praca typu aby działało. Obsługę takiej klawiatury najlepiej zrobić w przerwaniu jakiego timera, np co 50ms. 2 kolejne równe odczyty równoznaczne z wciśniętym klawiszem. Zadem problem dorobić opcje dla długiego przytrzymania klawisza. n kolejnych równych odczytów. A reszta...

    Mikrokontrolery AVR   26 Wrz 2012 13:19 Odpowiedzi: 16    Wyświetleń: 4938
  • [Atmega16] [C] Obsługa przerwań dla odtwarzania melodii MIDI

    Wiem o tym, natomiast usunąłem w ten sposób zmienne volatile, docelowo tak nie będzie, to tylko w celach testów, jak tylko wrócę, narysuję algorytm. :D:D:D A w czym Ci przeszkadzały? Dla testów także nieodpowiednie. TMF pisząc: ... zmienne, które wykorzystujesz w przerwaniu są volatile, co sugeruje, że jeszcze gdzieś z nich korzystasz. ... ...miał...

    Mikrokontrolery AVR   18 Cze 2011 20:57 Odpowiedzi: 18    Wyświetleń: 1860
  • STM32 Nucleo F103 - Błąd kompilacji przy odbiorze UART w przerwaniach

    ze zmęczenia nie dopatrzyłem się że zrobiłem tylko definicję preprocesora bez deklaracji ;) Ale tym niczego nie zdefiniowałeś tylko powiedziałeś aby preprocesor zastąpił slowo "UART_BUFOR" słowem "32" tekstowo. Jak w pliku .c zrobiłeś volatile char UART_BUFOR[UART_BUFOR_rozmiar]; to zastanów się co się z tym stanie i czy da się to skompilować. Jeżeli...

    Mikrokontrolery ARM   28 Wrz 2017 22:39 Odpowiedzi: 13    Wyświetleń: 1545
  • Atmega32, C - Przerwania INT0 i INT1 - Co tu nie gra?

    Zmienną TRYB nie dałem jako volatile, dlatego że wykonuję na niej operacje również w pętli głównej, a z tego co wiem volatile powinny być tylko te które wywoływane są przerwaniach. Podstawowy błąd: http://mikrokontrolery.blogspot.com/2011...

    Mikrokontrolery   18 Lis 2013 20:28 Odpowiedzi: 20    Wyświetleń: 3618
  • Arduino Mega2560 - robot, sterowanie przerwaniami silnikami DC

    Wgraj poniższy program, otwórz monitor portu, kręć silnikiem który ma eknoder podpięty do pinu 2(lub impulsuj ręcznie) i patrz co się dzieje. Jak zrozumiesz jak to działa to reszta programu to pestka. [syntax=cpp]const int dioda=13; volatile int licznik; void setup() { pinMode(2, INPUT_PULLUP); attachInterrupt(0, zliczaj, FALLING); pinMode(dioda, OUTPUT);...

    Arduino   27 Cze 2015 20:43 Odpowiedzi: 22    Wyświetleń: 2202
  • [C] Nierówne zliczanie impulsów w przerwaniach INT0 i INT1

    Rozwiązanie 1 jest złe. Gdy sygnał A przyjmie poziom aktywny (niski), obsłużysz przerwanie a po chwili sygnał B poziom aktywny w sytuacji gdy A cały czas ma poziom niski, to ne zauważysz sygnału B. Podobnie gdy B aktywny, obsługa przerwania, B i A aktywny. W takich sytuacjach będziesz widział tylko jeden z sygnałów. Co do gubienia przerwania INT 1,...

    Mikrokontrolery AVR   27 Paź 2018 14:56 Odpowiedzi: 20    Wyświetleń: 1407
  • atmega8 - możliwe przyczyny dziwnego zachowania pamięci w programie z przerwaniami

    Przerwanie nie modyfikuje SP (z punktu widzenia przerwanego kodu). Wartość SP po powrocie z przerwania jest taka sama, jak przed wywołaniem. I tu właśnie problem, bo też tak myślałem, dlatego pisałem wcześniej że błędu w logice nie ma. Mój kod nie jest błędem. Dodałem brakujące CLI i kod od godziny chodzi bez zarzutów. Spójrz na to: zapamiętaj SREG...

    Mikrokontrolery AVR   21 Sie 2015 09:34 Odpowiedzi: 26    Wyświetleń: 1473
  • Jak używać muteksów w AVR do ochrony zmiennych przed przerwaniami?

    takie coś działa bez volatile. robiłem coś takiego do obsługi gps i w mainie był parser/interpreter bufora. działało. (ostatecznie całość jest bez bufora i w przerwaniu)

    Mikrokontrolery AVR   08 Lis 2009 11:03 Odpowiedzi: 16    Wyświetleń: 2211
  • Atmega8 AVRgcc - problem z przerwaniami USART i TIMERa, LED na PB1

    Witam. Problem byc moze jest w deklaracji zmiennej global.Uzyj dyrektywy volatile unsigned int global. To powinno pomoc. pozdr.

    Mikrokontrolery   22 Wrz 2005 08:45 Odpowiedzi: 8    Wyświetleń: 3125
  • Raspberry Pi - jak zrobić przerwalny timer bez użycia funkcji Sleep?

    Znalazłem coś takiego: [syntax=c] #define _POSIX_C_SOURCE 200809L #include <unistd.h> #include <signal.h> #include <time.h> #include <errno.h> #define TIMEOUTS 16 #define TIMEOUT_SIGNAL (SIGRTMIN+0) #define TIMEOUT_USED 1 #define TIMEOUT_ARMED 2 #define TIMEOUT_PASSED 4 static timer_t timeout_timer; static volatile sig_atomic_t...

    Raspberry Pi i inne SBC   19 Lut 2017 17:31 Odpowiedzi: 11    Wyświetleń: 2361
  • Arduino: Obsługa wielu czujników i diod bez użycia delay i z przerwaniami

    Przyznam, że 99,99% moich programów zaczyna się od napisania przerwań od timera, najczęściej 1ms (w 8051 było to 10ms bo był koszmarnie wolny i rozbudowane przerwania wywyływane co 1ms zużywały 50% czasu procka). Do tej wypowiedzi. Nie uzależniasz przerwania od specjalnego pinu procesora, który bezwzględnie wymusza wykonanie konkretnych akcji. Tworzysz...

    Arduino   04 Sty 2018 00:34 Odpowiedzi: 115    Wyświetleń: 5769
  • ATMEGA8 – obsługa dwóch ADC na przerwaniach, brak wywołania ISR po konwersji

    http://obrazki.elektroda.pl/6046366100_1... przecież mam ustawione volatile uint16_t adc2 albo czegos nie rozumie albo nie wiem :P wybacz

    Mikrokontrolery AVR   16 Lut 2015 09:45 Odpowiedzi: 17    Wyświetleń: 1881
  • [avr-gcc] Kiedy używać zmiennej volatile w programowaniu mikrokontrolerów AVR?

    No po prostu w RAMie, nie mowmy juz w jakim, to nas zreszta nie interesuje, jesli mamy mikrokontroler z pamiecia wewnetrzna avrki chyba maja, prawda?? :wink: Wlasnie tak zostanie to wykonane. Dane beda w rejestrze i tam bede sie "dodawac", natomiast w samej pamieci bedzie siedziec stara wersja. Dopiero po zakonczeniu kompilator prawdopodobnie zapisze...

    Mikrokontrolery   14 Lis 2005 12:26 Odpowiedzi: 6    Wyświetleń: 7924
  • Atmega2560: Niepoprawne wartości z Timer1 w przerwaniu INT0 - jak to naprawić?

    Dzień dobry Od dwóch dni walczę z obsługą TIMERA1 na Atmega2560 w przerwaniu external INT0. Na wejściu INT0 mierzę krótkie pakiety danych, cały jeden pakiet ma ok 8ms, gdzie najkrótszy bit ma ok. 40us Timer1 mam ustawiony na preskaler 8 (2Mhz), wejście INT0 mam ustawione na zbocze "Any" liczenie zaczynam od TIMERA1 = 0 W przerwaniu INT0 pobieram aktualną...

    Mikrokontrolery Początkujący   20 Lis 2024 11:19 Odpowiedzi: 5    Wyświetleń: 153