zmienna volatile

Znaleziono około 2838 wyników dla: zmienna volatile
  • 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ń: 1362
  • REKLAMA
  • 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ń: 1556
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (2min)...
  • 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ń: 1431
  • Czy zmienna `volatile uint8_t` ma domyślną wartość 0?

    gcc zmienne globalne i statyczne przypisuje do zera. Jest to zdefiniowane w standardzie :) Optymalizator przypisanie do 0 oleje (w sensie nie zrobi go), ale jeżeli jest wyłączony to marnuje to nieco pamięć programu. I jak napisał sulfur, czy jest to char czy uint8_t, czy jest też volatile czy extern - nie ma to nic do rzeczy

    Mikrokontrolery   24 Paź 2010 22:17 Odpowiedzi: 27    Wyświetleń: 2964
  • Wszystko o ARM (LPCxxxx) i programowaniu w asm i C.

    1. Pooglądaj sobie nagłówek inttypes.h 3. Wewnątrz funkcji zmienna volatile będzie traktowana jako zwykła - ze wszystkimi konsekwencjami. 4\/3!!

    Mikrokontrolery ARM   28 Lis 2009 17:35 Odpowiedzi: 141    Wyświetleń: 17299
  • REKLAMA
  • Atmega 1280: Czy BUFF_SIZE 8 jest za duże dla UARTBuffer?

    volatile unsigned char UART0recv, UARTBuffer[BUFF_SIZE], UARTCount, UARTGet, rx_counter; A czy przypadkiem tylko pierwsza zmienna będzie volatile przy takiej deklaracji?

    Mikrokontrolery AVR   27 Lut 2010 07:32 Odpowiedzi: 13    Wyświetleń: 1756
  • AVR Studio: Zmienna volatile int nie zeruje się na rzeczywistym układzie

    To nie żaden problem z kompilatorem/debugerem tylko niestety problem ze zrozumieniem co i jak powinno działać. Po pierwsze nie wyłączaj żadnej optymalizacji bo po co??? Chyba, że tobisz ten program, żeby działał po wsze czasy tylko w symulatorze to wtedy możesz się bawić w takie tam. Analizując od góry, po co ci: volatile char jjj; tzn po co to volatile...

    Mikrokontrolery AVR   16 Maj 2010 15:30 Odpowiedzi: 7    Wyświetleń: 1314
  • 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ń: 1443
  • [ATtiny2313] [C] Brak reakcji na dane z RS232 przy komunikacji SDIO

    Jak zadeklarujesz zmienna znak jako volatile unsigned char to powinno byc lepiej ;)

    Mikrokontrolery AVR   15 Cze 2009 08:08 Odpowiedzi: 7    Wyświetleń: 1445
  • REKLAMA
  • [Arduino UNO] Jaka jest przyczyna przesunięcia wyświetlania znaków na wyświetlaczu 7-segmentowym?

    Gratuluję wytrwałości :) Jest jeszcze jedna rzecz, którą będę chciał zrobić - dodać dodatkowy timer, żeby zmienna lesser_delay_counter (flaga przyjmująca 4 stany w zależności od tego co ma być wyświetlone na ekranie "czas, temperatura, cisnienie, hPa") była niezależna od timera wyznaczającego częstotliwość multipleksowania, Jako alternatywę proponuję...

    Arduino   06 Cze 2025 20:28 Odpowiedzi: 17    Wyświetleń: 885
  • Dlaczego zmienna volatile działa w przerwaniach w WINAVR?

    http://www.elektroda.pl/rtvforum/topic35...

    Mikrokontrolery   17 Paź 2005 21:34 Odpowiedzi: 6    Wyświetleń: 1097
  • REKLAMA
  • AVR attiny2313A - Programowy PWM, brak automatycznego zerowania TCNT0.

    Chodzi o to, że zmienna volatile cały czas odczytywana jest z pamięci i ładowana do rejestru a zmienna bez volatile, ładowana jest tylko raz? Czy dobrze myślę? Dobrze myślisz. Ogólnie zmienna globalna volatile ma sens w sytuacji, gdy ze zmiennej korzystasz jednocześnie w programie głównym i w procedurze obsługi przerwania. W Twoim przypadku, gdy korzystasz...

    Mikrokontrolery AVR   27 Lip 2015 13:14 Odpowiedzi: 9    Wyświetleń: 1089
  • [C][atmega8] pomiar czasu między dwoma impulsami na INT0

    wilk125: jeszcze mam takie pytanie, jeśli kwarc zew. mam 8MHz i preskaler ustawiony jest na 8, to jeden takt timera1 w tym przypadku będzie odpowiadał 1us ? Tak Tak powinno być TCCR1B, moja pomyłka Przy odczycie wartości z TCNT1, sróbuj najpierw odczytac TCNT1L(młodszy bajt TCNT1), i następnie TCNT1H (starszy bajt). Chociaż odczyt jak wyżej tez powinien...

    Mikrokontrolery AVR   24 Lis 2009 08:04 Odpowiedzi: 5    Wyświetleń: 3703
  • Dlaczego zmienna volatile nie działa w zegarze na AT90S2313?

    Po pierwsze do jak wklejasz taki kod - to DAJ go w znacznikach CODE ! bo czyta się to delikatnie mówiąc tragicznie. Po drugie twoje domysły co do volatile są nietrafione. Po trzecie to nawet nie wiadomo z twojej wypowiedzi jaki jest problem poza tym, że w układzie coś tam nie działa - ale co nie działa poprawnie ??? a gdy wrzucisz fragment kodu do przerwania...

    Mikrokontrolery AVR   11 Lut 2010 10:27 Odpowiedzi: 7    Wyświetleń: 2249
  • [avr-gcc] Kiedy używać zmiennej volatile w programowaniu mikrokontrolerów AVR?

    Juz tlumacze :-) Zmienne volatile to takie, ktorych uzycia nie chcemy by kompilator optymalizowal. Zalozmy, ze uzywasz jakiejs zmiennej. Za chwilke chcesz cos na niej wykonac. Kompilator wyprodukowal kod, w ktorym ta zmienna jest w jakims rejestrze. Wiec stwierdzi, ze odwoalnie do pamieci jest niepotrzebne i je usunie, zakladajac, ze rejestr posiada...

    Mikrokontrolery   14 Lis 2005 12:26 Odpowiedzi: 6    Wyświetleń: 7978
  • Warunek if na procesorze xmega z debuggerem atmel ice działa nieprawidłowo

    Mam jednak wciąż pytanie co do drugiej części, jeżeli zmienna jest volatile to dlaczego konieczne jest wyłączanie obsługi przerwań? Czy wynika to z tego, że to 4-bajtowy typ long i przerwanie może nastąpić w trakcie porównywania i zmienić wartość niesprawdzonych jeszcze bajtów? Dokładnie o to chodzi. Tu lepsze sa 32 bitowe procki, przy porównaniu long...

    Mikrokontrolery AVR   21 Sie 2017 11:31 Odpowiedzi: 16    Wyświetleń: 1185
  • [AVR-GCC] Zmienna volatile w przerwaniu zawsze ma wartość zero - co robić?

    ten kod który przesłałeś wygląda chyba OK. Ale mogą być inne przyczyny, np. jakieś niespodziewane RESETy po drodze, złe ustawienia USARTa, itp.

    Mikrokontrolery AVR   14 Lut 2009 10:24 Odpowiedzi: 3    Wyświetleń: 1969
  • Zmienna nieulotna w funkcji. [C]. Jak ją zadeklarować?

    nieulotna to volatile ... Jesteś pewien, że "nieulotna"?

    Mikrokontrolery   16 Sty 2010 23:38 Odpowiedzi: 56    Wyświetleń: 5654
  • 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ń: 3685
  • Jak inkrementować g_accel_decel_counter do abs(NoOfPulses) w C?

    if(warunek niespelniony) { zmienna ++ } zmienne rzecz jasna volatile

    Mikrokontrolery   23 Sty 2011 13:05 Odpowiedzi: 6    Wyświetleń: 912
  • [atmega8] [atmega8][c] Zmiana zmiennej w pętli nie działa w AVR Studio 4. Dlaczego?

    Jeśli zmienna nie jest oznaczona jako "volatile", to kompilator jeśli zdecyduje, że zmienna na nic nie wpływa, może ją zoptymalizować (czytaj: usunąć). Kompilator nie sprawdza, czy zmienna jest używana w przerwaniach, gdyż dla niego są to osobne funkcje, które muszą być wywoływane (a te nie są w twojej funkcji wywoływane). Masz dwa rozwiązania: zmienną...

    Mikrokontrolery AVR   02 Wrz 2008 11:33 Odpowiedzi: 30    Wyświetleń: 3190
  • [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ń: 3201
  • 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ń: 843
  • Czy struktura `FlagProtocol` w C jest automatycznie inicjalizowana do 0?

    Z tym volatile w tym przypadku to pewne przegięcie, bo zarówno pola struktury (czemu nie sama struktura?), jak i zmienna o tym typie są volatile, co jest lekko bez sensu, acz nie jest błędem. Natomiast nie zgodzę się, że volatile nie powinno się definiować wewnątrz struktury. Jeśli dane pola wskazują np. na zasoby sprzętowe, albo w inny sposób ze swej...

    Mikrokontrolery AVR   12 Gru 2010 18:08 Odpowiedzi: 16    Wyświetleń: 3031
  • [STM32] [Keil] Jak skonfigurować symulator dla STM32F10x?

    RCC_CFGR_PPRE2_DIV1 Chyba kolega coś pomylił: Ustawiam RCC_CFGR_ PPRE1 _DIV2 , a nie drugi raz rejetr PPRE2 _DIV1 Właśnie się odnosiłem do tego, żeby w ogóle nie "ustawiać" RCC_CFGR_PPRE2_DIV1 więc się nie pomyliłem. Jak zmienna i będzie volatile to też tyle samo trwa ? Masz tam wpisane wartości opóźnień na sztywno i optymalizator mógł stwierdzić,...

    Mikrokontrolery ARM   08 Gru 2011 12:30 Odpowiedzi: 10    Wyświetleń: 2617
  • zilog encore! i problem z "volatile" w ZDSII

    ...Deklarację robiłem na różne sposoby np. volatile unsigned char znacznik; i cóż... efekt jest taki, że ewentualna modyfikacja wartości tej zmiennej jest widoczna tylko w danym segmencie kodu... Wytłumaczenie jest proste - źle zbudowałeś projekt :( Przykład: system.h //... volatile int var; //... uart.h //... #include "system.h" //... main.c...

    Mikrokontrolery   04 Lip 2007 19:01 Odpowiedzi: 4    Wyświetleń: 1275
  • Avr Studio 4 Debugger. Co muszę zrobić, żeby zmienna się zmieniała?

    A dlaczego by się miała zmieniać, skoro kompilator najpewniej ją zoptymalizował? Możesz mu utrudnić życie dodając magiczne słówko volatile lub wyłączyć optymalizację. BTW, skoro się uczysz to nie używaj narzędzi w wersji beta.

    Mikrokontrolery AVR   25 Mar 2011 21:00 Odpowiedzi: 2    Wyświetleń: 1717
  • 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ń: 1332
  • 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ń: 1410
  • [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ń: 1140
  • Atmega644pa - Timer1 nie odmierza równo 1 sekundy w trybie CTC

    Pamiętaj że sama transmisja też swoje trwa :) a poza tym nie pokazałeś funkcji printf (może ona bawi się w _delay_ms() ?) Zauważ również że przerwanie występuje niezależnie od transmisji, może dochodzić do takiej sytuacji ze raz przerwanie zmienić Ci wartość zmiennej tuż przed transmisją a raz tuż po niej i to spowoduje Twoje opóźnienia. Spróbuj blokować...

    Mikrokontrolery AVR   18 Wrz 2013 14:49 Odpowiedzi: 15    Wyświetleń: 2955
  • Atmega128, AVR Studio, WinAVR Problem z prostym kodem

    Znalazłem conajmniej 2 błędy 1. Zadeklaruj enterRx jako volatile 2. Najpierw przypisujesz zmiennej enterRx wartość 1, a potem sprawdzasz czy zmienna ma wartość '1' (czyli 49) Spróbuj z tymi 2 zmianami i powinno zacząć chodzić Mirekk36, może on ma procedury LCD buforowane (ja zwykle takich używam), wtedy to niebyłby taki wielki błąd, ale wnikał niebędę.

    Mikrokontrolery AVR   16 Lut 2010 23:00 Odpowiedzi: 6    Wyświetleń: 1888
  • Dlaczego zmienna w funkcji resetuje się po wywołaniu? Jak to naprawić?

    A po co volatile skoro to tylko funkcja wywołana w mainie ?:P Sposobów jest kilka ale nie będę wprowadzał zamieszania. Uważaj też na PORTD |= liczba; Pamiętaj że raz ustawiony bit nie zostanie już nigdy wykasowany w ten sposób.

    Mikrokontrolery AVR   06 Wrz 2011 20:14 Odpowiedzi: 10    Wyświetleń: 3492
  • Błędny odczyt LM35 na wyświetlaczu 7-segmentowym z ATmega16

    ADMUX=0b10000000; //kanał 7 ADC Zamiast 7 ustawiasz zerowy kanał ADC, a ten pin wykorzystujesz jako wyjście na wyświetlacz przecież... nic dziwnego, że bzdury wychodzą. O co chodzi z tym mnożeniem przez 100 (i dlaczego w przerwaniu, do tego jeszcze na zmiennej globalnej)? Jeśli już to powinno być przez 2 (wtedy wystarczą liczby 8-bitowe) albo (na 16-bitowych)...

    Mikrokontrolery   11 Sty 2011 10:52 Odpowiedzi: 11    Wyświetleń: 1545
  • [STM32] Algorytm sterowania mikrokontrolerem silnika indukcyjnego 3 fazowego

    Dodam tylko że użycie metody którą opisałem nie wymaga zmieniania tablicy w locie jak to zrobił Marek_Skalski . U mnie kod z przerwania wygląda tak: [syntax=c] Angle2 += Angle2_Step; Angle2_2 = Angle2 >> 6; U = (sinus_3har[(Angle2_2 + 0) & 0x03FF] * Vm * 2816) >> 20; V = (sinus_3har[(Angle2_2 + 341) & 0x03FF] * Vm * 2816) >>...

    Mikrokontrolery ARM   21 Kwi 2018 10:37 Odpowiedzi: 15    Wyświetleń: 3462
  • Czy można cyklicznie odczytywać EEPROM w pętli co 0,5 sekundy?

    Tak, jest zerowane w przerwaniu, ale zmienna nie jest oznaczona jako volatile - w takim przypadku kod zostanie zoptymalizowany do jednego sprawdzenia i pętli nieskończonej. Dodano po 6 unsigned char DELAY; void myfunc() { DELAY = 1; while(DELAY); } kompiluje się do: myfunc: ldi r24,lo8(1) sts DELAY,r24 /* ustawienie...

    Mikrokontrolery AVR   14 Gru 2008 01:11 Odpowiedzi: 35    Wyświetleń: 3549
  • 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ń: 4686
  • 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ń: 1246
  • Z111xP - lpc1114 - tłumaczenie kodu programu i schemat płytki

    Wskazany w linku debugger to zapewne JLink ale za cenę niespełna 10 $ to napewno nielegalny klon :) Jeżeli chcesz poznać LPC'ki i mieć debugger to wejściami . Kiedyś zapomniałem o tym fakcie i dziwiłem się dlaczego program nie działa tak jakbym się tego spodziewał.

    Mikrokontrolery Początkujący   06 Kwi 2017 17:44 Odpowiedzi: 16    Wyświetleń: 1971
  • [C] - Jak sprawdzić czy zmienna zmieniła wartość.

    W Tym przypadku możesz zrobić tak: [syntax=c]#define LCD_REFRESH 20; // stała/definicja co ile przebiegów pętli ma być odświeżony wyświetlacz volatile int lcd_refresh; int main() { while(1) { lcd_refresh_rate--; // zmniejsz licznik o 1 if (lcd_refresh_rate == 0) { lcd_refresh_rate = LCD_REFRESH; // zresetuj licznik / wartosc poczatkową odswiez_lcd();...

    Mikrokontrolery Początkujący   12 Lip 2013 12:21 Odpowiedzi: 6    Wyświetleń: 2709
  • LPC1343 - z jaką predkośćią pracuje i opóźnienia

    (at)Gunis-92: Możesz wykorzystać do odmierzania czasu np. SysTick [syntax=c] volatile uint32_t licznik_tykniec;// zmienna globalna /* obsluga przerwania od licznika/timera SysTick */ void SysTick_Handler(void) { licznik_tykniec++;// inkrementacja licznika } void delay(uint32_t czas) { uint32_t aktaualny_licznik_tykniec; aktaualny_licznik_tykniec = licznik_tykniec;...

    Mikrokontrolery   27 Sty 2015 13:44 Odpowiedzi: 12    Wyświetleń: 1248
  • [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ń: 2352
  • STM32F4 Discovery - Dziwna częstotliwość działania

    Mnóstwo instrukcji assemblera nie może być wykonanych w jednym cyklu zegara... w sumie wszystkie wykonywane są w tej samej liczbie i zależy ona od PIPELINE'u... pobranie instrukcji, dekodowanie, wykonanie, zapis do pamieci, akumulacja wyniku. To jest taki najprostszy pipeline i umożliwia on właśnie wykonywanie instrukcji w "jednym" cyklu zegara.......

    Mikrokontrolery ARM   05 Wrz 2013 14:41 Odpowiedzi: 20    Wyświetleń: 3759
  • Jak przekazać port i bit jako parametry funkcji w C dla AVR?

    Gdzie będzie zmienna _bit jest bez znaczenia, ten kod zawsze musi działać poprawnie. Jeśli zależy ci na prędkości to zamień switch/case na tablicę zawierającą kolejne maski na odpowiednich indeksach. Masz gwarantowany stały, najkrótszy możliwy czas konwersji. Co do przekazywania wskaźnika do IO - jeśli parametr nie jest volatile to kompilator nie wywala...

    Mikrokontrolery AVR   14 Lip 2011 23:36 Odpowiedzi: 13    Wyświetleń: 2553
  • Termometr bezprzewodowy 433 MHz - UART nie działa, odbiornik nie odczytuje danych

    Niestety pokazałeś zły kod - jak wpłynie na poprawność działania pokazanego przez Ciebie kodu: [syntax=c]RxCount=0x00;[/syntax] umieszczone w pętli głównej? Prawidłowo powinno być na przykład tak: [syntax=c]#include <avr/io.h> ... volatile uint8_t flaga; // liczba odczytanych bajtow volatile uint8_t temp[2]; // odczytana temp ISR(USART_RXC_vect)...

    Mikrokontrolery AVR   08 Lut 2016 21:12 Odpowiedzi: 20    Wyświetleń: 2019
  • 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ń: 2286
  • Avr-gcc: Optymalizacja pętli for (i<1024) na BREQ - jak obejść?

    po dodaniu volatile jakos lepiej poszlo ale widze ze wczesniej zmienna w rejestrach siedziala a teraz gdzies w ramie ja umiescil. To jest dość oczywista konsekwencja użycia tego kwalifikatora - efektywnie zabrania on jakichkolwiek optymalizacji zmiennej i pozostaje ona na stosie. Wydaje mi się, że walczysz z niewłaściwym problemem - szukasz dziury...

    Mikrokontrolery   07 Gru 2007 14:06 Odpowiedzi: 15    Wyświetleń: 1564
  • [c] Jak wyeliminować poświaty na 6 wyświetlaczach LED 57mm?

    Zawsze myślałem, że jak nie używam części analogowych to nie trzeba ich podłączać.. no ale mój błąd... No to właśnie wszedłeś w nową epokę :) A co do rezystorów na UDN to są one potrzebne? skoro sam UDN robi jako bufor podwyższający napięcie.. Nie pokazałeś na schemacie jakim napięciem zasilasz UDN, czyli de facto diody. Liczyłeś prądy LED? Jeszcze...

    Mikrokontrolery AVR   13 Wrz 2012 22:07 Odpowiedzi: 12    Wyświetleń: 3513
  • C, zmienna d nie zmienia się w programie głównym mimo volatile i przerwania (AVR, GPS)

    Witam, zadeklaruj zmienną d jako: volatile unsigned char d; kompilator będzie wiedział, że zmienna ta może zostać zmieniona z zewnątrz(przerwanie). Poczytaj o volatile to się wyjaśni. Pozdrawiam wojt

    Mikrokontrolery   02 Paź 2009 12:31 Odpowiedzi: 2    Wyświetleń: 1233
  • Jak obsłużyć usypianie i wybudzanie ATmega 32 jednym przyciskiem PD2?

    Witam. Zmontowałem przed chwilą i sprawdzone. Zostaje tylko pozbycie się drgań styków klawisza. [syntax=c]#define F_CPU 16000000UL // Atmega644 #include <avr/io.h> /*biblioteka avr*/ #include <string.h> /*biblioteka napisy*/ #include <stdio.h> /*biblioteka podstawowa C*/ #include <stdlib.h> /*biblioteka C*/ #include <stdbool.h>...

    Mikrokontrolery Początkujący   03 Lis 2019 19:57 Odpowiedzi: 21    Wyświetleń: 1068