struktura volatile

Znaleziono około 190 wyników dla: struktura volatile
  • [C] Programowanie mikrokontrolerów - volatile w strukturach

    Kiedyś stosowałem volatile zarówno do struktury jak i do pól (przezorność :] ). Jednak wystarczy do pól. Chyba, że wszystkie mają być tego typu. http://www.elektroda.pl/rtvforum/topic16...

    Mikrokontrolery   25 Sty 2011 15:26 Odpowiedzi: 2    Wyświetleń: 1403
  • C - jak poprawnie przypisać wartości do struktury PWM_data?

    Jeśli struktura jest volatile to każde jej pole również ma taki atrybut. Swoją drogą, pomyśl czy nie przejść na C++ - nie chodzi mi tu o wykorzystanie obiektów, szablonów itd., ale samej składni języka, IMHO o wiele lepszej niż składnia C. Na wstępie odpadają te wszystkie typedefy i struct zmienna, w dodatku można naturalnie przekazywać zmienne do...

    Mikrokontrolery   03 Sty 2012 22:12 Odpowiedzi: 11    Wyświetleń: 1481
  • REKLAMA
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • [C] - Warning przy użyciu spakowanych struktur volatile - dlaczego?

    Cześć! Otóż mam spakowaną strukturą (atrybut packed ) która jest volatile . I tutaj mam problem ponieważ kompilator wyrzuca mi następujący warning gdy jje używam (przypisuje coś do niej): multiple accesses to volatile structure member because of packed attribute No właśnie, o co chodzi? Domyślam się że jest zgrzyt gdy pakowana struktura jest volatile,...

    Programowanie   01 Lip 2015 10:01 Odpowiedzi: 5    Wyświetleń: 933
  • REKLAMA
  • atrybut "volatile" dla struktury danych - niezgodność

    Może mój przykład został źle dobrany, ale poprawienie ISR'a lub usunięcie powoduje generowanie identycznego kodu wynikowego, więc problem dalej występuje. Generalnie zmienne, które nie są volatile, nie powinny być używane do komunikacji program-przerwanie (mimo że wiele osób, w tym ja czasami tak robi, tyle że u mnie odnosi się to co najwyżej do tablic)....

    Mikrokontrolery   28 Sie 2011 09:32 Odpowiedzi: 23    Wyświetleń: 3667
  • Czy struktura `FlagProtocol` w C jest automatycznie inicjalizowana do 0?

    Był gdzieś niedawno dość długi temat o tym. IMO lepiej zawsze zmienne zerować dla czytelności, a w przypadku AVR-GCC po włączeniu optymalizacji te zbędne zerowania zostaną przez kompilator wycięte. Poza tym, dziwnie trochę ludzie wykorzystują słowo kluczowe volatile. W Twoim przypadku IMO nie powinno się stosować go wewnątrz struktury. Ostatnio widziałem,...

    Mikrokontrolery AVR   12 Gru 2010 18:08 Odpowiedzi: 16    Wyświetleń: 3019
  • Brak ustawiania FLAGA_CZAS w przerwaniu timera - kod w pętli głównej nie wykonuje się

    W życiu bym nie wpadł na to że kompilator zoptymalizuje program, tak że nie będzie działać. Raczej szukałem problemu w moim kodzie i logice działania. W planie procesor ma obsługiwać wyświetlacz, przerwania zewnętrzne (pomiar prędkości maszyny) oraz sterowanie PWM i przekaźnikami. Wracając do tematu powinienem zadeklarować całą strukturę jako volatile...

    Mikrokontrolery Początkujący   09 Cze 2022 09:58 Odpowiedzi: 11    Wyświetleń: 606
  • volatile struct [C][AVR] Które volatile można usunąć?

    Zrobienie ze wszystkich pól volatile nie jest dobrym pomysłem z trzech powodów - pierwszy - po co pisać 10x volatile skoro można raz. Drugi jest bardziej subtelny - zdefiniowanie struktury z polami volatile powoduje, że nie jest możliwe stworzenie zmiennej o takim typie, ktorej pola nie są volatile. A to może się przydać - np. skopiujemy oryginalną...

    Mikrokontrolery   21 Cze 2010 06:12 Odpowiedzi: 6    Wyświetleń: 2295
  • [Programowanie] Potencjalne źródła wieszania programów

    No bo teraz musisz zmienną zadeklarować w pliku .c, o czym pisaliśmy już z 5x. Warning jest od tego, że volatile przy definicji struktury jest zbędny. 4\/3!!

    Mikrokontrolery   06 Mar 2012 18:34 Odpowiedzi: 42    Wyświetleń: 2981
  • REKLAMA
  • 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ń: 1227
  • [PIC16F1513][XC8/MPLAB X] - Kompilator nie widzi struktury/unii

    Zmien: [syntax=c] SetCVD(capar[i].excaplow, capar[i].caplow); [/syntax] Kolejna sprawa, wyrzuc const z deklaracji bo nie bedziesz mógł zmieniać wartości w strukturze. Poczytaj również o tym kiedy się używa volatile (w twoim wypadku najprawdopodobniej jest niepotrzebne).

    Mikrokontrolery PIC   18 Paź 2015 14:29 Odpowiedzi: 2    Wyświetleń: 2010
  • [gcc][winavr] przekazywanie parametru volatile struct

    Witam, Temat dotyczyć będzie warninga w WinAVR o treści: passing argument 1 of '<nazwa_funkcji>' discards qualifiers from pointer target type Do funkcji przekazuje zmienną typu volatile za pomocą referencji. struct struktura { volatile char x; } volatile struct struktura zmienna; Funkcja(&zmienna); Sama funkcja wygląda tak:...

    Mikrokontrolery   18 Kwi 2011 09:43 Odpowiedzi: 3    Wyświetleń: 1996
  • AVR/ATmega8 - Gdzie stosować volatile przy tablicach i strukturach?

    Ale tu nie mówimy o tym jak konkretny kompilator, na konkretną architekturę ma to rozwiązane. Być może avrgcc tak właśnie postąpi. Jego prawo. Ale nie obowiązek. Dlatego nie zgodziłem się z twierdzeniem kol JacekCz Mówimy o tym co gwarantuje volatile. A to wynika bezpośrednio ze standardu języka C. A tam nie ma nic o tym jakoby takowej zmiennej nie...

    Mikrokontrolery AVR   28 Sty 2017 07:43 Odpowiedzi: 40    Wyświetleń: 2538
  • Wskaźnik do zmiennej umieszczony w strukturze w "Atmel Studio"

    Te twoje trzy wskaźniki uimeść w unii - bedziesz miał jeden wskaźnik, do którego odwołasz się przez pola unii. W sturktudrze można użyć volatile i można takiemu polu przypisać zmienną nie-volatile.

    Mikrokontrolery AVR   15 Lip 2017 19:17 Odpowiedzi: 11    Wyświetleń: 1911
  • Kod C dla ATmega8 do regulatora modelarskiego - brak reakcji urządzenia

    Sprawdziłem. Zmieniłem flagi ze struktury na zwykłe volatile. Bo nie wiem czy to struktura ma być volatile czy jej elementy. No i stałe wypełnienie- jakieś 80%. Powinno reagować na zmianę długości sygnału- a nie reaguje. Patrzę- no i powinno być dobrze. A nie jest.

    Mikrokontrolery   27 Paź 2011 20:50 Odpowiedzi: 51    Wyświetleń: 6960
  • REKLAMA
  • EmbeddedDev - blog dla programistów systemów wbudowanych

    W sumie to nie wiem co gorsze. Czy brak const czy większość zmiennych volatile. Nie ma sensu wybierać i się ograniczać - `const volatile register void * const * volatile * (register ptr Niektórzy idą dalej i stosują volatile nie tylko w stosunku do buforów ale również całych struktur danych (nawet tablic struktur:)). W końcu to embedded i musi być...

    Mikrokontrolery   08 Mar 2018 10:45 Odpowiedzi: 28    Wyświetleń: 1971
  • [Atmega8][C]Problem z multiplekowniem wyświetlacza 7-seg.

    Dzięki za zainteresowanie. Dodałem do struktury volatile. Spowodowało to tylko, że podczas przepełnienia licznika Timera2 3 pierwsze segmenty gasną, a na ostatnim pojawia się 1. Natomiast po usunięciu linii "toDisplay[0] = 0xBF;" segmenty są wyłączone, nic nie wyświetlają. Co może powodować, że zawartość tablicy "toDisplay" po przepełnieniu Timera2...

    Mikrokontrolery AVR   05 Lut 2011 18:23 Odpowiedzi: 9    Wyświetleń: 2535
  • [STM32F1] [STM32F1][C] - Usprawnienie komunikacji AT z modułem GSM na STM32F103ZET6

    Chyba cała struktura: [syntax=c] volatile GSM_communication_t GSM_communication; [/syntax] nie musi być zadeklarowana jako volatile.

    Mikrokontrolery Początkujący   10 Maj 2014 12:01 Odpowiedzi: 13    Wyświetleń: 2091
  • STM32F0x UART RS232 - problem z buforem w kodzie obsługi transmisji uK=>PC

    1. Sformatuj kod bo się nie da czystać 2. Nie deklaruj całych struktur/buforów jako volatile bo to nadużycie

    Mikrokontrolery ARM   26 Lut 2016 18:00 Odpowiedzi: 17    Wyświetleń: 1425
  • AVR-GCC - Optymalizacja dostępu do struktury przez GCC?

    Mamy funkcję, która przyjmuje np. następujący argument funkcja(uint8_t argument) i przekazujemy jej element tablicy struktur, który jest volatile. GCC będzie krzyczał Może weź najpierw to sprawdź, bo teraz już trochę "popłynąłeś". 4\/3!!

    Mikrokontrolery AVR   12 Cze 2014 22:15 Odpowiedzi: 25    Wyświetleń: 2943
  • [ARM][C/Keil] Struktura z polami bitowymi w odniesieniu do rejestru...

    I jeszcze jedna propozycja wykorzystania pól bitowych w przykładzie Electixa bez konieczności definiowania całych struktur bitowych: [syntax=c] #define bit_Field(var, bit, len) ((*(volatile struct{uint32_t:(bit)%32;uint32_t fld:len;}*)\ ((uint32_t*)&(var)+(bit)/32)).fld) // var - nazwa zmiennej // bit - numer pierwszego bitu pola bitowego // len - długość...

    Mikrokontrolery ARM   23 Mar 2012 23:00 Odpowiedzi: 26    Wyświetleń: 3279
  • [ARM][C/KEIL] Deklaracja struktury z polami bitowymi, jak to zrobić?

    Te deklaracje umieść w pliku irq.h [syntax=c]struct status { uint32_t adc:1; uint32_t rtc:1; }; extern volatile struct status sts;[/syntax] i plik ten dołącz do main.c i irq.c w irq.c lub main.c umieść ta definicję [syntax=c]volatile struct status sts={0,0};[/syntax]

    Mikrokontrolery ARM   04 Gru 2011 18:47 Odpowiedzi: 7    Wyświetleń: 2119
  • Czy zmienne volatile rozwiązują problem synchronizacji w C?

    Co to znaczy różne typy, różne struktury i uniwersalny kod do nich?

    Mikrokontrolery AVR   29 Mar 2012 21:07 Odpowiedzi: 15    Wyświetleń: 1384
  • [C] [C][AVR] Jak działa makro #define T_BIT(adr) w kodzie C?

    Linia z #define to makro preprocesora, po, nomen omen, definicję i opis odsyłam do Googli. :) To makro przyjmuje wskaźnik, rzutuje go na wskaźnik na strukturę pole_bitowe (słowo kluczowe volatile to zakładam, że wiesz, co robi) i zwraca samą strukturę. Prawdopodobnie da się to opisać jaśniej, bardziej poprawnie i wciąż po polsku, ale mi się już spać...

    Mikrokontrolery AVR   26 Sie 2010 11:09 Odpowiedzi: 7    Wyświetleń: 1574
  • [ARM] [ARM][C] Jak unikać zmiennych globalnych w embedded C? Struktury i wskaźniki

    1. nie wyobrażam sobie programowania embedded, żeby choć raz na miesiąc nie rozwinąć C do ASM i zobaczyć co wychodzi. Z poczucia obowiązku, procedur w korporacji lub własnej ciekawości. Dyskusja o funkcji się skończy. Znalazł byś statyczny blok pamięci (tzn istniejący przed załadowaniem programu, o jakieś drobne atrybuty różniący się od 'zewnętrznego...

    Programowanie   15 Lis 2017 10:13 Odpowiedzi: 19    Wyświetleń: 924
  • Jak zoptymalizować kod ASM generowany przez kompilator dla Cortex-M0?

    (at)Piotrus_999 To nie Ty czasem stosujesz volatile dla tablic struktur? Chciałbym zaznaczyć, że taki zabieg również generuje średnio wydajny program. Bo niby jaką wartość merytoryczną niesie wypowiedź typu: No właśnie to było dziwne bo w strukturach packed nie było :). A kto włącza to globalnie? Pewnie w jakimś pluginie do eclipsa (at)qazpylades ładnie...

    Mikrokontrolery ARM   15 Lis 2017 22:15 Odpowiedzi: 26    Wyświetleń: 1902
  • PID na ATmega - AVR221 brak reakcji na wejściu układu

    Pomogło dodanie volatile w strukturze. Dzięki, teraz wszystko działa jak należy. [syntax=c]struct GLOBAL_FLAGS //brief Flags for status information { //! True when PID control loop should run one time volatile uint8_t pidTimer:1; volatile uint8_t dummy:7; } gFlags = {0, 0};[/syntax] Zastanawiam się tylko dlaczego nie było to zaimplementowane w kodzie...

    Mikrokontrolery   26 Lut 2014 14:17 Odpowiedzi: 8    Wyświetleń: 2175
  • [c]przepisanie zawartości tablic/struktur przez wskaźnik?

    volatile uint8_t tab1[10]; tab1 jest wskaźnikiem z niejawnym modyfikatorem const do tablicy zmiennych typu uint8_t z modyfikatorem volatile

    Mikrokontrolery   06 Cze 2010 12:39 Odpowiedzi: 19    Wyświetleń: 4344
  • 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ń: 10116
  • Kłopoty z zarządzaniem pamięcią RAM w C++ przy użyciu struktur i klas

    Cała dyskusja na temat volatile powyżej jest błędna - użycie tego słówka przy polach struktury TPIN jest w 100% prawidłowe i KONIECZNE. Proponuję więc szukać problemu w innym miejscu, bo to akurat miejsce jest właśnie takie jak ma być. Porównywanie wartości zmiennych z oczekiwaniami przy włączonej optymalizacji jest bezcelowe i doprowadza do takich...

    Mikrokontrolery Początkujący   05 Paź 2016 10:18 Odpowiedzi: 12    Wyświetleń: 1221
  • Wskaźnik do lokalnej struktury w WinAVR - problem z adresem w AT90CAN128

    Wciąż nie wiem, czy to ja gdzieś robię błąd, czy też jest to wina kompilatora - pierwszy raz mam takie zjawisko, a zawsze bezboleśnie używałem różnych takich konstrukcji.... Ponieważ jest to zmienna lokalna może być przechowywana tylko w rejestrach procesora lub cos w tym rodzaju. Spróbuj ja zrobić volatile.

    Mikrokontrolery AVR   23 Paź 2009 09:44 Odpowiedzi: 14    Wyświetleń: 2477
  • [C][Atmega8] Uniezależnienie definicji portu i linii portu od definicji funkcji

    Trawić w tym kodzie nie ma zbytnio co: struktura jest tylko żeby nie trzeba było za każdym razem przekazywać oddzielnie 3 wskaźników i maski bitu. Aby uzyskać dostęp do rejestru, są tylko dwa sposoby: statyczny kiedy kompilator zna adres rejestru i może go wkompilować do kodu, albo dynamiczny, kiedy kompilator nie zna adresu. Drugie rozwiązanie opiera...

    Mikrokontrolery   30 Cze 2011 15:38 Odpowiedzi: 8    Wyświetleń: 2060
  • Polecane materiały do nauki programowania mikrokontrolerów dla początkujących

    Bardzo wiele zostało już powiedziane (bardzo dobre porady). Moim zdaniem krokiem zero jest jako tako umieć programować w C na PC (jak przebiega proces kompilacji, kod źródłowy podzielony na pliki *.c i *.h, organizacja pamięci i wskaźniki, struktury i wskaźniki do nich, słowa kluczowe register, volatile, static, etc., preprocesor, makefiles i make,...

    Mikrokontrolery   28 Sie 2024 08:03 Odpowiedzi: 11    Wyświetleń: 654
  • Jak zdefiniować porty wyjściowe w Atmega8 dla transceivera MMcc1000?

    Jeżeli chcesz koniecznie koniecznie wykorzystać metodę, o której pisał tmf, możesz zrobić tak: [syntax=c] typedef struct _PortBits { unsigned b0 : 1; unsigned b1 : 1; unsigned b2 : 1; unsigned b3 : 1; unsigned b4 : 1; unsigned b5 : 1; unsigned b6 : 1; unsigned b7 : 1; } tPortBits; #define PORT_BITS(p) (*(volatile tPortBits*)&(p)) #define SCLK_RF_PORT...

    Mikrokontrolery AVR   05 Cze 2013 14:44 Odpowiedzi: 22    Wyświetleń: 3645
  • [c] Jak przypisać zmiennej w strukturze adres rejestru w AVR bez wskaźników?

    Witam, przewertowałem już kilka tematów i specyfikację avr-gcc ale nie znalazłem odpowiedzi na moje pytanie. Mianowice czy da się w jakiś sposób zrobić aby zmienna (nie wskaźnik) w strukturze [syntax=c] struct _A { volatile unsigned char pa; }; [/syntax] odpowiadała adresowi np. 0x1B (PORTA w Atmega32). Wiem że taki efekt można uzyskać za pomocą wskaźników...

    Mikrokontrolery AVR   05 Gru 2011 00:50 Odpowiedzi: 3    Wyświetleń: 944
  • Jak zdefiniować globalną strukturę TMenuItem w C?

    Witam wszystkich:D mam tak napisana strukturę w pliku main.c: struct TMenuItem{ volatile unsigned char tekst[15]; volatile unsigned char start_x; volatile unsigned char ID; volatile unsigned char Page; volatile unsigned char Up; volatile unsigned char Down; volatile unsigned char Start; volatile unsigned char Stop; volatile unsigned char Length; } Menu[MenuItemCount];...

    Mikrokontrolery   31 Lip 2007 13:04 Odpowiedzi: 2    Wyświetleń: 971
  • Arduino sterowanie przyciskiem z dwoma stanami Short i Long

    https://github.com/diymat/ARM-blog-libra... co prawda do ARM ale przerobić sobie do użycia na AVR to nie problem. Biblioteka z callbackami i 5 stanami key-up key-down, click, długi click i double click. [syntax=c] static volatile BUTTON_Status_T Buttons[NKEYS]; [/syntax] Volatile dla całej tablicy struktur. To już świadczy o kiepskiej...

    Arduino   18 Wrz 2017 10:59 Odpowiedzi: 4    Wyświetleń: 1353
  • Jak zinterpretować zapis: PORTB = (*(volatile unsigned char *)0x38)

    Dzięki, a teraz trudniejsze pytanie jak dla mie. O co chodzi w takim zapisie typedef struct S_TC { int dana1; int dana2; ... } *PS_TC; potem jest napisane coś takiego #define TC ((PS_TC)0xAAA10) Potem jest odwołanie do struktury poprzez wskaxnik

    Mikrokontrolery AVR   17 Gru 2008 10:02 Odpowiedzi: 5    Wyświetleń: 1264
  • [ATmega8][C] Termometr ATmega8, DS18B20, LCD - pokazywana temperatura 0,0

    AVE... Do wszystkich funkcji podajesz nazwę bitu w rejestrze portu i nazwę bitu w rejestrze kierunku. Przykładowo dla PICa te rejestry to PORTx i TRISx, gdzie x to nazwa portu (A, B, C, etc.). Zatem przykładowo kod dla PIC16F do sprawdzenia obecności dwóch sensorów na dwóch pierwszych pinach portu A i ustawienie stosownych flag w dedykowanej ku temu...

    Mikrokontrolery AVR   02 Maj 2019 10:56 Odpowiedzi: 19    Wyświetleń: 1008
  • [ATMega16][C] Program się zawiesza w losowych momentach

    Wydaje mi się że zliczanie timerem czasu między impulsami nie będzie jakoś znacząco mniej zasobożerne. Timer ma swoje przerwania, wiec się raczej mylisz... Co do podanego kodu obsługi przerwania INT0 , to z dużym prawdopodobieństwem samo wywołanie transmisji po RS może być dodatkową przyczyną problemów, gdyż obsługa tego przerwania jest nieoptymalna...

    Mikrokontrolery AVR   14 Wrz 2011 21:13 Odpowiedzi: 56    Wyświetleń: 4756
  • [Poradnik] Polecane książki i kursy do nauki C i C++ dla początkujących

    Problemem u Ciebie jest to że nie zauważasz o czym jest generalna myśl tylko łapiesz się z hasła typu misra. Pisałem że nie lubię wodotrysków nieczytelnej trikologii No odnoszę całkiem inne wrażenie po kodzie, który czasami umieszeczesz na tym forum. Const nie używasz bo niby nie jest w duchu języka C. Używasz bezpodstawnie volatile dla całych tablic...

    Projektowanie i Tworzenie Po godzinach   11 Lis 2017 21:36 Odpowiedzi: 31    Wyświetleń: 4284
  • [atmega8] USART w C - błędy przy małym rozmiarze bufora kołowego

    Różnice rzędu 2 instrukcji jakoś do mnie w tym przypadku nie trafiają. Czyli różnice czterech czy sześciu bajtów flasha (zakładam że na AVR jedna instrukcja ma 2 bajty) do Ciebie nie trafiają, ale różnica jednego bajta w RAM już trafia? Widzisz niekonsekwencję? Ja tu data race nie widzę. Czy jest coś polem bitowym czy int-em. (i abstrahujmy od tego...

    Mikrokontrolery AVR   02 Gru 2017 15:24 Odpowiedzi: 43    Wyświetleń: 4191
  • 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ń: 7185
  • C++: Optymalizacja stałych danych w pamięci FLASH dla STM32F10X

    Nie do końca umiem wyjaśnić, dlaczego C++ różni się tutaj od C, ale mam inną propozycję, rodem z ANSI C :) Przykładowy kod można przepisać: #include <stddef.h> typedef struct { int first; int second; int third; } type_t; #define ADDRESS 0x12345678 const int data = (ADDRESS + offsetof(type_t, second))*2; int main(void)...

    Mikrokontrolery ARM   17 Sie 2009 07:42 Odpowiedzi: 9    Wyświetleń: 2957
  • Atmega32 - Konflikt zegara i przetwornika ADC przy inicjalizacji przerwań

    Witam, Mam pewien problem i nie bardzo pomysł na jego rozwiązanie. Mam program zegara i czujnikami dallas18b20 i wszystko fajnie działa. Potrzebowałem uruchomić dodatkowo przetwornik adc i zaczęły się schody. Gdy skonfigurowałem przetwornik program po dojściu do momentu inicjalizacji przetworika się wiesza, a dokładniej wygląda, jakby procek się resetował...

    Mikrokontrolery   31 Maj 2012 19:37 Odpowiedzi: 4    Wyświetleń: 2510
  • [Atmel AT91] [Atmel AT91][C] Jak uniknąć problemów z przerwaniami przy modyfikacji flag?

    Źle rozumiesz pojęcie atomowości przy dostępie do zmiennej. Instrukcja "v--" składa się z dwóch odwołań do zmiennej v: odczytu oraz zapisu. Dostęp jest atomowy, nie cała instrukcja zawierająca ten dostęp. To co zacytowałeś mówi mniej więcej tyle, że odczytując zmienną mającą 4 bajty kompilator użyje instrukcji ldr aby odczytać całość w jednej instrukcji,...

    Mikrokontrolery ARM   28 Cze 2011 12:16 Odpowiedzi: 8    Wyświetleń: 2103
  • Framework AVR GCC do tablicowego sterowania pinami Atmegi jak w Arduino

    (...) diody Twój kod wykorzystuje kreatywne podejście do mapowania pinów mikrokontrolera na struktury, które można łatwo używać w programie. Chociaż metoda, którą zaproponowałeś, jest funkcjonalna, to istnieje kilka obszarów, które można ulepszyć, aby kod był bardziej zwięzły i czytelny. Oto kilka sugestii: 1. Uproszczenie makr: Twoje makra wykorzystują...

    Mikrokontrolery Początkujący   07 Lut 2024 13:34 Odpowiedzi: 71    Wyświetleń: 1038
  • Jak wyłączyć wyświetlanie Warningów w WinAVR przez modyfikację makefile?

    6 - każdą (debilną) funkcję jak ją nazwałeś da radę przerobić na normalną 7 - szukaj błędu po #endif zgodnie z komunikatem a nie wewnątrz warunku 8 - naucz się rzutowania typów bo w tym przypadku specyfikator volatile nieco zmienia traktowanie zmiennej slowo0. Poza tym jak używasz jakiegoś srodowiska, które domyślnie zamienia unsigned char na char -...

    Mikrokontrolery AVR   16 Mar 2011 13:38 Odpowiedzi: 16    Wyświetleń: 3205
  • [ATxmega128A3][avr-gcc] - Makrodefinicje I/O w Xmega

    Dziękuję koledze LordBlick, poprosiłem go o odblokowanie tematu, bo wydaje mi się, że mimo pozornej prostoty problemu warto się nad nim chwilę zastanowić. Zanim przejdę do odpowiedzi na post #3, powiem dwa słowa o makrodefinicjach. Wiele osób z nich chętnie korzysta, w pokazanym wyżej przykładzie zdecydowanie lepiej posługiwać się makrami LED_ON i LED_OFF...

    Mikrokontrolery Początkujący   10 Wrz 2012 15:31 Odpowiedzi: 5    Wyświetleń: 2184
  • [C] Jak zainicjalizować wskaźniki do tablic struktur w C?

    Jednak się da, bez konieczności tworzenia osobnych struktur i wpisywania nazw tych struktur w inicjalizacji innych struktur :) Nie wiem czy wszystkie kompilatory to zaakceptują.. typedef struct { u8 flags; // BTN_TRANSPARENT | BTN_TOGGLE | BTN_VISIBLE u16 y_size; u16 x_size; const u8 *file; } btn_vars_t; // STALA struktura we flashu... typedef...

    Mikrokontrolery   02 Gru 2011 08:45 Odpowiedzi: 5    Wyświetleń: 2717
  • [STM32] ADC1 STM32L4 - problem z zapisem do rejestrów CR w C++

    Hej, mam następujący problem. Napisałem niewielką klasę opakowującą ADC1 dla STM32L4 (tak, piszę w C++ ;) ). Jako, że chciałbym aby była dość ogólna, wskaźnik do adc przechowuję jako pole volatile ). Np. nie działa: [syntax=c] this->p_adc->CR |= ADC_CR_ADDIS; this->p_adc->CR &= ~ADC_CR_ADEN; [/syntax] ale to już działa (mimo, że jest wołane w tej samej...

    Mikrokontrolery ARM   20 Lip 2018 11:42 Odpowiedzi: 4    Wyświetleń: 723
  • Eclipse - Jak ustawić kompilator gnurx dla istniejącego projektu?

    Linijka : [syntax=c]volatile struct st_can __evenaccess * can_block_p;[/syntax] oznacza definicję wskaźnika o nazwie can_block_p, na strukturę typu st_can. Linijka: [syntax=c]can_block_p = (struct st_can __evenaccess *) 0x90200;[/syntax] inicjalizuje wskaźnik can_block_p adresem 0x90200 rzutowanym na typ struct st_can __evenaccess *. Modyfikator volatile,...

    Mikrokontrolery Pozostałe   04 Mar 2013 22:10 Odpowiedzi: 5    Wyświetleń: 2715
  • Problem z AT91SAM7256 - Dublowanie danych wysyłanych przez port

    Cześć, Mam taki problem z AT91SAM7256. Mój kod przy optymalizacji=0, zajmuje 44280Kb. Wszystko działa poprawnie. Jeśli dodam do kodu taką linijkę (kod zajmuje 44372Kb): config |= (1 << 13) | (5 << 10) | (7 <<3); (zmienna config jest w strukturze i jest typu volatile unsigned short) to niestety program zaczyna wariować. Przesyła mi...

    Mikrokontrolery ARM   17 Cze 2013 10:18 Odpowiedzi: 1    Wyświetleń: 957
  • Jak bezpośrednio przypisać zmienną bitową do pinu PORTD7 w WinAVR?

    Rozwiązanie z postu powyżej jest najlepszym według mnie: if(v) PORTB |= (1<<PB3); else PORTB &=~(1<<PB3); Żeby jednak traktować pojedynczy bit portu jako osobną zmienną można wykorzystać fakt, że rejestry io posiadają swój adres w przestrzeni danych, przez co można uzyskać adres i rzutować wskaźnik na jakąś bardziej...

    Mikrokontrolery AVR   05 Kwi 2010 16:57 Odpowiedzi: 7    Wyświetleń: 1337
  • pic18f2423, pin RB2 - uruchomienie jako cyfrowe wyjście.

    nie jestem pewny czy dobrze ustawilem bo w C18 nie ma takiej struktury jak CONFIG3H , zrobilem tak #define CONFIG3H *((volatile unsigned int *) 0x300005) ; a pozniej CONFIG3H &= 0b11111101; jesli to jest OK to nic nie dało :(. Tylko ze inne piny ktore moga byc takze jako AD dzialaja jako I/O(dzieki ustawieniu ADCON1), wiec wydaje mi...

    Mikrokontrolery   05 Kwi 2008 16:36 Odpowiedzi: 4    Wyświetleń: 1089
  • Nano i Micro - Błędne wartości w zmiennych volatile (wielobajtowych)

    Jacek o czym Ty piszesz. Volatile niczego nie chroni. Tylko mówi że zmienna moze być modyfikowana przez coś czego kompilator nie widzi i de facto oznacza ze musi odczytywać i zapisywać do pamięci używaną danę przed i po każdej operacji. Działa to tak samo dla każdego rodzaju danych (tablice, struktury, unie) Skompiluj sobie np. [syntax=c]volatile int...

    Arduino   26 Lip 2016 16:55 Odpowiedzi: 51    Wyświetleń: 3426
  • [WinAVR] Jak zdefiniować tablicę struktur z wartościami domyślnymi w WinAVR?

    W moim przypadku to: volatileprzycisk tablica_przyciskow[4] = { {.pin = KEY_UP}, {.pin = KEY_DOWN}, {.pin = KEY_OK}, {.pin = KEY_CANCEL} }; dzięki za pomoc.

    Mikrokontrolery AVR   24 Mar 2011 15:09 Odpowiedzi: 5    Wyświetleń: 1452
  • [GCC] -Os - czyli jak zrobic, zeby gcc nie zjadalo funkcji?

    no dobra, ale te wszystkie volatile uint8_t * volatile niezbyt dobrze wygladaja /; wygladaja wrecz lewo... Zrób strukturę, będzie wyglądało lepiej... moze ((noinline))? czy wlasnie tego slowka szukam? <: Można, bo w tym przypadku rozwijanie funkcji _eeprom_save_block() to nadoptymalizacja, ale to raczej z tego właśnie powodu. Jako alternatywa dla...

    Mikrokontrolery AVR   12 Lis 2008 13:53 Odpowiedzi: 10    Wyświetleń: 2337
  • [STM32F4][C] - Dostęp do zmiennej w przerwaniu i w głównej pętli

    robisz w main: volatile int i=0; w stm32f4xx_it.h (czy jak tam się nazywa ten header z funkcjami przerwań): extern volatile int i; Zrobiłem jak kazałeś Struktura projektu została wygenerowana przez Atollic'a. To, że z błędu nic nie wynika to właśnie mój problem. Z tego co wyczytałem w różnego rodzaju kursach jeżeli chcemy mieć dostęp do zmiennej w...

    Mikrokontrolery ARM   29 Mar 2013 14:23 Odpowiedzi: 6    Wyświetleń: 1509
  • [LPC17xx Cortex, CrossWorks] Durne błędy kompilacji

    W pliku LPC1768.h masz taką definicję: #define CCR (*(volatile unsigned char *)0x40024008) w pliku core_cm3.h masz taką linijkę: typedef struct { ... __IO uint32_t CCR; /*!< Configuration Control Register */ ... } SCB_Type; Definicja z pierwszego zostaje wstawiona do drugiego i powstaje chaos. Nie ma tu prostego rozwiązania, możesz spróbować...

    Mikrokontrolery ARM   22 Sty 2011 16:50 Odpowiedzi: 5    Wyświetleń: 2243
  • Jak zapisać/odczytać ustawienia w EEPROM w C bez stałych adresów RAM?

    Michałko twórz przykład wydaje się być pomocny. Jeśli chce te zmienne obrabiać w main to mam je zdefiniować jako extern voliatile? W main ma być widoczna struktura Settings, w nagłówku masz juz przykład [syntax=c]extern settings_t Settings; [/syntax] i gdzieś w kodzie musi wtedy być [syntax=c]settings_t Settings;[/syntax] jeśli volatile jest potrzebne...

    Mikrokontrolery AVR   12 Mar 2012 20:24 Odpowiedzi: 6    Wyświetleń: 1154
  • STM32F4xx - Dlaczego DMA nie działa przy migracji z STM32F1xx?

    Nie wiem czy to ma znaczenie ale masz trochę inną sekwencję niż w dokumentacji Sprawdzę to, dzięki. Poza tym czemu raz używasz biblioteki a raz walisz po rejestrach ? Biblioteki używam żeby wygodniej było, a po rejestrach żeby kolega Freddie Chopin się nie czepiał, że tylko biblioteki używam ;). A na poważnie, to ciężko odpowiedzieć czemu. Projekt...

    Mikrokontrolery   31 Sty 2013 12:38 Odpowiedzi: 15    Wyświetleń: 2808
  • [Arduino UNO] Jaka jest przyczyna przesunięcia wyświetlania znaków na wyświetlaczu 7-segmentowym?

    Cześć, Napisałem poniższy program do obsługi zegara elektronicznego, w zaprogramowanym czasie wyświetla kolejno czas (hh:mm) oraz temperaturę na wyświetlaczu 7-segmentowym. [syntax=c]#include <Adafruit_BMP280.h> #include <Wire.h> #include <TimeLib.h> #include <DS1307RTC.h> #include <avr/io.h> #include <avr/interrupt.h>...

    Arduino   06 Cze 2025 20:28 Odpowiedzi: 17    Wyświetleń: 837
  • [C++] - Ulotność (volatile) obiektu a ulotność jego składników

    Witam, mam pytanie dotyczące działania modyfikatora volatile zastosowanego przy definiowaniu obiektu klasy/struktury. Książki/poradniki, na które trafiłem, nie tłumaczą zagadnienia zbyt dokładnie, zaś lektura standardu języka mnie przerasta :) Na logikę i zdrowy rozsądek, wydawało mi się, że "ulotność" obiektu implikuje "ulotność" wszystkich jego składników....

    Programowanie Początkujący   09 Lut 2016 17:41 Odpowiedzi: 15    Wyświetleń: 1356
  • Mikrokomputer COBRA 1

    Czy jest gdzies opis formatu pliku REL ? No właśnie nie widzę opisu. *.rel jest skompilowanym plikiem asemblera do linkowania. Można uprościć sobie życie i zapisywać obraz w postaci pliku *.s i kazać kompilować do *.rel samemu SDCC. W ten sposób strzeżemy się przed ewentualną zmianą struktury pliku *.rel spowodowaną rozwojem samego SDCC. Może takie...

    DIY Konstrukcje   08 Lip 2025 21:06 Odpowiedzi: 1998    Wyświetleń: 276717
  • Równoczesny pomiar temperatury i napięcia ADC1 STM32F411RE

    Nie dodawałem struktury oraz tablicy do której jest odwołanie w pętli, bo jest spora i nie jej problem dotyczy. [syntax=c]#include "stm32f4xx.h" static volatile uint16_t wyniki[3]; static void MX_DMA_Init(void); static void MX_ADC1_Init(void); while (1) { DP[0].wartosc = 5.f*(wyniki[0])/4096; } static void MX_ADC1_Init(void) { RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;...

    Mikrokontrolery ARM   24 Mar 2021 15:09 Odpowiedzi: 4    Wyświetleń: 606
  • [STM32][C] - Poradnik dla początkujących (bez bibliotek)

    Poradnik spoko - zauważyłem lepszą przydatność wygenerowania pojedynczego pliku nagłówkowego z rejestrami, skrojonego na miarę, w postaci struktury unii, niżeli używanie wyciętych fragmentów pliku nagłówkowego. Niestety trzeba uważać przy tworzeniu takiego pliku nagłówkowego i pilnować poprawności z dokumentacją: [syntax=c] #include <stdint.h>...

    Mikrokontrolery ARM   15 Maj 2021 12:57 Odpowiedzi: 135    Wyświetleń: 92520
  • Przerwania proste i przyjemne - część 3 - kilka dodatkowych tricków i porad

    W poprzednich odcinkach wiel;e osób zwracało ci uwagę, że tłumaczysz starocie, w dodatku starocie, w któych jest masa błędów i merytorycznych i implementacyjnych. Proszę nie brać tych uwag do siebie - krytyka dotyczy autora artykułu, co wynika zapewne z faktu, że od jego napisania upłynęły 2-3 dekady! Niemniej biorąc pod uwagę także krytykę wcześniejszych...

    Artykuły   20 Kwi 2022 08:45 Odpowiedzi: 1    Wyświetleń: 2115
  • Atmega16: Błędy kompilacji przy użyciu funkcji w przerwaniu INT0

    Jeśli chcesz gotowego rozwiązania to napiszę jak sam robię takie systemy: Deklaruję pewną strukturę globalną, koniecznie volatile, w której umieszczam flagi w zależności od tego ile ich potrzebuję, np.: [syntax=c]volatile struct sZmienna { unsigned char Pomiar :1; unsigned char Timer :1; unsigned char Odswiez_LCD :1; //itd. }Zmienna;[/syntax] Następnie...

    Mikrokontrolery AVR   12 Lip 2012 19:31 Odpowiedzi: 29    Wyświetleń: 2216
  • [STM32F0] [STM32F0][EclipseGCC] - Problem z dostępem do pamięci USB przy różnych optymalizacjach

    Cześć, próbuję zdefiniować sobie struktury, które pozwolą na dostęp do pamięci USB w bardziej cywilizowany sposób. Mniej więcej coś takiego: [syntax=c]#include <cstdint> #include <new> struct BufferDescriptionTableEntry { volatile uint16_t addr; volatile uint16_t count; } __attribute__((packed)); struct EndpointBufferDescription { BufferDescriptionTableEntry...

    Mikrokontrolery ARM   16 Sie 2017 21:24 Odpowiedzi: 3    Wyświetleń: 972
  • ATMEGA [C] - Przechowywanie nazw portów i pinów w tablicy lub strukturze

    A może coś takiego [syntax=c] typedef struct{ u08 b0:1; u08 b1:1; u08 b2:1; u08 b3:1; u08 b4:1; u08 b5:1; u08 b6:1; u08 b7:1; } volatile IO; IO * const pora=(IO*)&PORTA; #define PORTA0 pora->b0 #define PORTA1 pora->b1 ... [/syntax]

    Mikrokontrolery AVR   14 Lip 2014 19:12 Odpowiedzi: 7    Wyświetleń: 2016
  • [LPC1768] [LPC1768][C] - UART brak transmisji mimo konfiguracji i zmiany pinów

    Walczę od pół godziny z pojawieniem się transmisji na porcie szeregowym, wymłodzilem taki kod [syntax=c] #ifdef __USE_CMSIS #include "LPC17xx.h" #endif #include <cr_section_macros.h> #include "lpc17xx_uart.h" int main(void) { volatile static int i = 0 ; UART_CFG_Type uart_configstruct; // inicjacja struktury dla UART uart_configstruct.Baud_rate...

    Mikrokontrolery ARM   04 Cze 2014 08:37 Odpowiedzi: 4    Wyświetleń: 1116
  • [LPC2138][C/Keil] - Symulator swoje, MCU swoje (struktury z polami bitowymi)

    Witam serdecznie! Natknąłem się na taki oto problem. Napisałem sobie funkcję, która służy do ustawiania rejestru Mach Control Register i wygląda tak: MCR ustawia jeszcze dodatkowo przerwanie dla Mach3 i reset dla Mach2. Czy ktoś z Was, szanowni Koledzy spotkał się już z takim problemem? Albo orientuje się skąd on może wynikać? Czyżby symulator był błędnie...

    Mikrokontrolery ARM   14 Gru 2012 12:11 Odpowiedzi: 11    Wyświetleń: 2091
  • [ATtiny 44a][C/WinAVR][RC5] - Błędne dekodowanie ramki, w około 10-15% odczytów

    Wewnętrzny oscylator jest hiperdokładny nawiązując do zawrotnie szybkiego RC5 ;] dsPIC33FJ obłożony ciężko robotą dekoduje mi perfekcyjnie RC5, chodzac z wewnetrznego zegara... Dodatkowo, można spróbować wyjaśnić, czym jest to przestępstwo: a lot of fun . Moze warto zastosować lokalne zmienne i na nich operować w kodzie przerwania, a dopiero pod koniec,...

    Mikrokontrolery AVR   22 Lip 2013 11:06 Odpowiedzi: 12    Wyświetleń: 1977
  • AVR C - Optymalizacja dostępu do rejestrów PORT przez struktury lub unie

    struct portb { unsigned DS:1; unsigned RW:1; unsigned AS:1; unsigned :2; unsigned LOAD:1; unsigned :1; unsigned CS:1; }; volatile struct portb* const Portb = (volatile struct portb*)&PORTB; Bez const kompilator nie ma pewności, że Portb będzie zawsze pokazywać na adres i/o i operacje bitowe będą dostępne....

    Mikrokontrolery   27 Gru 2007 11:37 Odpowiedzi: 3    Wyświetleń: 2111
  • [ATmega32L] Jak zmusić kompilator winAVR do poprawnej obsługi zmiennej Frame?

    Witam, mam dwa pliki projektu w C: interrupt. i main.c (dla uproszczenia). interrupt.c: static volatile TFrame Frame ={0}; SIGNAL (SIG_INTERRUPT0) { (...) //m.in. zmienia sie struktura Frame } main.c: extern TFrame Frame; void main (void) { (...) sei(); while (1) { if (Frame.state...

    Mikrokontrolery AVR   12 Paź 2008 19:33 Odpowiedzi: 14    Wyświetleń: 1636
  • Realizacja funkcji boolowskiej 4 zmiennych z użyciem RAM i projekt kostki 64MB

    I jeszcze jedno czy mógłby ktoś po ludzku wyjasnić co oznacza "pamięć o dostępie swobodnym" To znaczy, że masz dowolną kolejność dostępu do danych (np. możesz czytać kolejno spod adresów 1, 6, 2, 9, 10, 3 , a nie tylko kolejne 1,2,3,4,5 lub 8,9,10,11). Nazwa powstała dla odróżniena takiej pamięci od pamięci z dostępem sekwencyjnym (np. pamięci taśmowe...

    Początkujący Elektronicy   12 Cze 2005 06:24 Odpowiedzi: 4    Wyświetleń: 1343
  • [C] Wskaźnik, przepisanie wartości adresu do zmiennej

    Np coś takiego [syntax=c]struct{ unsigned int ModTempSet; unsigned int ModTermAkt; unsigned int ModObn; unsigned int ModAdr; unsigned int FAKE; unsigned int PUMP; unsigned char End; }Mod03; char *StructPtr; volatile int a, b; StructPtr =(char*) &Mod03.ModTempSet; //adres poczatku aa= (int)StructPtr; StructPtr =(char*) &Mod03.End; //adres konca bb= (int)StructPtr;...

    Programowanie Początkujący   31 Gru 2021 12:03 Odpowiedzi: 6    Wyświetleń: 309
  • Ustawianie pojedynczych bitów w strukturze w WinAVR - avr-gcc 3.4.1

    Nie wiem jak v3.4.1 ale w v3.4.3 efekt jes taki: struct biciki{ unsigned bicik1:1; unsigned bicik2:2; unsigned bicik3:1; }; struct biciki pole; ... int main(void) { pole.bicik1=1; pole.bicik2=3; pole.bicik3=1; ... //po kompilacji dla "struct biciki pole" ... 27:m128.c **** pole.bicik1=1; 148 .LM8:...

    Mikrokontrolery   15 Lip 2011 16:09 Odpowiedzi: 25    Wyświetleń: 3866
  • LPC1768 - brak sygnału PWM na P2.0, konfiguracja kanału 1

    Staram się uruchomić PWM w LPC1768 na kanale 1, wydaje mi się że poprawnie skonfigurowałem PWM lecz na wyjściu P2.0 brak zmiany stanu. Oto mój kod: [syntax=c] #ifdef __USE_CMSIS #include "LPC17xx.h" #endif #include <cr_section_macros.h> #include "lpc17xx_pwm.h" int main(void) { volatile static int i = 0 ; PWM_TIMERCFG_Type PWM_config; PWM_MATCHCFG_Type...

    Mikrokontrolery ARM   10 Lip 2014 18:38 Odpowiedzi: 5    Wyświetleń: 1158
  • Czy ta procedura i jej wywołanie jest prawidłowe? Jezyk C

    1. if'y po przekroczeniu 60 sekund / minut nie zwiększają o jeden, tylko ustawiają na jeden następną jednostkę (minutę / godzinę). Próbuję zgadnąć, czy tego chciałeś. Zerowanie w else mnie tez nie przekonuje, raczej w else po wojskowemu 'nie ma rozkazów, nic nie rób'. Nie wiem jaki był zamiar, ale ta arytmetyka mi się nie widzi. Być może z dwoma a nie...

    Mikrokontrolery Początkujący   12 Wrz 2017 12:05 Odpowiedzi: 2    Wyświetleń: 933
  • Timer2 ISR nie wyświetla godziny przy zegarze 1MHz i prescalerze 1024

    Może są inne błędy, ale: [syntax=c]volatile struct tm* t = 0;[/syntax] raczej nie wróży nic dobrego. t będzie wskazywało na komórkę pamięci o adresie 0 - rejestr R0 mikrokontrolera. Jeśli używasz wskaźników to musisz sobie przydzielić pamięć na strukturę na którą wskazują.

    Mikrokontrolery AVR   04 Gru 2014 18:39 Odpowiedzi: 13    Wyświetleń: 1062
  • [STM32F1] - Obsługa zewnętrznego SRAM przy pomocy FSMC

    Tam kod pomieszałem i tego Bank1_SRAM3_ADDR niema: Dodano po 7 Mógł byś pokazać jeszcze jak odwołujesz się do pamięci w trakcie zapisu i odczytu ? Dodano po 24 Coś się chyba rozsynchronizowuje, ponieważ przy takim kodzie: Dodano po 25 Dla testu ustawiłem tak: [syntax=c]FSMC_Bank1->BTCR[1] = 0x0fffffff; FSMC_Bank1E->BWTR[0] = 0x0fffffff;[/syntax] I teraz...

    Mikrokontrolery ARM   21 Lut 2014 12:32 Odpowiedzi: 11    Wyświetleń: 1779
  • Przykładowy kod w C do zapisu/odczytu pamięci zewnętrznej ATmega128

    Adresy urządzeń najlepiej zapisywać jako stałe preprocesora, a makra dostępu do rejestrów opierać właśnie o ten jeden adres (ewentualnie stworzyć strukturę i zrobić makro lokujące ją na stałe w przestrzeni).. coś w rodzaju: #define BASEADDR 0xFF00 #define rtl_io8(addr) (*(volatile u8*)(BASEADDR + (addr))) #define...

    Mikrokontrolery   14 Sie 2007 12:08 Odpowiedzi: 10    Wyświetleń: 1814
  • [C] attiny2313 – poprawa obsługi przerwań INT1, zmienne globalne, struktura main

    #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/pgmspace.h> int g=0; volatile c=0; SIGNAL (SIG_INTERRUPT1) { if (c==0) c=1; else c=0; } main(void) { PORTB=0xf0; DDRB=0x0f; PORTD=0x0c; DDRD=0xf3; while(1) { GIMSK...

    Mikrokontrolery AVR   05 Gru 2008 08:23 Odpowiedzi: 17    Wyświetleń: 1523
  • Źródła do nauki języka C: leksyka, operatory, biblioteki, struktury

    Witam. Bardzo was proszę o podawanie stron internetowych w których znalazłbym odpowiedzi do tych pytań: Przesłanki do konstrukcji i stosowania. języki w programowania. Wymagania dla JP. Panorama JP. Definicja JP. Elementy przetwarzania kodu źródłowego. C. Bibliografia. Leksyka C. Jednostki leksykalne C. Odst©py. Komentarze. Identyfikatory. Sˆowa...

    Programowanie   31 Maj 2005 21:16 Odpowiedzi: 7    Wyświetleń: 1206
  • [LPC1754] - Rzutowanie struktury na obszar pamięci.

    Dzięki za pomoc. Skorzystałem z funkcji w core_cm3 [syntax=c]uint32_t __REV16(uint16_t value) { uint32_t result=0; __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) ); return(result); }[/syntax] i wszystko działa już poprawnie. Z tym 8051 i AVR rzeczywiście nie korzystam ze zmiennych 16bit (sięgam do pojedynczych bajtów) wiec zapewne też...

    Mikrokontrolery ARM   25 Maj 2014 11:54 Odpowiedzi: 7    Wyświetleń: 1194
  • [C]Wyciąganie ze stringa i wpisywanie do tabeli struktur

    Mam następujący problem: dostaję ciąg znaków z rs'a, który zapisują do jednej zmiennej i chcę z tego ciągu wyciągnąć dwa podciągi i zapisać je do jednego wiersza tabeli struktur. Definicje: //przed main: #define UART_MAXBUFF 37 char uart_rx_buffer[UART_MAXBUFF+1]; //w main: char bufor[20] = ""; volatile typedef struct...

    Mikrokontrolery AVR   03 Kwi 2009 07:21 Odpowiedzi: 3    Wyświetleń: 1348
  • Jak wybrać poziom optymalizacji kodu w AVR-GCC i jego wpływ na działanie?

    W zasadzie jedynie słuszne poziomy to 2, 3 i s. Jeżeli używasz funkcji _delay_ms() i _delay_us() to nie wolno Ci stosować poziomu optymalizacji mniejszego niż 2, w przeciwnym wypadku będziesz miał w 'ciasnych' pętlach opóźnienia obliczenia zmiennoprzecinkowe. Osobiście najczęściej stosuję optymalizacje ze względu na rozmiar kodu (s), która w większości...

    Mikrokontrolery   27 Wrz 2006 21:27 Odpowiedzi: 3    Wyświetleń: 1997
  • Gdzie znaleźć listę rozkazów dla STM32F410RB? Różnice w instrukcjach.

    (at)stmx nie wiem jak Ty zaczynasz poznawanie nowych języków Od nauki podstaw z książek. Wycięta złośliwość Tutaj na przykład dowiedziałem się jak utworzyć zmienną i jak zapisać do niej wartość: Oooo.... Twierdzę że daleko Ci do tego. odpowiedz np na pytanie co to za słowo volatile i co ono tam robi. Wycięta złośliwość I dzięki temu mogę poznać całą...

    Mikrokontrolery Początkujący   16 Sty 2019 20:32 Odpowiedzi: 121    Wyświetleń: 4815
  • [STM32F4][C] - Zamiana bajtów miejscami "w locie"

    Spróbowałem Twojego pomysłu z NOLOAD: [syntax=c] ._heap (NOLOAD): { . = ALIGN(4); __heap_start = .; PROVIDE(__heap_start = __heap_start); . += __heap_size; . = ALIGN(4); __heap_end = .; PROVIDE(__heap_end = __heap_end); } > sdram .frame (NOLOAD): { . = ALIGN(4); __frame_start = .; PROVIDE(__frame_start = __frame_start); . = ALIGN(4); *(.frame) . = ALIGN(4);...

    Mikrokontrolery ARM   18 Mar 2015 15:53 Odpowiedzi: 59    Wyświetleń: 3384
  • [AVR-GCC] - Problem z przesyłaniem struktury przez USART w C

    Według mnie jest to problem z optymalizacją, wyłącz optymalizację i sprawdź wynik. Już po raz kolejny widzę tego typu problem. Możesz jeszcze spróbować czegoś takiego: void DoUSART(unsigned char * volatile data, uint8_t length) { data++; for(uint8_t i=0; i<length; i++, data++) { UDR=*data; } } a tak po za tym to...

    Mikrokontrolery   13 Lut 2011 15:17 Odpowiedzi: 15    Wyświetleń: 2636
  • Jak zadeklarować zmienne na portach GPIORx w AVR XMEGA/ATMega?

    Witam , Kolejny problem C-beginners , Usiłuję rozsupłać dostęp do rejestrów GPIORx procesorów AVR, ponieważ nic zadowalającego nie wymyśliłem , pozwolę sobie tylko nazwać problem. Potrzebuję umieścić zmienne na portach GPIORx , aby móc wymusić / usilnie domagać się , od kompilatora wykorzystania znanych instrukcji szybkiego dostępu bitowego do rejestrów...

    Mikrokontrolery AVR   13 Lut 2014 09:38 Odpowiedzi: 7    Wyświetleń: 2457
  • [avr-gcc] tablica 128 bitów - sposób utworzenia: struct?

    Może wystarczy utworzyć dwie funkcje operujące na tablicy bajtów: pierwsza pobierająca konkretny bit, druga do wymuszenia wartości konkretnego bitu: uint8_t getbit(const uint8_t* arr, uint8_t bitnum) { uint8_t mask = 1; if(bitnum & 2) mask <<= 2; if(bitnum & 1) mask <<= 1; if(bitnum & 4) mask...

    Mikrokontrolery   05 Gru 2009 11:25 Odpowiedzi: 13    Wyświetleń: 3182
  • [GCC] Jak przekazać definicje z GCC do asemblera AVR?

    Czytaj ze zrozumieniem. Opuściłeś sekcję rejestrów wyjściowych, która tutaj powinna być pusta: asm volatile("sbi %0, 0x07" : : "I" (_SFR_IO_ADDR(PORTB))... Zresztą po co komu taka wstawka? Przy optymalizacji -Os lub -O2 avr-gcc generuje dokładnie taką samą instrukcję dla kodu PORTB |= 0x07; Pozdrawiam,...

    Mikrokontrolery AVR   27 Gru 2008 01:21 Odpowiedzi: 9    Wyświetleń: 2206
  • AVR C++ - Deklaracja obiektów globalnych bez użycia volatile

    W mojej strukturalnej "bibliotece" większość z tych funkcji była typu inline i takie będą domyślnie w nowej "bibliotece". Dopiero zaczynam zabawę z C++na uC, dlatego też tworzę wszystko po kolei, żeby błędy się nie nawarstwiały :) Pytanie techniczne. Przy deklaracji obiektu globalnego można wywołać jego konstruktor? Czytałem, że czas jego [konstruktora]...

    Mikrokontrolery   21 Lut 2016 22:33 Odpowiedzi: 15    Wyświetleń: 1290
  • Debugowanie rejestrów i kodu krok po kroku w Atmel Studio 6.2

    To zamiast RTC.CNT wpisz tylko RTC, wtedy pojawi ci się znacznik, że jest to struktura (taki plusik) i będziesz mógł ją rozwinąć, obserwując wartości jej pól. Niewykluczone, że zadziała też RTC_CNT. Właśnie niestety nie działa. Zarówno wpisanie RTC, RTC_CNT czy PMIC_CTRL w oknie watch zwraca: Unknown identifier Potrzebuje tej funkcjonalności gdyż chciałbym...

    Mikrokontrolery Początkujący   18 Lut 2015 09:28 Odpowiedzi: 4    Wyświetleń: 1131
  • [ATMEGA8] Problem z obsługą RS - co robie nie tak?

    Mam problem z uruchomieniem prostego programu na ATMEGA8. Mega jest podpięta z SN75176 (odpowiednik MAX485) i mam podłączone dwie takie płytki. Każda płytka ma przycisk i element wykonawczy (triak). Program ma za zadanie zbierać informacje z sieci (gdy wciśniemy przycisk na płytce B, powinien się załączyć triak na płytce A i odwrotnie) i w razie potrzeby...

    Mikrokontrolery AVR   03 Lip 2009 08:35 Odpowiedzi: 15    Wyświetleń: 2796
  • [AT91SAM7S256] Implementacja USB Framework Atmela...

    Cześć Musisz zdefiniować parę struktur - ich deklaracje znajdziesz w pliku "usb.h". Parametr o który pytasz powinien być wskaźnikiem do struktury : //--------------------------------------... //! \ingroup usb_api_struct //! \brief Main USB structure used to store the states of the various //! components, such as...

    Mikrokontrolery   16 Wrz 2007 21:00 Odpowiedzi: 6    Wyświetleń: 1636
  • Atmega128L i SRAM BS62LV1024 - Jak poprawnie podłączyć i używać pamięć?

    Nie wiem po co się tak męczyć. Pamięć zewnętrzna jest zamapowana do tej samej przestrzeni, w której jest wewnętrzna pamięć ram. Można więc posiadać wskaźnik, który będzie wskazywał komórkę w wewnętrznej pamięci, a po przypisaniu innego adresu może wskazywać na zewnętrzną pamięć. Gdyby napisać: struct jakis_skomplikowany_obiekt* my_obj = (void*)0x2345;...

    Mikrokontrolery   29 Lip 2008 12:05 Odpowiedzi: 25    Wyświetleń: 3486
  • [Attiny25,C] - Pusty wskaźnik do funkcji w strukturze.

    Witam ! Piszę program do sterownika oświetlenia, napotkałem się na następujący problem , oto kod : [syntax=c] #include <stdio.h> #include <stdlib.h> #define PIN_TRIAC (0) static struct { volatile enum States {ON,OFF} state; // stan wlaczony czy wylaczony volatile char pval; // wartosc mocy w % od 0 do 100 void (*TurnOn)(void); //wlacz void...

    Mikrokontrolery AVR   16 Mar 2014 16:38 Odpowiedzi: 6    Wyświetleń: 942