zmienna przerwaniu

Znaleziono około 6891 wyników dla: zmienna przerwaniu
  • STM32F100RB (Discovery) - Zmienna modyfikowana w przerwaniu nie zapmiętuje wart.

    Albo stos, albo watchdog.

    Mikrokontrolery ARM   28 Paź 2013 11:25 Odpowiedzi: 11    Wyświetleń: 1905
  • [C] Dlaczego zmienna `count` w przerwaniu nie jest zerowana w C?

    Jest to zmienna statyczna przypisanie zera następuje tylko przy 1 wywołaniu funkcji.

    Mikrokontrolery   02 Kwi 2010 15:26 Odpowiedzi: 7    Wyświetleń: 1754
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (2min)...
  • Dlaczego zmienna alarm resetuje się po przerwaniu na Atmedze16?

    dawid512 : ?. "CLI" blokuje wywoływanie przerwań, ale nijak nie przekłada sie na równoważność z wyjściem z funkcji. dreidel : Funkcji obsługi przerwania napisanej w C nie opuszcza się przez reti - wtedy tylko możesz spowodować przepełnienie stosu (na stosie zawsze są odkładane co najmniej 2 rejestry), zresztą powracasz nie do miejsca, w którym nastąpiło...

    Mikrokontrolery AVR   19 Maj 2009 22:05 Odpowiedzi: 3    Wyświetleń: 1728
  • REKLAMA
  • [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ń: 1617
  • Czy odczyt stanu pinu w przerwaniu timera jest poprawny? Zmienna volatile

    Jak najbardziej jest poprawne, tyle że zauważ że w obydwu przypadkach nie masz zrealizowanej programowej eliminacji drgań styków

    Mikrokontrolery AVR   06 Maj 2010 21:56 Odpowiedzi: 12    Wyświetleń: 1568
  • REKLAMA
  • Keil uVision C: Zmienna 'nr_trybu' resetuje się po przerwaniu timera 80C517

    Czy po ustawieniu nr_trybu = 0 w przerwaniu nie powinieneś zerować timer_count ? Albert

    Mikrokontrolery   20 Maj 2012 02:10 Odpowiedzi: 8    Wyświetleń: 1138
  • 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ń: 1377
  • Jak zrealizować inkrementację zmiennej w przerwaniu INT0 na ATtiny2313?

    Napisz tak: Dim Zmienna As Byte Zmienna = 0 Config Intx = Low Level | Rising | Falling [ | Change ] 'Konfiguracja reakcji na sygnał przerwania 'za x podstaw nr przerwania wybierz jeden ze sposobów pobudzenia kocówki uC Enable Interrupts 'Uruchomienie przerwań globalnych Enable Intx 'Uruchomienie przerwania INTx On Intx Obsluga_przerwania 'wskazanie...

    Mikrokontrolery   02 Lut 2006 15:32 Odpowiedzi: 4    Wyświetleń: 3672
  • REKLAMA
  • STM32F4: Jak opuścić funkcję odczytu HTU21D po długim czasie oczekiwania?

    Do warunków while dodaj zmienna zerowana w przerwaniu gdy minie czas.[syntax=c].. funkcja(..) { zmiennanodczasu = jakis_czas; ... while(zmiennaodczasu && (twój warunek)) {..} ... if (zmiennaodczasu == 0) { //obsluga błedu ;} }[/syntax]

    Mikrokontrolery   02 Paź 2015 15:27 Odpowiedzi: 2    Wyświetleń: 480
  • Jak zwiększyć wartość zmiennej licznik w programie C przy zwarciu PD1?

    Hej, Jak zrozumiałem zmienna zmieniona w przerwaniu powinna być widoczna dla funkcji w pętli głównej. W takim razie zdeklaruj ja jako: volatile unsigned char licznik; I chyba bedzie OK. Pozdrowienia

    Mikrokontrolery   28 Maj 2005 12:56 Odpowiedzi: 7    Wyświetleń: 1194
  • Atmega8 LM35 - Termometr - jak zdeklarować dziesiątki i jedności ?

    Proponuje umieścić deklarację typu: volatile uint8_t DZIESIATKI, JEDNOSTKI; przed funkcją main. Tak zadeklarowana zmienna powinna być widoczna w przerwaniu oraz każdej innej funkcji.

    Mikrokontrolery AVR   09 Lut 2015 19:04 Odpowiedzi: 2    Wyświetleń: 846
  • [C] Jak ustawić przerwanie Timera 2 co 1 ms na DS89C450? Wyjaśnienie CYCLE 20

    Program skacze do przerwania co 50ms więc żeby odmierzyć 1s musi skoczyć 20 razy. Poprostu w programie jest zmienna która jest ładowana stałą 20 i odejmuje się w każdym przerwaniu o jeden. Jak dojdzie do zera to jest 1s i cykl się powtarza (znowu jest przypisywane 20). np: co 50ms w przerwaniu: if(zmienna){zmienna--;}... else { zmienna=CYCLE;...

    Mikrokontrolery   07 Lis 2007 16:03 Odpowiedzi: 4    Wyświetleń: 1757
  • Avr studio 6, C - Petla while działa mimo niespełnionego warunku

    Nie masz nawiasu masz średnik od razu, to jest bezsensu. Nie w tym problem - taki zapis jest poprawny; Skoro zmienna jest zmieniana w przerwaniu to obstawiam jak przedmówcy na brak atrybutu volatile.

    Mikrokontrolery AVR   18 Lip 2013 23:03 Odpowiedzi: 9    Wyświetleń: 1623
  • REKLAMA
  • Jak rozdzielić przerwania Timer0 dla dwóch podprogramów w Bascom?

    dobrze, a nie lepiej w przerwaniu napisać warunek, że jeśli zmienna bitowa równa się jeden to robi to a jeśli nie to tamto końćząc podprogram1 zrobisz SET tej zmiennej a kończąc podprogram2 RESET :D

    Mikrokontrolery   22 Sie 2006 20:56 Odpowiedzi: 6    Wyświetleń: 2209
  • [C]Mega32 Przerwania. W przerwaniu dioda ma migać.

    W przerwaniu deklarujesz zmienna liczba, ktora przy inicjacji jest rowna 0. Jest jako static więc jest wyzerowana tylko podczas pierwszego uruchomienia, potem już się "nie zeruje". dodaj na końcu while(1);...nie sprawdzałem częstotliwości przerwań więc zakładam że są w porządku. int main(void){ DDRA=0xFF; // PORT A JAKO WYJSCIE TCCR0 |=...

    Mikrokontrolery   18 Lut 2011 13:27 Odpowiedzi: 5    Wyświetleń: 2073
  • Jak podłączyć ATmega 5V do SRAM 3,3V 23k256 przez SPI?

    Jeżeli zmienna jest globalna, to masz dostęp do niej zarówno w przerwaniu jak i poza ciałem przerwania.

    Mikrokontrolery AVR   20 Paź 2011 20:14 Odpowiedzi: 20    Wyświetleń: 2715
  • Arduino: Jak sterować silnikiem DC z enkoderem o zadany kąt?

    bo dane na porcie szeregowym pojawiają się dopiero po zakończeniu ruchu( domyslam się, że to przez funkcję delay) i to w "bliżej nieokreślonym" języku. Tak jakbym pomylił się w określeniu prędkości w Serial. begin . Drugą częścią komplikacji jest to, że nie ma mam pojęcia ( gdy uda mi się rozgryźć enkoder ) jak opisać ograniczenie obrotu. To co jest...

    Arduino   03 Maj 2020 23:16 Odpowiedzi: 13    Wyświetleń: 4071
  • [C] - Jak sprawdzić czy zmienna zmieniła wartość.

    Oba przykłady podane przez kamil1984 są błędne. Pierwszy, oparty na porównaniu "nowej" i "starej" wartości zmiennej w rzeczywistości nie wykrywa zmiany wartości, bo zapamiętanie "starej" nie ma związku z wykryciem zmiany. Powinno być mniej-więcej tak: [syntax=c]if (x != stary_x) { stary_x = x; odswiez_wyswietlacz(); }[/syntax] W drugim zmienna odliczający...

    Mikrokontrolery Początkujący   12 Lip 2013 12:21 Odpowiedzi: 6    Wyświetleń: 2736
  • Czy kod i schemat do sterowania silnikiem krokowym Atmega32 są poprawne?

    Jeżeli tak zrobisz i nastąpi przypadek, że w momencie w którym licznik będzie miał wartość 125, a warunek który dopisałeś nie będzie spełniony to nie wykona się kod zawarty w instrukcji if, czyli nie wykona się zerowanie zmiennej licznik. W rezultacie zmienna licznik w następnym przerwaniu będzie miała już wartość 126, itd. - i teraz pytanie: Czy to...

    Robotyka Modelarstwo i CNC   17 Kwi 2013 05:51 Odpowiedzi: 11    Wyświetleń: 3204
  • Jak zliczać impulsy z dwóch kontaktronów na ATmega32 w C++?

    Witam . Zadanie jest trywialne . Potrzebujesz 3 zmiennych i dwóch przerwań zewnętrznych plus przerwanie do wyświetlacza. Po starcie procka ustawiasz wartość jednej z zmiennych która będzie równa ilości przerwań wyświetlacza w czasie 10 sekund . Podczas aktywacji przerwania od T1 aktywujesz przerwania od INT0 i INT1 . INT0 zwiększa jedną zmienną a INT1...

    Mikrokontrolery AVR   19 Lip 2010 21:00 Odpowiedzi: 20    Wyświetleń: 2855
  • ATtiny13 - Timer CTC, preskaler 1024, nie reaguje po dodaniu kodu

    Uruchomiłeś: TIMSK0 |= (1<<OCIE0A); przerwanie od porównania a obsługujesz: ISR(TIM0_OVF_vect) przerwanie od przepełnienia. A tak przy okazji: - zmienne zsyp1 i 2 to gdzieś zerujesz? Czy tylko je inkrementujesz aż się przekręcą? - zmienna "CZAS_NA_test" jest niepotrzebna. Równie dobrze mógłbyś w main sprawdzać czy zmienna i>=75 a w przerwaniu...

    Mikrokontrolery AVR   29 Gru 2019 13:48 Odpowiedzi: 9    Wyświetleń: 576
  • [C] Sterowanie serwami przez PWM na Atmega8, obsługa klawiatury przez INT0 – jak poprawić?

    Pytanie stawiane było czemu źle działa Bo jest źle napisane. A najlepiej jechać po innych zwłaszcza po tych co się uczą. Po takich co się uczą nikt nie jeździ. Po takich którzy "chcą" odpowiedzi, ale wiedzą lepiej od odpowiadających - już tak. Freddie Chopin dzięki jakiś konkret co do przerwań, powiedz mi jeszcze czy będę mógł modyfikować wypełnienie...

    Mikrokontrolery AVR   15 Paź 2010 20:57 Odpowiedzi: 11    Wyświetleń: 2777
  • [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ń: 2688
  • Jak napisać licznik impulsów w BASCOM-51 dla AT89C2051 z multipleksowaniem LED?

    robisz sobie zmienna 1bajtową i na przerwaniu od timera (kiedy sie przepełni) inkrementujesz ją( zwiekszasz o 1). Wtedy łaczna ilosc zliczonych impulsów wyniesie zmienna1*256+timer. Piszesz sobie najpierw procedurke ktora wyswietli pojedyncza cyfre, nastepnie piszesz procedurke ktora wyswietli całą cztero cyfrową liczbe. Wyswietlanie robisz w petli...

    Mikrokontrolery   05 Wrz 2006 13:37 Odpowiedzi: 28    Wyświetleń: 6051
  • STM32 - Odczyt kierunku obrotu silnika z enkodera inkrementalnego

    Czy zmienna kierunek jest globalna i volatile? Już po pierwszym przerwaniu powinna przyjąć wartość 1 lub 2, a nie być cały czas 0. Czy zaobserwowałeś zwiększanie wartości zmiennej enkoderA ?

    Mikrokontrolery   10 Cze 2014 11:03 Odpowiedzi: 4    Wyświetleń: 2142
  • [atmega8][C] - timer - zapalanie diody na 10s po przyciśnięciu przycisku.

    1. Zaprogramuj timer w tryb CTC, np. na częstotliwość 100 Hz. W przerwaniu timera: - sprawdź, czy przycisk naciśnięty; jeśli tak - zapal diodę i załaduj wartość 1000 do zmeinnej - "timera programowego". - jeśli zmienna timera ma wartość różną od zera, zdekrementuj ją, a jeśli zdekrementowała się do 0 - zgaś diodę. Razem daje to 5 linii kodu w przerwaniu...

    Mikrokontrolery AVR   10 Wrz 2013 18:59 Odpowiedzi: 15    Wyświetleń: 4002
  • [Atmega8] Atmega8 Bascom - Nadpisywanie zmiennej w przerwaniu int0/int1, reset timer1

    Ten sam kod, który zaprezentowałem w pierwszym poście , natomiast przerwanie wywołane już na nodze portb.0 i działa zmienna nie jest nadpisywana. Cała reszta kodu bez zmian poza zmianą przerwania. Przerwania skonfigurowane prawidłowo. Moze przerwania masz skonfigurowane prawidlowo... ale..... Czy mozesz wyjasnic w jakim celu, w obsludze przerwania...

    Mikrokontrolery AVR   09 Maj 2009 18:31 Odpowiedzi: 14    Wyświetleń: 2845
  • Bascom i wielowątkowość? Jak napisać procedurę?

    Radziłbym Ci zobic tak: Cały PWM zrób na przerwaniu od jakiegoś Timera; nie uzywaj zmiennych typu single, jeżeli częstotliwośc przerwań bedzie odpowiednio szybka wystarczy zmienna typu byte lub word. Obsługe LCD czy przycisków i innych obliczeń zostaw w pętli główne Przykładowy PWM dla portb.3: Gdzie a to jakas amienna a do b podajesz wartosc PWM (0-255)......

    Mikrokontrolery   19 Cze 2006 20:37 Odpowiedzi: 9    Wyświetleń: 2587
  • Jak poprawnie odczytać 10-bitową wartość ADC z rejestrów ADCL i ADCH w C?

    Dobrze. Zmienna value_adc0 nie musi być volatile , chyba, że odwołujesz się do niej jednocześnie w programie głównym i w przerwaniu (przerwaniach).

    Mikrokontrolery   22 Wrz 2007 09:14 Odpowiedzi: 3    Wyświetleń: 1119
  • Jak uzyskać precyzyjne przerwanie 1 kHz na ATmega8 przy 16 MHz?

    Rozumiem że coś w przerwaniu zrobić chcesz, ale ciekawe jak to sprawdzasz (tę dokładność) Może najpierw zwiększasz w kodzie zmienna a potem dopiero każesz ustawiac jakiś pin którym to mierzysz? Może na odwrót, najpierw pin a potem zwiekszanie zmiennej bo zwiększanie może się czasowo różnić w zależności od wartości.

    Mikrokontrolery AVR   26 Cze 2016 16:44 Odpowiedzi: 32    Wyświetleń: 2886
  • [AVR][C] Multipleksacja 8 segmentowego LED - problem

    Źle podchodzisz do problemu - zmienna i (czyli numer wyświetlanej cyfry) powinna być zmienną globalną, którą w przerwaniu od timera zwiększasz, a następnie wykonujesz blok switch (i) { ... }. Oczywiście delay w przerwaniu to "bluźnierstwo" :) Preskaler ustaw sobie na 64, wtedy przerwanie od timera dostniesz ok. 400x na sekundę, czyli odświeżanie całego...

    Mikrokontrolery   07 Sty 2009 09:03 Odpowiedzi: 7    Wyświetleń: 3612
  • Attiny13a [BASCOM] - Zachowanie zmiennej po resecie WATCHDOG

    Wybudzaj przerwaniem watchdoga nie resetem. Ja bym to zrobił tak (w C, w bascomie pewnie też tak się da): W głównej pętli: - konfiguracja watchdoga z przerwaniem na jak najdłuższy czas- - wejście w power down - pętla nieskończona z ciągłym przechodzeniem do idle. W przerwaniu watchdoga: - wyzerowanie watchdoga - inkrementacja zmiennej odliczającej od...

    Mikrokontrolery   06 Lut 2015 15:30 Odpowiedzi: 3    Wyświetleń: 1176
  • Jak poprawić działanie enkodera w projekcie termostatu Arduino?

    Weź pod uwagę takie problemy: 1. zminimalizuj drgania styków przycisków (tzw. debouncing) programowo lub sprzętowo używając kondensatorów 2. przerwanie od enkodera wywołuj stanem FALLING lub RISING (Ty masz LOW co jest bardziej podatne na drgania przycisku zwieranego do masy) 3. zmienna globalna "time" użyta w przerwaniu powinna być typu volatile (Ty...

    Arduino   07 Mar 2019 21:10 Odpowiedzi: 34    Wyświetleń: 4746
  • PIC16F883 - Jak zapalić diodę po naciśnięciu uSWITCH?

    AVE... Co do kodu, to nie wiem, bo jestem podchmielony lekko winem herbacianym... Program podziel na dwa kawałki: pętlę główną i przerwania. W pętli głównej za pomocą if-then sprawdzasz sobie jakieś tam flagi bitowe związane z przyciskami. I zachowujesz się adekwatnie, w sensie zmieniasz status zapalenia diod. W przerwaniu sprawdzasz po kolei dwie rzeczy:...

    Mikrokontrolery PIC   08 Sie 2013 12:38 Odpowiedzi: 30    Wyświetleń: 5448
  • ATMEGA88 - Jak zwiększyć zakres PWM do 0-1023 w języku C?

    Zrób to sobie programowo np. weź timer0 i ustaw podstawę czasu tak aby co określony czas timer zgłaszał przerwanie czy to przepełnienia czy porównania w tym przerwaniu umieść np. taki kod [syntax=c] //gl_OCR1 to zmienna globalna pełni funkcje identyczną jak OCR1 uint16_t volatile gl_OCR1 ; ISR(wektor) { static uint16_t zm; if(zm<gl_OCR0) PORTA&=~(1<<PA0);...

    Mikrokontrolery AVR   13 Maj 2017 13:36 Odpowiedzi: 5    Wyświetleń: 1440
  • [GCC] -Os - czyli jak zrobic, zeby gcc nie zjadalo funkcji?

    szelus : nie w tym problem - zmienne w pamięci i tak muszą zostać zaktualizowane, chciaż dodanie volatile powinno zapewnić kolejność aktualizowania zmiennych. Bardziej obstawiał bym na błąd z czasem istnienia zmiennych - zmienna checksum jest tworzona na stosie (zmienne lokalne, których adres jest potrzebny nie są umieszczane w rejestrach), więc jej...

    Mikrokontrolery AVR   12 Lis 2008 13:53 Odpowiedzi: 10    Wyświetleń: 2370
  • 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ń: 1476
  • 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ń: 1267
  • Jak zaprojektować stoper na AT89C51 z wyświetlaniem binarnym?

    a wiec tak zakładamy że przy up pracuje kwarc 12MHz. jeśli nie wymagasz dużej dokładnośći to timer ustawiasz w tryb 1 ( 16 bit ) tak aby generował przerwanie np: co 10ms; przy 12MHz cykl wynośi 1us czyli przerwanie będzie co 10000 cykli ( 10000 us = 10ms ). wartość po której następuje przerwanie to zmiana z 65535 na 0000. czyli do rejestrów licznika...

    Początkujący Elektronicy   23 Maj 2006 18:37 Odpowiedzi: 6    Wyświetleń: 1203
  • [Atmega8] Jak zmierzyć czas stanu wejścia z dokładnością 100ms na Atmega8 w C?

    Odliczy dokładnie: 1/1M = 0,000001 co 1024 tyknięcie zegara impuls czyli z racji że 100ms to 0.1s więc: 0.1/0.001024 = 97.65625 impulsów Więc w rzeczywistości odliczy 99.328ms. Więc możesz w przerwaniu dać funkcję która co 97 przerwanie zwiększa zmienną o 1. Potem wystarczy porównać jaką wartość ma ta zmienna np. w switch() i gotowe.

    Mikrokontrolery AVR   06 Sie 2011 18:22 Odpowiedzi: 53    Wyświetleń: 7615
  • Jak dokładnie odmierzyć 1 sekundę na ATmega8 bez zewnętrznego zegara?

    Wewnętrzny zegar jest na tyle mało dokładny, że aby można było nim coś zmierzyć, należało by ustalić jego dokładną częstotliwość porównując z jakimś wzorcem, po czym zapisać poprawkę do osccal albo uwzględnić to w czasie przepełnienia t1 - a i tak dokładność nie będzie duża ze względu na wachania częstotliwości. Warto poczytać w dokumentacji jaką dokładnie...

    Mikrokontrolery AVR   23 Gru 2009 20:44 Odpowiedzi: 11    Wyświetleń: 1610
  • Zasilacz laboratoryjny z uC - problem z PWM i ustawieniem timera w C

    Co może być przyczyną takiego zachowania się układu ? Regulacja powinna być co 5/256 = 0.019 V. Spróbowałbym zacząć od debouncing'u. Styki mają przecież jakieś drgania. Zamiast tego możesz na próbę pominąć sprawdzanie styków, a zamiast tego w pętli for zmieniać wartość OCR1A z jakimś dużym opóźnieniem, przykładowo: //na początku dołącz #include <util/delay.h>...

    Mikrokontrolery AVR   27 Sty 2011 23:29 Odpowiedzi: 9    Wyświetleń: 2298
  • ATmega8 [C] - Wyświetlanie wartości na wyświetlaczu 7-segmentowym

    Nie wiem w jakim celu wyłączasz timer na czas obsługi przycisku. Procedura obsługi przerwania powinna być jak najkrótsza. Niepotrzebnie wywołujesz za każdym razem funkcję setNum(). Warto byłoby ją wyrzucić do pętli głównej i wykonywać tylko w momencie zmiany prędkości. Utwórz sobie tablicę trzech elementów, w których przechowywał będziesz kolejne cyfry....

    Mikrokontrolery AVR   02 Maj 2014 11:26 Odpowiedzi: 8    Wyświetleń: 2043
  • AVR - [C] Dlaczego zmienna LED w przerwaniu jest statyczna?

    Witam, czytając książkę "Język C dla mikrokontrolerów AVR" natknąłem się na stronie 313 na przykład migania diodami led w przerwaniu od timera. Bardzo proszę o wytłumaczenie mi dlaczego w przerwaniu definiowana jest na początku zmienna LED, z tego co rozpisałem sobie na kartce wynika że stan portu b nigdy sie nie zmieni...(chyba ze definicja bylaby...

    Mikrokontrolery AVR   27 Sty 2013 14:52 Odpowiedzi: 1    Wyświetleń: 1548
  • [AVR] [AVR][C] - Pilot IR Olympus RM-1 na ATTiny2313 nie działa z GCC

    no to ja mam znow pomysl na garsc poprawek [; w przerwaniu: 1. if (nr > 1) {nr = 0;} jak widze nr oznacza u ciebie jakby 'faze' danego bitu. zamiast wiec kombinowac z ta cala inkrementacja i sprawdzaniem, zrob po prostu XOR'a: nr^=1; tym sposobem bedzie ta zmienna rowna na zmiane 1 i 0. niemniej jednak zauwaz, ze twoja zmienna nr to jest ... ostatni...

    Mikrokontrolery AVR   09 Paź 2008 23:27 Odpowiedzi: 18    Wyświetleń: 3213
  • Zapis do EEPROM w Bascomie: przerwanie co 3,5ms, czas zapisu 4ms - czy działa?

    Czy jeżeli w Bascomi-e, w przerwaniu, ............ ......... czy zapis będzie trwał, a procesor w tym czasię będzie już wykonywał inne rozkazy? Zapisywana jest zmienna bajtowa. Wpis wartości zmiennej do EEPROM nie odbywa sie samoczynnie, jak powiedzmy przesączanie wody przez lejek(!). Tego wpisu dokonuje processor; nie ma tam pośrednika (chyba jedynie...

    Mikrokontrolery AVR   10 Sty 2012 22:39 Odpowiedzi: 7    Wyświetleń: 2129
  • Kod w C do jednorazowej konwersji AC na Atmega8 i zapis do zmiennej

    Witam... Tak można... Ale pamiętaj o sumie przy ustawianiu inaczej wyzerujesz sobie cały rejestr... Tak w tym przypadku nie musisz (ale możesz) się martwić odczytem osobnych rejestrów (H i L) i ich kolejnością... Oczywiście zmienna do której wczytujesz musi mieścić 10-bitów... Zabawa w czytanie rejestrów ADCH lub ADCL ma sens jeżeli przesówasz wynik...

    Mikrokontrolery   10 Sty 2012 20:48 Odpowiedzi: 14    Wyświetleń: 2985
  • [lpc2142] LPC2142: Zawieszanie się ARM przy wywołaniu funkcji w przerwaniu wektoryzowanym

    Ej, nie przesadzajcie - to było 2 lata temu... Pozatym asm które pokazałeś w zasadniczej części jest identyczne i POPRAWNE: 270: e24ee004 sub lr, lr, #4 274: e92d580f push {r0, r1, r2, r3, fp, ip, lr} [...] 2d0: e8fd980f ldm sp!, {r0, r1, r2, r3, fp, ip, pc}^ 1fc: e24ee004 sub lr, lr, #4 200: e92d500f...

    Mikrokontrolery ARM   15 Mar 2010 13:42 Odpowiedzi: 14    Wyświetleń: 2930
  • Kilka pytań odnośnie najlepszych praktyk programowania

    Witam, 2) Jeżeli chcę w przerwaniu ustawić flagę , czyli zmienną typu char, to czy szybciej będzie, jeśli zrobię to jako flaga=1; czy flaga++; ? Oczywiście zdaje sobie sprawę, że druga opcja może spowodować po jakims czasie przepełnienie i wyzerowanie się mi tej flagi, ale sytuacja jest bardzo rzadka, więc nie obawiam się takiego przypadku. Przerwanie,...

    Mikrokontrolery   25 Wrz 2016 22:03 Odpowiedzi: 19    Wyświetleń: 1359
  • [Attiny25] [Attiny25][C] Program nie reaguje na przycisk, dioda stale świeci

    Zacznijmy od tego, że: Przycisk podpięty do INT0 (PB2) i do +5V. Jaki według Ciebie jest poziom na wejściu INT0, gdy przycisk nie jest naciśnięty? Zmienna status także powinna być volatile. Drobiazg: cli() i sei() w przerwaniu są zbędne, ponieważ: The I-bit is cleared by hardware after an interrupt has occurred, and is set by the RETI instruction to...

    Mikrokontrolery Początkujący   03 Lis 2013 22:46 Odpowiedzi: 8    Wyświetleń: 1404