funkcja static inline

Znaleziono około 202 wyników dla: funkcja static inline
  • AVR Studio: Jak wymusić dołączenie funkcji przy optymalizacji gcc?

    no to doczytaj sobie jeszcze o takich rodzajach funkcji jak inline static itp - to znowu ci się wiele rozjaśni ;)

    Mikrokontrolery AVR   22 Lis 2009 18:14 Odpowiedzi: 5    Wyświetleń: 1107
  • [C][Mega128]Dziwne zachowanie po usunięciu zmiennej

    Dziwny ten twój program. Po pierwsze wywal te swoje procedury obsługi EEPROM i użyj tych z biblioteki AVR-libc, wyeliminujesz jedną z możliwych przyczyn. Poza tym w przerwaniu nie używaj cli i sei, nie jest to potrzebne - wejście w przerwanie automatycznie blokuje kolejne. sei() na końcu może być niebezpieczne, jeśli twoje przerwanie SPI jest za długie,...

    Mikrokontrolery   08 Gru 2010 13:50 Odpowiedzi: 6    Wyświetleń: 1197
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • [F103] Stan 0 zamiast 1 na pinie B7 w trybie input_pull - co robię źle?

    W ten sposób tylko skonfigurowałeś pin jako wejście z podciąganiem, a stan został 0, bo po resecie rejestr GPIOB->ODR jest domyślnie = 0. Żeby wymuszać stany można zdefiniować sobie proste funkcje: [syntax=c] static inline void gpio_pin_LO(GPIO_TypeDef * const port, T_GPIO_PIN pin) { port->BRR = pin; } static inline void gpio_pin_HI(GPIO_TypeDef * const...

    Mikrokontrolery ARM   31 Mar 2019 20:33 Odpowiedzi: 12    Wyświetleń: 513
  • REKLAMA
  • [AVR] [AVR][C] Błędy w wyświetlaniu znaków na HD44780 - biblioteka własna

    Funkcje static inline powinny znajdować się w pliku nagłówka (.h). To troche przesadzone.

    Mikrokontrolery AVR   07 Mar 2012 14:37 Odpowiedzi: 16    Wyświetleń: 2951
  • [STM32] - Błąd składni przy konfiguracji GPIO w nowym programie

    I czemu Ty na miłość boską wkładasz całą funkcję w header ? To właściwe miejsce na funkcję "static inline" Albert

    Mikrokontrolery ARM   16 Sie 2012 10:28 Odpowiedzi: 8    Wyświetleń: 1362
  • REKLAMA
  • PIC18F46K22 - Rezystory podciągające i niedziałająca klawiatura matrycowa

    Oprócz błędu wspomnianego przez poprzednika (użycie rejestrów LAT* zamiast PORT*) popełniasz błąd wpisując definicję funkcji do pliku nagłówkowego. Tam powinny być tylko deklaracje, (ewentualnie funkcje static inline). Albert

    Mikrokontrolery PIC   04 Gru 2014 18:18 Odpowiedzi: 3    Wyświetleń: 1683
  • AVRStudio 5 Funkcja inline błąd linkera "undefined reference to"

    Więc tnij jak pisałem, nie przejmując się czy działa tylko błędem. Wtedy znajdziesz i będziesz mądrzejszy ;-) Aha, a czy pies nie jest pogrzebany w braku static przed inline? Albert

    Mikrokontrolery   18 Sie 2011 09:11 Odpowiedzi: 13    Wyświetleń: 2931
  • Atmel Sytudio 6.1 - Pliki z rozszerzeniem *.h Mam kilka pytan.

    Warto dodać, że jak od każdej reguły, także tu są pewne wyjątki - w plikach nagłówkowych czasami umieszcza się definicje funkcji static inline - efektem jest osadzenie w kodzie dołączającym nagłówek tychże funkcji, można także umieszczać definicje zmiennych static const - takie zmienne efektywnie zachowują się jak symbol zdefiniowany przez #define.

    Mikrokontrolery Początkujący   21 Kwi 2013 14:17 Odpowiedzi: 8    Wyświetleń: 1938
  • [Programowanie] Zarządzanie wieloma plikami projektu(ów)

    Przy czym przestrzegam cię przed makrami, to pozornie fajne jest ale pozbawiasz się kontroli typów i co gorsze, przekazywanie parametrów do makra wygląda inaczej niż do funkcji, co może prowadzić do błędów. Generalnie to co dają makra uzyskasz bezpiecznie poprzez definiowanie funkcji static inline w nagłówku.

    Mikrokontrolery   29 Kwi 2012 18:00 Odpowiedzi: 19    Wyświetleń: 1870
  • REKLAMA
  • [HD44780] - Wpływ pinu R/W na szybkość działania w trybie 4-bitowym

    Zgadzam się z kolegą wyżej, poza tym można taką funkcję zrobić statyczną (static inline) i nie zobaczysz różnicy w ogóle. Takie warunki można zastąpić czymś szybszym - bezpośrednim wywołaniem wskaźnika na funkcję z tablicy. Wtedy nie ma tysiąca warunków, jest tylko dereferencja i wywołanie, ale po co ? Wielu programistów tu na forum zapomina (albo nie...

    Mikrokontrolery   01 Sie 2014 11:31 Odpowiedzi: 54    Wyświetleń: 7156
  • LPC1768 CMSIS 2.0 i KEIL - Porażające błędy w implementacji CMSIS?

    GCC znakomicie optymalizuje funkcje typu static inline. I sam się zastanawiałem dlaczego nie są one używane zbyt chętnie w bibliotekach obsługi peryferiów dostarczanych przez producentów procesorów z rdzeniem ARM. Przedstawiony powyżej kod, zapisany jako funkcja static inline, przy włączonym jakimkolwiek poziomie optymalizacji, przy podaniu na wejście...

    Mikrokontrolery ARM   15 Lis 2013 20:02 Odpowiedzi: 30    Wyświetleń: 4146
  • Użycie static przed funkcją w C na STM32 - co to oznacza?

    Generalnie taki jest właśnie sens użycia static. Jeśli funkcja ma być dostępna w różnych miejscach, to umiść ją w nagłówku jako static inline.

    Mikrokontrolery Początkujący   12 Sie 2019 13:24 Odpowiedzi: 37    Wyświetleń: 2607
  • [C] Jak użyć makra w C, by preprocesor zamienił nazwę na wartość?

    OK, ale tu nie ma żadnej magii. Widzę tylko dwa sensowne rozwiązania: 1. IdKoprocesoraX deklarujesz przez #define, używasz pierwszej wersji makr i generujesz kod bardziej optymalny. 2. Używając drugiej wersji makr, możesz umieścić numer koprocesora w zmiennej. To się może przydać np. gdyby jeden drajwer mógł obsługiwać więcej niż jeden koprocesor. Albo...

    Programowanie   21 Lut 2008 17:23 Odpowiedzi: 17    Wyświetleń: 1616
  • ATmega 8 - Funkcje inline - statement with no effect

    (at)excray To wlasnie funkcje inline sie umieszcza w naglowku (jezeli planuje sie uzywac je w wielu modulach). Kolega zapomniał jeszcze o static. BTW. To nie jest wywolanie funkcji :) [syntax=c] ... set_SDIN ... [/syntax]

    Mikrokontrolery Początkujący   04 Paź 2015 12:06 Odpowiedzi: 6    Wyświetleń: 840
  • XMega AVR - Jak zadeklarować indeksowaną zmienną bitową w C

    Cóż, jestem w "C" zaledwie rozpoczynającym ( kolejny raz :cry: ) , ale próbowałem już Clean Project/Solution itp. a ciągle wywala właśnie tę jedyną definicję .. ps. w Output jest wskazanie na ten właśnie plik gdzie zamiast tej pierwotnej funkcji static inline wpisałem tą z "always_online" ps2. chwilowo moja zaraza ==> win10 "zbisurmanił się " i nie...

    Mikrokontrolery AVR   17 Gru 2016 00:04 Odpowiedzi: 106    Wyświetleń: 4386
  • [ATxmega128A3][avr-gcc] - Makrodefinicje I/O w Xmega

    Dziękuję koledze za interwencję :) Powinienem założyć temat w dziale dla początkujących. Wracając do tematu, rzecz w tym że zmieniam biblioteki z megi na xmegę i muszę pozmieniać macra pinów wyświetlacza i nie wiem czy mógłbym zastosować funkcję static inline void LED_on(). Dzięki wcześniejszej pomocy udało mi się zmienić poprawnie bibliotekę. Pozdrawiam...

    Mikrokontrolery Początkujący   10 Wrz 2012 15:31 Odpowiedzi: 5    Wyświetleń: 2184
  • zestaw uruchomieniowy AVR ,filtracja i Atmel Studio

    Masz 2 błędy: 1. Funkcja delay nie jest static. 2. Przekazujesz do _delay_ms wartość nie znaną na etapie kompilacji. [syntax=c]static inline void delay(uint16_t cnt) { #if !DEBUG while (cnt--) _delay_ms(1); #endif }[/syntax] BTW: Wklejając tutaj kod + komunikaty błędu kompilacji będziesz miał większe szanse na uzyskanie pomocy niż w przypadku screen...

    Mikrokontrolery AVR   22 Lip 2017 22:46 Odpowiedzi: 117    Wyświetleń: 6837
  • Jak poprawnie używać funkcji static w C z WinAVR?

    loocasm : funkcje static inline w nagłówku owszem mogą być, aczkolwiek nie powinno się tego stosować zbyt często - jeśli funkcja jest długa i nigdy nie została by wstawiona inline przez kompilator, to zostanie ona skompilowana w każdym module w którym jest używana z osobna - wynika to z tego, że kompilator ignoruje wtedy inline, po wstawieniu nagłówków...

    Mikrokontrolery AVR   27 Sie 2009 14:53 Odpowiedzi: 6    Wyświetleń: 2884
  • Dlaczego przesunięcie bitowe w AVR zwraca nieoczekiwany wynik?

    nie wiem po co tu static Bez static funkcja jest globalna. Na etapie kompilacji kompilator nie wie czy ta funkcja nie jest jeszcze gdzieś wykorzystywana i musi ja zostawić jako zwykłą funkcję dla linkera. Jeśli dasz static funkcja staje się lokalna i kompilator może ją wstawiać jako inline . Żeby funkcja static inline była globalnie widoczna trzeba...

    Mikrokontrolery AVR   24 Lip 2011 14:37 Odpowiedzi: 18    Wyświetleń: 2669
  • Jak skonfigurować AVR Studio 6 na Windows 7 dla ATMega32?

    Musisz niestety troszkę się pouczyć C. Includuje się pliki .h, które zawierają: [syntax=c]/* definicje i makra */ #define STRSIZE 50 /* deklaracje typów */ typedef struct { int a; float f; double d; char c[STRSIZE]; }mytype; /* deklaracje funkcji ale bez definicji (czyli "ciała") */ int foo(int,int, mytype *); /* ddeklarcje extern - zmiennych zdefiniowanych...

    Mikrokontrolery AVR   17 Sty 2019 20:15 Odpowiedzi: 23    Wyświetleń: 2202
  • Silnik DC nie obraca się w przeciwnym kierunku z mostkiem H TB6612FNG

    Dobra naprawiłam, miałam malutki błąd w programie i podczas 'suchego' testu bez żadnych warunków czy funkcji silnik kręci sie w obie strony i zatrzymuje się. Ale wewnątrz pętli lub warunku pojazd nie jedzie do tyłu. Stoi w miejscu. Gdy w programie wprowadzam komendę jazdy do przodu (obroty w kierunku zgodnym z ruchem wskazówek zegara) albo zatrzymania,...

    Mikrokontrolery AVR   17 Lut 2016 01:33 Odpowiedzi: 3    Wyświetleń: 1245
  • Jak zmierzyć czas wykonania funkcji w AVR Studio z AVR-GCC?

    Nie jest to możliwe, gdyż optymalizacja _delay jest zabroniona - zawiera ona volatile. Dlatego też napisałem właśnie, że wydaje mi się to dziwne - nie miałem pod ręką kompilatora aby sprawdzić czy tam jest volatile w środku. Czyli mój trop był błędny. Dodatkowo nie ma atrybutu zezwalającego na zastąpienie wywołania wynikiem funkcji (__attribute__(const))....

    Mikrokontrolery AVR   24 Wrz 2013 17:15 Odpowiedzi: 11    Wyświetleń: 2994
  • [AVR|C] agresywna optymalizacja gcc - co pominąłem

    Nie. Kiedyś funkcja była jako static inline z atrybutem always_inline, no i kompilator skracał sobie bezpośrednie wywołania. Bez tego volatile komunikacja częściej zawodzi.

    Mikrokontrolery   04 Lip 2012 16:46 Odpowiedzi: 5    Wyświetleń: 1381
  • [STM32] Czy warto używać bibliotek ST w projektach z STM32?

    pomijając parę innych kwestii, chociażby możliwość deklarowania funkcji jako inline (tak, wiem, w przypadku zwykłego słówka "inline" jest to tylko sugerowanie kompilatorowi, żeby inline'ował, ale np. w przypadku gcc można funkcji nadać taki atrybut: __attribute__((always_inline)) i wtedy kompilator nie ma wyboru, nawet gdy ma optymalizacje ustawione...

    Mikrokontrolery ARM   15 Sty 2016 12:53 Odpowiedzi: 152    Wyświetleń: 33247
  • LPC1343 - problem z kompilacją AN11018: USB composite device on the LPC134x

    Akurat funkcje te są zdefiniowane i wywoływane w jednym pliku... Możesz pozbyć się __inline lub lepiej poprzedić deklaracja static, np. -fgnu89-inline Kiedy usuniesz __inline uC będzie za każdym razem skakał do adresu gdzie znajduje się funkcja, zamiast wstawiać ciało za każdym razem kiedy funkcja jest wywoływana. Poczytaj https://gcc.gnu.org/onlinedocs/gcc/Inlin...

    Mikrokontrolery ARM   20 Kwi 2017 15:02 Odpowiedzi: 6    Wyświetleń: 1281
  • AVR-GCC funkcja inline w kilku plikach źródłowych

    W zasadzie słowo inline to tylko wskazówka dla kompilatora i kompilator nie ma obowiązku jej wykorzystać. Faktyczne zachowanie zależy od opcji optymalizacji (i heurystyki kompilatora). Zapewne masz opcję -Os i to jest rezultat. Myślę jednak, że powinno pomóc (dając najmniej efektów ubocznych) zdeklarowanie tych funkcji jako static inline zamiast tylko...

    Mikrokontrolery   17 Kwi 2008 09:39 Odpowiedzi: 10    Wyświetleń: 3054
  • [ATMEGA16] [ATMEGA16][C] - Jak zmierzyć długość przerwy między bitami na INT0?

    warning: function declaration isn't a prototype - wyskakują mi takie 3 warningi, odnoszą się one do funkcji inline static void, czyli inicjacja, StartZliczania i StopZliczania. Szukałem odpowiedzi w dokumentacji, ale nic nie znalazłem. Wiecie co może być źle??

    Mikrokontrolery AVR   15 Wrz 2009 17:24 Odpowiedzi: 25    Wyświetleń: 2157
  • Attiny2313 a atmega128. Odniesienie do funkcji inline.

    No to przeczytaj (najlepiej w K&R skoro już go masz) co powoduje inline. W skrócie - nie da się pobrać adresu funkcji inline - bo ona nie istnieje jako osobna funkcja. Teoretycznie jeśli niejest zadeklarowana jako static inline, to kompilator powinien tworzyć dwie wersje - jedną inline i jedną zwykłą funkcję, której adres możesz pobrać. Niemniej inline...

    Mikrokontrolery AVR   02 Gru 2010 10:37 Odpowiedzi: 5    Wyświetleń: 1305
  • [STM32F405] - Wprowadzenie wzoru - funkcje trygonometryczne

    Po pierwsze to powinieneś solidnie komentować takie funkcje. Opisz sobie dokładnie które zmienne powinny mieć jakie jednostki. Gdybyś to zrobił to byś zobaczył że do zmiennej która trzyma wartość w stopniach przypisujesz radiany. Dalej - zastąp RAD2ST makrem DEG2RAD(x). Będzie czytelniej. Jeżeli nie masz jakiejś kosmicznej konieczności stosowania liczb...

    Mikrokontrolery ARM   09 Lut 2015 14:17 Odpowiedzi: 4    Wyświetleń: 1440
  • [ATMEGA128]Mikrokontroler zawiesza się w pustej funkcji

    Cze, //Funkcja inline static void spi_init(void) { return; } //Program główny int main() { DDRB |= 1<<5; PORTB &=~(1<<5); spi_init(); while(1) PORTB |= 1<<5; } Sprawdzam stan na porcie PORTB5. Gdy zakomentuje wywołanie funkcji, program działa. Jest stan wysoki na wyjściu....

    Mikrokontrolery AVR   24 Lis 2010 11:51 Odpowiedzi: 12    Wyświetleń: 1356
  • Kompilator nie znajduje definicji funkcji inline w C - jak to rozwiązać?

    Jeżeli funkcji dajesz kwalifikator "inline", to kompilator może próbować rozwinąć ją w miejscu wywołania ("inline" to tylko sugestia, nie wymaganie), ale aby mógł to zrobić musi widzieć definicję (ciało) funkcji w tej samej jednostce kompilacji, co wywołanie. Jeżeli będzie widział tylko deklarację, to wstawi normalne wywołanie. Stąd często funkcje inline...

    Programowanie   05 Sie 2015 13:56 Odpowiedzi: 11    Wyświetleń: 1305
  • Jak wyświetlić napis 'Hello World' na wyświetlaczu TFT używając STM32F411RET i FT800?

    Podmieniłem #define EVE_CFAF800480E0_050SC (ta z linii 104) na #define EVE_RVT35. Pytanie dlaczego akurat tutaj trzeba to podmienić skoro w 75 linii jest to samo #define EVE_RVT35 ?? Poniewaz wszystkie wczesniejsze #define masz w warunku #if 0 #endif czyli niespelnionym. Zreszta w CubeIde powinienes miec to zaznaczone na szaro (wylaczone). Czy zatem...

    Mikrokontrolery ARM   15 Paź 2020 08:40 Odpowiedzi: 13    Wyświetleń: 1356
  • czekanie na wciśnięcie przycisku - ograniczone czasowo

    Wybacz ze wyjde nieco poza temat, ale musze zapytac. CZy deklarowanie krótkich funkcji jako 'static inline' w jakis sposób przyspiesza działanie programu? Ew. upraszcza program? i jaki w praktyce jest sęs jej stosowania (poprostu co mi to da ;) ). (w C jestem poczatkujacym, mam mase nawyków z PHP, który to jezyk dobrze znam, a których to nawyków chce...

    Mikrokontrolery   31 Sie 2008 10:20 Odpowiedzi: 19    Wyświetleń: 2598
  • Zliczanie impulsów enkodera 100 impulsów/obrót – AVR, wyświetlacz nie reaguje

    Nie do końca. Kompilator musi wygenerować ciało funkcji tylko jeśli program pobiera jej adres. W sytuacji, w której program składa się z oddzielnych modułów kompilacji oczywiście tego stwierdzić nie może i dopiero wtedy linker może ten kod usunąć (--gc-sections). Z drugiej strony linker sam od siebie spisze się dobrze i zbędny kod usunie bez dodatkowych...

    Mikrokontrolery AVR   27 Gru 2012 23:08 Odpowiedzi: 20    Wyświetleń: 4389
  • [Atmel Studio, C] Funkcje w osobnych plikach zajmują więcej pamięci uC

    To jest normalna różnica związana z optymalizacją kodu. Kompilator prawdopodobnie w 2 przypadku zamienił Twoje funkcje na inline. Przenoszenie funkcji do osobnego modułu ma sens jeżeli chcesz z takiej funkcji skorzystać wielokrotnie. Wtedy rzeczywiście oszczędza się miejsce w przeciwieństwie do Twojego przypadku. PS 1: Funkcje wykorzystywane tylko w...

    Mikrokontrolery Początkujący   24 Kwi 2016 22:11 Odpowiedzi: 8    Wyświetleń: 1335
  • ATMEGA8515: Makro do ustawiania portów jako wyjścia nie działa poprawnie

    A najgorsze, że nie byłoby jak podzielić go wtedy na dwa pliki. Aż strach pomyśleć jak wyglądają Twoje programy zapisane tylko w maini.c. Plus jeden do designu oprogramowania. Idąc Twoja logiką możnaby zapisać ten program w jednej linii. Jakby nie działał to od razu wiadomo w której linii jest błąd. Zastąp ten fragment tym co (at)BlueDraco napisał....

    Mikrokontrolery Początkujący   26 Kwi 2017 00:55 Odpowiedzi: 13    Wyświetleń: 1398
  • [avr-gcc] Konflikt typów przy wywołaniu funkcji przerwaniowej INT0_vect na atmega8

    Nie moge z nią zrobić jak z inną funkcją bo funkcja przerwaniowa ma określony adres. A inna funkcja ląduje tam gdzie ląduje. Nie, to adres tej funkcji umieszczany jest w odpowiednim miejscu. No to jak skonstruować taki kod dla avr-gcc? Aby jeszcze był przenośny pomiędzy atmegami? Najlepiej static inline i w obu miejscach wywołać taką funkcję,

    Mikrokontrolery   01 Maj 2021 22:23 Odpowiedzi: 12    Wyświetleń: 555
  • Jak zmieniać porty I2C w MIDE-51 bez błędów kompilatora?

    Mimo tego zawiłego opisu, nie jestem pewien, czy dobrze zrozumiałem, co chcesz zrobić. Piszesz w C? Bo, jak rozumiem, MIDE to środowisko, zakładam, że w C. Masz dwie możliwości: 1. Przekazać numer portu i bitu jako argumenty do funkcji. Nie jestem 100% pewien, czy na 51-ce da się pośrednio adresować porty, ale chyba tak. Tylko takie rozwiązanie troche...

    Mikrokontrolery   25 Gru 2008 23:20 Odpowiedzi: 8    Wyświetleń: 1284
  • [c] Jak poprawnie includować pliki w AVR Studio 4 bez błędów?

    Nie ma jednoznacznej odpowiedzi na to pytanie. Wszystko zależy gdzie ta funkcja zostanie umieszczona - w pliku nagłówkowym, czy źródłowym i od jej prototypu. O ile będzie w pliku źródłowym, a prototyp nie będzie zawierał static lub inline to funkcja zostanie stworzona tylko raz, niezależnie od ilości jej wywołań. Przy czym to też nie jest tak pewne...

    Mikrokontrolery AVR   01 Mar 2011 18:46 Odpowiedzi: 30    Wyświetleń: 3885
  • [STM32F1][c/asm] - ilość cykli zegara miedzy dwoma kolejnymi instrukcjami ldr

    To są jednak rejestry sprzętowe i należy to minimalnie zmodyfikować (nie sprawdzałem poprawności adresów itp) [syntax=c]#define DWTEn() (*((volatile uint32_t*)0xE000EDFC)) |= (1<<24) #define CpuTicksEn() (*((volatile uint32_t*)0xE0001000)) = 0x40000001 #define CpuTicksDis() (*((volatile uint32_t*)0xE0001000)) = 0x40000000 #define CpuGetTicks()...

    Mikrokontrolery ARM   02 Lis 2018 14:41 Odpowiedzi: 7    Wyświetleń: 795
  • [C][AVR Studio] Załączanie plików źródłowych - błąd "undefined reference to

    Czy w projekcie jest załączony plik zawierający definicję (a nie tylko deklarację) ciał tych funkcji? Czy nie są one zadeklarowane z jakimś modyfikatorem typu static, lub inline?

    Mikrokontrolery AVR   11 Cze 2012 15:58 Odpowiedzi: 3    Wyświetleń: 3086
  • [C] Dlaczego wysyłanie stringu przez RS232 się zapętla? Jak dodać znacznik końca?

    Jak juz to lepiej ( bo mniej operacji) tak (bazując na hioba propozycji) void Wyslij_USART(unsigned int dana)// zadne static, to nie C++ ani funkcja inline { while(!(UCSRA & (1 << UDRE))); UDR = dana; } void Tekst_USART(char *tekst) { while(*tekst) { Wyslij_USART(*text++);...

    Mikrokontrolery AVR   16 Wrz 2008 07:01 Odpowiedzi: 12    Wyświetleń: 3126
  • [STM32] - Ilość plików a wielkość kodu wynikowego.

    Odwracasz kota ogonem. Nigdzie nie pisałem, że ta oszczędność do czegokolwiek jest potrzebna. Ale skoro autora to gnębi, to mu odpowiadamy. A poznanie kompilatora może kiedyś się przydać. Piszesz o asemblerze, modyfikatory typu const, static, inline po coś wymyślono. Dobrym nawykiem jest informować kompilator o swoich intencjach, a nie pisać byle się...

    Mikrokontrolery ARM   20 Wrz 2015 21:12 Odpowiedzi: 25    Wyświetleń: 1458
  • C++ Cortex-Mx - C++ i lużne dywagacje na starcie...

    (at)Tadzik ale o co Ci chodzi z tym static inline na końcu bo nie łapię? Taki twór służy "lepszej implementacji makra" w nagłówku. Nie pamiętam jak dokładnie standard mówi ale tak z głowy to z tego co pamiętam z dok. gcc: a. inline to sugestia, jakby co masz jeszcze attribute always_inline b. i tak musi być utworzona kopia tej funkcji, żebyś mógł pobrać...

    Mikrokontrolery ARM   29 Maj 2015 10:52 Odpowiedzi: 38    Wyświetleń: 2820
  • Jak wymusić użycie INLINE w AVR-GCC zamiast wywołań CALL?

    Freddie Chopin : Funkcja inline jest wstawiana tylko w obrębie aktualnego modułu (kiedy to kompilator posiada funkcję w postaci nie skompilowanej i może ją w miejscu zoptymalizować do funkcji wywołującej). Jeśli funkcja nie jest statyczna, to mimo to pojawi się w ciele modułu jedna kopia ogólna, którą można wywoływać z zewnętrznych modułów (w nagłówku...

    Mikrokontrolery   05 Sty 2009 20:43 Odpowiedzi: 19    Wyświetleń: 4298
  • m8 [c] ATMEL STUDIO - dziwne zachowanie odczyt z PROGMEM

    Ok, tak może (nie musi) zrobić kompilator, jeśli symbol ma atrybut static. Tylko po co polegać na optymalizacji, skoro to samo można uzyskać bez tej optymalizacji nie tworząc zbędnych danych w pamięci? Bez takiej optymalizacji kod będzie dłuższy i wolniejszy. Kontrola typu stałej rzadko ma uzasadnienie. Moim zdaniem więcej strat niż zysków. Poza tym...

    Mikrokontrolery AVR   26 Gru 2012 22:47 Odpowiedzi: 20    Wyświetleń: 3096
  • Avr4studio nie kompiluje I2C dla akcelerometru MMA7455L - co sprawdzić?

    Witam, Przepisałem dokładnie cały przykład inicjalizacji interfejsu I2C z ksiązki Tomasza Francuza, a mimo to Avrstudio nie pozwala mi go skompilować. Szukałem pomocy w innych przykładach ale nie widze błędu. Prosze o pomoc. //Próbuje uruchomić akcelerometr mma7455l [syntax=c]#include <avr/io.h> // Załaduj bibliotekę input/output #include <avr/interrupt.h>...

    Mikrokontrolery Początkujący   28 Cze 2014 20:18 Odpowiedzi: 4    Wyświetleń: 1062
  • [C] zmienne static globalne/lokalne dwa pliki + nagłówki .h

    Pliki nagłówkowe zazwyczaj tworzy się, aby umożliwić współdzielenie - typów danych, funkcji, czy zmiennych globalnych - pomiędzy oddzielnie kompilowanymi plikami źródłowymi. Z tego powodu deklarowanie zmiennych globalnych czy funkcji w plikach nagłówkowych jako static z reguły nie ma sensu, bo chodzi nam o to, aby te zmienne były współdzielone, czyli...

    Programowanie Początkujący   01 Cze 2009 16:42 Odpowiedzi: 7    Wyświetleń: 5712
  • [C] Jak połączyć trzy bajty w 24-bitowy rejestr w C? Błąd przesunięcia bitowego

    Wielkie dzięki za pomoc. Ale mam jeszcze jedną prośbę. Potrzebuję odczytywać z różnych rejestrów o różnych długościach (8,16,24 bity). Jak napisać tą funkcję aby była ogólna a żebym nie musiał mieć trzech różnych funkcji odczytujących? Mirek podał ci rozwiązanie z makrami, skuteczne, ale makra są ryzykowne. To samo zrobisz klasyczną funkcją w C. Po...

    Mikrokontrolery AVR   06 Maj 2012 21:04 Odpowiedzi: 36    Wyświetleń: 5158
  • Atmega 8 - Atmega + 74hc595 nieprowidłowa komunikacja SPI

    Filtrować zasilanie zawsze warto. Ja przy swoim hc pin sclr podciągałem zawsze przez rezystor 470. Dodatkowo moja funkcja wygląda tak: [syntax=c]void Master_SPI_Transmit(uint8_t data) { SPI_RESET_SS(); SPDR=data; while(!(SPSR & (1<<SPIF))); SPI_SET_SS(); }[/syntax] Gdzie [syntax=c]static inline void SPI_SET_SS() { PORTB|=(1<<PB2); }...

    Mikrokontrolery Początkujący   27 Wrz 2012 12:39 Odpowiedzi: 6    Wyświetleń: 4716
  • [ATmega32] Błędy kompilacji w kursie C dla ATmega32 z avrlib 1.6 na ZL3AVR 16MHz

    Powiedz mi jeszcze, dlaczego trzeba zrobić takie zmiany. Mógłbyś to krótko wytłumaczyć?? Bo atrybuty, w rodzaju PROGMEM, czyli przypisanie do konkretnej sekcji pamięci, mogą mieć tylko zmienne, a nie typy danych. Natomiast atrybut inline ma sens tylko wtedy, jeżeli kompilator w momencie użycia funkcji zna jej definicję, a nie tylko deklarację. W praktyce...

    Mikrokontrolery AVR   05 Maj 2011 11:04 Odpowiedzi: 18    Wyświetleń: 5329
  • Modyfikacja biblioteki wyświetlacza TFT OPEN-SMART 3,5 ILI9327 dla ATMEGA328 PB

    Tak zauważyłem, że to jest tablica typu 8-bitowego, ale definicja TFTLCD_DELAY wynosi 0xFFFF, czyli 16 bitów. Raczej nie mogę tego tak po prostu przyciąć do 0xFF? Dodano po 5 EDIT: Dobra, finalnie przyciąłem tą wartość TFTLCD_DELAY do 0xFF, usunąłem ten static inline i poprawiłem jeszcze drobny błąd w funkcji read8. Wyświetlacz ruszył na finalnym urządzeniu...

    Programowanie   13 Lip 2023 13:50 Odpowiedzi: 51    Wyświetleń: 1170
  • Jak napisać kod GPIO dla STM32 bez użycia bibliotek?

    Bo taki kod jest bardziej dla mnie czytelny, mam rejestr na którym wykonuję dwie operacje, zamiast makaronu ifów które ustawiają kolejne rejestry (zależne od ustawień). Funkcja może wyglądać tak: [syntax=c]static inline void GPIO_Config(GPIO_TypeDef* gpio, uint8_t pin, uint8_t conf){ if(pin > 7){ gpio->CRH &= ~( 0xF << ((pin - 8) * 4));...

    Mikrokontrolery ARM   07 Lip 2012 20:42 Odpowiedzi: 188    Wyświetleń: 18582
  • STM32F107 konfiguracja zegara w Keil uVision - błędy kompilacji kodu

    Do konfiguracji GPIO, zamiast tego pasztetu który masz, polecam coś takiego: [syntax=c]#define CNF_ANALOG 0 #define CNF_FLOATING 1 #define CNF_INPUT 2 #define CNF_RESERVED 3 #define CNF_GPPP 0 #define CNF_GPOD 1 #define CNF_AFPP 2 #define CNF_AFOD 3 #define MODE_INPUT 0 #define MODE_OUTPUT_2MHZ1 #define MODE_OUTPUT_10MHZ2 #define MODE_OUTPUT_50MHZ3...

    Mikrokontrolery ARM   20 Kwi 2012 15:36 Odpowiedzi: 55    Wyświetleń: 7355
  • [avr-gcc] Błąd kompilacji: brak definicji funkcji `sbi` w kodzie AVR

    define w ogóle nie jest instrukcją strukturalną ani niczym co kompilator ANALIZUJE (sprawdza). Hmm... Z tego co wiem , a wiem o C jeszcze niewiele , to preprocesor "podmienia" makra na stringi i podrzuca to kompilatorowi. Poeksperymentowałem co nieco z inline i ... wygląda to nieciekawie w AVR-GCC.Bez optymalizacji kompilator generuje skok do podprogramu...

    Mikrokontrolery   09 Sty 2008 19:44 Odpowiedzi: 42    Wyświetleń: 35597
  • [C/asm] - Jak dynamicznie przypisać funkcję do wektora przerwań w C?

    U ciebie oprócz sprawdzenia warunku dochodzi narzut na wywołanie funkcji publicznych. Funkcje są zdefiniowane jako always_inline więc ich kod jest wklejany w miejscu wywołania. Bzdura, inlinowane są funkcje zdefiniowane jedynie w danej jednostce kompilacji. MrKiel. Skoro wybierane funkcje masz w innych bibliotekach, to żaden inline nie zadziała. NIGDY!!...

    Mikrokontrolery AVR   06 Mar 2014 12:06 Odpowiedzi: 22    Wyświetleń: 1902
  • Jak zrealizować taką instrukcję w AVRStudio? Atmega8.

    sbit OFF = P2^5; - w tym momencie przypisuje portowi 2 i pinie 5 nazwe OFF?tak?Czy to dziala na innej zasadzie? Zaraz, zaraz... To z kodu C dla '51, tak? AVR Studio nie akceptuje tego wiec robie tak #define OFF_0 PORTD &= ~_BV(PD1) - dobrze?skladnia instrukcji bedzie taka sama? To jest to samo? Noooo, to nie jest to samo :| Możesz zrobić np. tak:...

    Mikrokontrolery   11 Kwi 2007 11:51 Odpowiedzi: 7    Wyświetleń: 1239
  • AT91SAM9260: Implementacja 1-Wire w C pod Linuxem - wydajność GPIO

    Witam. Chodzi mi po głowie uruchomienie 1-Wire pod Linuxem. W sumie pomysł dla sportu ale zawsze do czegoś kiedyś komuś może się przydać. Jak wiadomo obsługa z poziomu Linuxa portów gpio nie należy do najszybszych i tutaj pojawia się pytanie. Chciałbym napisać program w C wykorzystując poniższe funkcje static inline u32 at91_read(unsigned int offset)...

    Mikrokontrolery ARM   26 Paź 2009 19:57 Odpowiedzi: 1    Wyświetleń: 1193
  • Różnice w SPI pomiędzy ATMega328P a LGT8F328P, inicjalizacja karty SD w PetitFS

    No, to tylko część modyfikacji, trzeba przerobić cały plik na "arduinowy" bo nie widzi że to jest dla LGT tylko robi jak dla Atmega328P, a on nie ma takich rejestrów. No i resztę funkcji, bo odczyt musi być też między ustawieniami rejestrów: https://obrazki.elektroda.pl/8960353100_... Może inicjalizacje IO można zostawić poprzednią...

    Mikrokontrolery AVR   17 Lut 2023 12:13 Odpowiedzi: 13    Wyświetleń: 915
  • Sterowanie silnikiem RC przez drążek nie wyłącza się przy osiągnięciu kąta

    1. Co to jest "nkoder"? Nie znam takiego urządzenia. Słyszałem coś o enkoderach. 2. nie prościej; static inline _Bool sprawdz_stan(int nkoderLewy) { return nkoderLewy < 9000; } ... o ile to w ogóle musi być funkcja 3. ustawiasz jakieś sterowanie gdy zatrzask == 1, a nie zmieniasz nic gdy zatrzask == 0, więc nic dziwnego, że robi dalej to samo, co...

    Mikrokontrolery AVR   21 Lut 2019 22:27 Odpowiedzi: 4    Wyświetleń: 453
  • [STM32F303][C]Atomic blocks - sekcje krytyczne w STM32

    Czasem Arduino do czegoś się przyda Dodano po 2 Możesz dać przykład takiej krytycznej czasowo operacji? Problem jest a raczej był związany z buforem nadawczym uarta. Mam funkcję: Blokuj tylko przerwania od UART.

    Mikrokontrolery ARM   04 Sty 2020 21:56 Odpowiedzi: 16    Wyświetleń: 1317
  • [C++] Błąd związany z deklaracją 'plik' w plikach projektu podczas zapisu do pliku tekstowego

    Co należałoby poprawić, aby móc wyeliminować ten błąd, uruchomić program i wygenerować plik? Utworzyć plik o nazwie np. main.h , w którym znajdzie się deklaracja funkcji getPlik (): main.cpp dopisać definicję tej funkcji i przenieść deklarację zmiennej globalnej plik do jej wnętrza: plik , użyć funkcji getPlik () np.: Dodano po 4 A sugestia, że w plikach...

    Programowanie Początkujący   08 Kwi 2023 12:20 Odpowiedzi: 6    Wyświetleń: 366
  • [C][Atmega8] Błędny przy zapisie godziny do DS1307

    Jak by Ci tu powiedzieć... Procesor zna wyłącznie postać binarną. To ty ją sobie zapisujesz jako liczbę dziesiętną. W procesorze są tylko zera i jedynki. Poprawnie powinniśmy raczej mówi o konwersji z naturalnego kodu binarnego na BCD i odwrotnie. Funkcje konwersji tym razem poprawne, tylko nawiasy mają nadmiarowe i typ danych niedookreślony - standard...

    Mikrokontrolery   29 Gru 2012 12:45 Odpowiedzi: 11    Wyświetleń: 3067
  • Jak skonfigurować ARM toolchain: integracja CodeSourcery, OpenOCD i Eclipse

    Dlaczego dostaję ostrzeżenie Takiej flagi nie masz, za to masz -Wall, chyba nie trzeba opisywać do czego służy. I dlaczego dostaję ostrzeżenie: ... Choć ta funkcja jest zdefiniowana jako inline w pliku fat/fs_tools.c? Czemu się dziwisz, skoro deklarację masz w pliku h, a definicję w pliku c? Jeśli funkcji tej nie zamierzasz udostępniać "zewnętrznie",...

    Mikrokontrolery ARM   22 Wrz 2017 13:17 Odpowiedzi: 374    Wyświetleń: 133868
  • Jak poprawnie obsłużyć dwa przyciski w aplikacji?

    Przepisałem tą funkcję debounce i działa jeszcze gorzej, niż ta moja. Dodano po 4 Zamykam

    Mikrokontrolery AVR   26 Mar 2018 09:55 Odpowiedzi: 19    Wyświetleń: 1152
  • C / LCD / mega8 - Czy poprawnie adresuję znaki w DDRAM dla ekranu 2x20?

    int function(void) { Gdzie ta funkcja się kończy? (nazwa też jakaś "mizerna" :D) Brakuje nawiasu "}" przed static inline void lcd_sendHalf(uint8_t data) void_lcd_write_byte(unsigned char _data) O jeden znak "_" za dużo. if (data(1<<0)) Bezsensowny zapis. Dalej nie przeglądałem.

    Programowanie   19 Sty 2015 23:48 Odpowiedzi: 22    Wyświetleń: 2109
  • atmega8,c - i2c(TWI) jak połączyć się z urządzeniem slave

    ...Jak ktoś jest wstanie powiedzieć co jest ... NA PEWNO źle, to był bym wdzięczny za odpowiedź, bo cały czas stoję w miejscu. Na początek, sprawdź ten fragment: [syntax=c_loadrunner]uint16_t speed; void I2C_SetBusSpeed()// czestotliwosc taktowania magistrali { speed = (F_CPU/speed/100-16)/2; uint8_t prescaler = 0; while(speed>255) { prescaler ++;...

    Mikrokontrolery   13 Maj 2015 08:49 Odpowiedzi: 12    Wyświetleń: 2064
  • Jak poprawić kod konwersji binarno-heksadecymalno-ascii w C?

    Bardzo fajny przykład dydaktyczny z serii "jak nie należy pisać programów". ;) Typy... od 19 lat mamy w C typy o jawnych rozmiarach - uint8_t, int16_t itd.. Dobra zasada - jeśli coś nie może być ujemne - powinno być typu bez znaku. Czy rozmiar danej może byś ujemny? Dekompozycja na procedury - dwa razy pod rząd mamy ten sam paskudny kod zamiany tetrady...

    Mikrokontrolery   17 Maj 2018 14:29 Odpowiedzi: 52    Wyświetleń: 2070
  • [XMEGA][C] Odczyt flash w isr i eeprom w programie głównym

    To użyj DMA. Tak jest zrobione. DMA podaje próbki na DAC, ale bufory trzeba co jakiś czas zapełnić. Bazuję na przykładzie z książki. Z wyjątkiem serii E5 mapowanie można włączać i wyłączać. Ja bym je włączył i olał odczyt przez funkcje eeprom, a zamiast tego zrobił zwykły odczyt, co przy okazji rozwiązuje problem z dostępem do FLASH. Czyli wtedy eeprom...

    Mikrokontrolery AVR   01 Wrz 2021 19:27 Odpowiedzi: 5    Wyświetleń: 570
  • Jak zintegrować ADC z TIMER2 w ATmega32 do próbkowania 8kHz w AVR Studio 4?

    Można to zainicjalizować tak: [syntax=c] static inline void init_ADC(void) { ADMUX |= _BV(REFS0); ADCSRA = _BV(ADEN); #if F_CPU>=8000000ul ADCSRA|=_BV(ADPS0)|_BV(ADPS1)|_BV(ADPS2)... #endif #if ((F_CPU>=4000000ul)&&(F_CPU&l... ADCSRA|=_BV(ADPS0)|_BV(ADPS2); #endif #if ((F_CPU>=2000000ul)&&(F_CPU&l... ADCSRA|=_BV(ADPS2);...

    Mikrokontrolery AVR   13 Lis 2011 15:02 Odpowiedzi: 21    Wyświetleń: 3390
  • Sterownik pompy kolektora słonecznego

    Schematu nie dałem, bo go nie ma. Jak znajdę czas to narysuję :wink: Jeśli chodzi o instrukcje nop to są tam wstawione ze względu na specyfikacje 1-wire. Najpierw trzeba wystawić stan niski i odczekać czas trochę dłuższy niż 1us (dając dwa razy nop czekam 2us bo działa na zegarze 1MHZ, przy większym zegarze pasuje dać już fukcje opóźniające) i potem...

    DIY Konstrukcje   06 Lis 2010 18:23 Odpowiedzi: 23    Wyświetleń: 19231
  • tAvrLib: nowe procedury obsługi wyświetlacza HD44780

    mirekk36, znowu nie przesadzaj z ta strasznoscia funkcji hd44780_putStr. Wystarczy sobie zadeklarowac proste makro: #define ARRAY_LENGTH( x ) (sizeof(x) / sizeof(x[0]) i juz mozesz to wykorzystac to obliczenia dlugosci stringa przez kompilator. Wystarczy tylko odjac 1 na zamykajace stringa \0 i gotowe. Co do niesprawdzania...

    DIY Konstrukcje   12 Lut 2011 17:06 Odpowiedzi: 40    Wyświetleń: 27656
  • Ustawianie pojedynczych bitów w strukturze w WinAVR - avr-gcc 3.4.1

    (at)nvsync Nie chcę się wdawać w poboczne dyskusje - poprzedniego posta usunąłem, bo nic nie wnosił nowego po Twoim poście, a Twojego jeszcze nie było, jak go pisałem. Tym niemniej Twoje uwagi do niego, to nadinterpretacja. Ani nie polecałem, ani nie odradzałem stosowania tagów - po prostu napisałem, że dla działania programu nie ma to żadnego znaczenia....

    Mikrokontrolery   15 Lip 2011 16:09 Odpowiedzi: 25    Wyświetleń: 3866
  • [ATMEGA8] Jak wykorzystać zwolnioną pamięć po zmniejszeniu bootloadera w ATMEGA8?

    Nie może Cię interesować tylko C - tak czy siak będziesz musiał oglądać wygenerowany kod i połapać się, czy już jest wystarczająco dobry, czy nie. Oczywiście CFLAGS += -Os Wszystkie funkcje, których nie eksportujesz z modułów (są używane tylko lokalnie) zaznaczasz jako static. To samo z danymi globalnymi wewnątrz modułu. Uważaj na promocje arytmetyczne...

    Mikrokontrolery   14 Lis 2008 21:58 Odpowiedzi: 7    Wyświetleń: 1565
  • Jak zastąpić opóźnienia w asemblerze na C dla I2C w kursie EDW?

    Próbuje rozgryść I2C w C, ale napotkałem mały problem. W kursie EDW do opóźnień używane sż wstawki assemblera, którego ni w ząb nie rozumiem. Zastanawiałem się czy jest możliwość zastąpienia ich opóźnieniami pisanymi w C? // Funkcja dłuższych opóźnień #if I2C_nhalf < 3 // Nic #elif I2C_nhalf < 8 static void i2c_xdelay(void) { NOP();...

    Mikrokontrolery   29 Lis 2011 19:14 Odpowiedzi: 3    Wyświetleń: 903
  • [c] Problem z wyświetleniem napięcia z przetwornika PCF8591

    Witam Jak już widzicie po tytule nie mogę uzyskać poprawnego wyniku z przetwornika zewnętrznego PCF8591 połączonego z mikrokontrolerem (Atmega16-8Mhz pod piny SCL i SDA) poprzez programowe I2C. Już nie mam pomysłów co może być źle, w czym tkwi haczyk. Wszystko wydaje się być dobrze podłączone, program kompiluje się bez błędów. Kod sprawdziłem już na...

    Mikrokontrolery AVR   24 Sty 2011 23:24 Odpowiedzi: 3    Wyświetleń: 2488
  • [AVR] Jak odczytać dane z SRAM zapisane w ASM w kodzie C?

    No tak zapisałem ze stałymi w funkcji bo tablica miała być globalna ale z pomocą pierwszego zapisu można zamknąć ASM z parametrami i zwracaną wartością. Najczęściej jest to w makrze albo jako static inline( nagłówki z 'avr-libc'). Dlaczego? Bo są inlajnowane a dostępna składnia pozwala kompilatorowi na lepszą optymalizację. Noże dzisiaj ostrzymy na...

    Mikrokontrolery   24 Gru 2007 11:54 Odpowiedzi: 9    Wyświetleń: 2122
  • [Atmega32][C][Eclipse] - Definicja F_CPU w pliku głównym i w dołączonej bibliote

    Mam kod programu w którym definiuję stałą F_CPU: [syntax=c] #include <util/delay.h> #define F_CPU 8000000L //definicja częstotliwości zegara [/syntax] W bibliotece delay.h także jest zdefiniowany F_CPU i wygląda to tak: [syntax=c] #if !defined(__DOXYGEN__) static inline void _delay_us(double __us) __attribute__((always_inline)); static inline...

    Mikrokontrolery AVR   18 Lis 2012 21:05 Odpowiedzi: 11    Wyświetleń: 3090
  • STR912: Kompilacja do RAMu, obsługa wyjątków i funkcja atoi nie działa

    Wlaczam. Wywoluje w mainie enable_irq #define IRQ_MASK 0x00000080 #define FIQ_MASK 0x00000040 #define INT_MASK (IRQ_MASK|FIQ_MASK) static inline cpu_t get_cpsr(void) { cpu_t val; asm volatile ("mrs %[val], cpsr\n":[val]"=r&q... return val; } static inline void...

    Mikrokontrolery ARM   27 Kwi 2010 11:28 Odpowiedzi: 3    Wyświetleń: 1763
  • ATxmega TWI - nie umiem obsłużyć tej magistrali po przesiadce z Mega

    Dzięki, tak intuicyjnie wyczuwałem. Czy byłbyś jeszcze uprzejmy spojrzeć na kody dla Mega, które przesyłają te dane bez oczekiwań, a nic się nie dzieje? W którym miejscu tych funkcji jest oczekiwanie na gotowość Slave i jak to przełożyć na funkję nadającą w Xmega? Dodano po 1 Chyba wreszcie zbliżam się do jakiegoś finału. Podłączyłem analizator na magistralę,...

    Mikrokontrolery AVR   15 Lut 2014 20:15 Odpowiedzi: 10    Wyświetleń: 2547
  • [ECLIPSE] Jak używać 'ifdef' do warunkowego dołączania plików w Eclipse z GCC (ARM EABI)?

    tmf: tak nagłówkowe są atm identyczne, zostawiłem tak bo mogę sobie odrębne komentarze dać w każdym z osobna (czy to będzie potrzebne nie wiem), co do bibliotek to się nie odważę na obecnym moim etapie nauki :). Grzegorz: jest to rozwiązanie chyba najprostsze z możliwych, aktualnie pliki type1.c type2.c mają po ok 100-150 wierszy (same definicje funkcji),...

    Mikrokontrolery   20 Lis 2015 10:40 Odpowiedzi: 10    Wyświetleń: 993
  • Jak zdefiniować klasę StatekHandlowy w C++ z danymi statycznymi?

    [syntax=cpp] #include<iostream> #include<conio.h> using namespace std; class StatekHandlowy { private: int tonaz; int liczbaZalogi; int typProducent; static int razemZalogi; static int razemTonaz; public: StatekHandlowy(); ~StatekHandlowy(); }; StatekHandlowy::StatekHandlowy() { std::cout<<"Podaj tonaz:\n"; std::cin>>tonaz; std::cout<<"Podaj...

    Programowanie   31 Sty 2012 08:48 Odpowiedzi: 10    Wyświetleń: 1038
  • [C] Błąd kompilacji FreeRTOS na AT91SAM7S256: sekcje .stack i .bss się nakładają

    Debugger IMHO nie wchodzi w kod makr, taki jego urok... Może gdybyś tymczasowo zmienił makro na rzeczywistą funkcję (najlepiej jako "static" ... "__attribute__ ((always_inline));") to wtedy mógłbyś ją faktycznie zdebuggować. Nie sugerowałbym się więc pierwszymi linijkami... 4\/3!!

    Mikrokontrolery ARM   24 Mar 2011 14:20 Odpowiedzi: 31    Wyświetleń: 7061
  • Odmierzanie nanosekund na ARM przy użyciu timerów STM

    Po nic niewnoszących dyskusjach, sprawdzona funkcja odmierzająca us [syntax=c] __STATIC_INLINE void Delay_us(volatile uint16_t microseconds) { TIM10->CNT = 0; while ( TIM10->CNT < microseconds); } [/syntax] Wymaga oczywiście inicjalizacji timera na 1MHz (dla zegara 96MHz): [syntax=c] static void MX_TIM10_Init(void) { htim10.Instance = TIM10;...

    Mikrokontrolery ARM   13 Mar 2018 22:51 Odpowiedzi: 62    Wyświetleń: 3711
  • [STM32F4][C] - Zamiana bajtów miejscami "w locie"

    Dziękuję za odpowiedź. Nie umiem dokładnie znaleźć tej funkcji. Znalazłem tylko taką: [syntax=c]static __INLINE __ASM uint32_t __REV16(uint32_t value)[/syntax] Ja chcę zamieniać bajty w zmiennej 16 bitowej.

    Mikrokontrolery ARM   18 Mar 2015 15:53 Odpowiedzi: 59    Wyświetleń: 3384
  • Złe odliczanie czasu w zegarku na ATMEGA8(L) z kwarcem 8MHz - jak poprawić?

    Witam Temat być może pojawia się po raz wtóry, ale poprzednie tematy nie rozwiązały problemu. Chcę wykonać prosty zegarek cyfrowy oparty na uC ATMEGA8(L) oraz wyświetlaczu LCD 2x24. Wszystko chodzi bez zarzutów, gdyby nie fakt złego odliczania czasu przez mój uC. Otóż mój ATMEGA8 pracuje z kwarcem zewnętrznym 8MHz + dwa kondensatory ceramiczne 22pF...

    Mikrokontrolery   05 Wrz 2006 16:16 Odpowiedzi: 15    Wyświetleń: 5497
  • [STM32] Jak pisać efektywne i przenośne biblioteki dla STM32 w C?

    Wypowiem się co do forward declaration w sensie enkapsulacji. Wg mojego przekonania jest to wynalazek JEDYNIE do rozwiązywania cyklicznej zależności gdyż kompilator C pracuje sekwencyjnie (a nie integralnie jak Javy /C#). Więc wolał bym każdy "formalizm języka" uzywać w tym duchu, w jakim jest przeznaczony. Zdaję sobie sprawe do czego jest forward...

    Mikrokontrolery ARM   12 Gru 2016 20:53 Odpowiedzi: 83    Wyświetleń: 10641
  • Błędy kompilacji I2C w kodzie Tomasza Francuza - brakujące definicje i biblioteki

    Witam, Mam następujące kłopoty (błedy przy kompilacji). Zastanawiam się, czemu niektore rzeczy nie są opisane w ksiażce :/ Np. jak powinna wyglądać definicja I2C_Error? Jaka jest potrzebna biblioteka avr zeby niktore funkcje I2C były "rozumiane" przez kompilator? W programie głównym dodałem #include <util/twi.h> ale zostało kilka błędów. Proszę...

    Mikrokontrolery AVR   13 Gru 2015 11:33 Odpowiedzi: 4    Wyświetleń: 1317
  • Jak odczytać i modyfikować zmienne Timer1 i Timer2 w różnych plikach?

    No właśnie- kłócicie się o bajty a całe moje rozumowanie idzie chyba o kant... potłuc. tmf podał w swojej książce opis menu- dość rozbudowany, z podmenu i innymi bajerami. Kod jest na ftp Helionu. Obsługuje się to enkoderem z przyciskiem. Jak się jest na określonej pozycji to naciśnięcie powoduje włączenie funkcji dopasowanej do tej pozycji- w moim...

    Mikrokontrolery   01 Sie 2011 11:54 Odpowiedzi: 52    Wyświetleń: 3750
  • Atmega32 - Błąd w kodzie, wyświetlacz od nokii 3310

    Witam, wraz z przewodnikiem Elektroniki dla Wszystkich próbuję zaprogramować wyświetlacz od nokii 3310. Kod myślę, że poprawnie przepisałem, jednak wyskakują następujące błędy przy kompilowaniu: In file included from main.c:6: lcd3310.h: In function 'Lcd_GoTo': lcd3310.h:29: warning: implicit declaration of function 'Lcd_Command'...

    Mikrokontrolery AVR   05 Gru 2013 12:49 Odpowiedzi: 13    Wyświetleń: 1791
  • Ciekawostka w C - czyli kontynuacja Pętla for statement with no effect - zagadka

    michalko12 ma rację. Przykład nie powinien dawać warninga i nie daje. Zresztą wywołanie f(x1), gdzie f po prostu zwraca x1 jest celowym działaniem programisty i trudno tu się dopatrywać błędu, stąd warning byłby nie na miejscu. I zdecydowanie nie zgodzę się z tezą albertb, że inline wstawia kod funkcji w miejscu wywołania - znaczy rozumiem, że to skrót...

    Mikrokontrolery   10 Cze 2011 19:39 Odpowiedzi: 20    Wyświetleń: 1602
  • Program do sterowania serwami- prośba o dokończenie

    No to jeszcze aktualny kod. sulfura- a nie mój. [syntax=c] #include <avr\io.h> #include <avr\interrupt.h> #define LICZBA_KANALOW 5 #define OCR1A_VALUE ((2*F_CPU/100)/LICZBA_KANALOW) #define OCR1B_MIN (6*F_CPU/10000) #define OCR1B_ADC ((18*F_CPU/10000)/1024) #if OCR1A_VALUE > 65500UL #error OCR1A_VALUE is too high, please change preskaler...

    Mikrokontrolery   27 Sie 2013 15:13 Odpowiedzi: 43    Wyświetleń: 8001
  • C/AVR - Optymalizacja pamięci: zmienne, switch vs warunki, kod na sterownik basenu

    Boje się zapytać co w tym kodzie zajmuje tyle miejsca... - Nazwy funkcji/zmiennych zamieniane są na adresy, więc czy funkcja nazywa "konstantynopolitanczykiewiczowna" czy nazywa się "a" w pamięci zajmie tyle samo miejsca. - Między switchem a ifami nie ma różnicy. - Włącz sobie optymalizację. - Pozamieniaj zmienne globalne na automatyczne, podejrzewam,...

    Mikrokontrolery AVR   18 Lis 2012 21:34 Odpowiedzi: 23    Wyświetleń: 2895
  • Assembler a C++ czyli wybór szybciej czy taniej...

    Podejmę wątek kolegi BoskiDialer i również poprę funkcje statyczne. Zapewne nie jest to powszechna wiedza, ale jeśli funkcja nie jest statyczna, dla kompilatora jest globalna - musi więc on założyć, że może ona zostać wywołana przez dowolne źródło w dowolnym momencie. Jeśli zaś funkcja jest statyczna dla danego modułu, to kompilator wie, że jedynie...

    Mikrokontrolery AVR   08 Wrz 2010 14:25 Odpowiedzi: 144    Wyświetleń: 21127
  • [atmega8][bascom] LCD 4x40 Optrex DMC40401 na m50530-001FP

    Kiedyś wpadł mi w ręce wyświetlacz LCD 3x40 OPTREX-50465N na M50530 W avr-gcc napisałem program do obsługi, może komuś się przyda // Obsługa M50530 #include <avr/io.h> #include <util/delay.h> #include <avr/pgmspace.h> // P0 - I/OC2 // P1 - I/OC1 // P2 - R/W // P3 - EX // P4 - DB4 // P5 - DB5 // P6 - DB6 // P7 - DB7 #define port_lcd...

    Mikrokontrolery AVR   26 Kwi 2010 13:35 Odpowiedzi: 6    Wyświetleń: 6029
  • Atmega8 + HD44780 brak oznak dzialania wyswietlacza

    Ok dzieki za radę na pewno się zastosuje, jestem początkującym w tej dziedzinie dlatego potrzebuje naprowadzenia jak tego sie uczyć :) Wracając do mojego konkretnego problemu, wstawiam caly kod i z ciekawości poprosze o wskazanie gdzie jest blad. Z góry dziekuje za chwile poswieconego czasu. [syntax=c] #include <util/delay.h> #include <avr/pgmspace.h>...

    Mikrokontrolery Początkujący   28 Sty 2012 17:45 Odpowiedzi: 49    Wyświetleń: 7706
  • [C] [C][AVR] - strtok_r i wskaźnik do wskaźnika: różnice w zachowaniu funkcji

    Żaden kompilator nie umieści takiej zmiennej w rejestrze, skoro gdzieśtam potrzebny jest jej adres. Tak samo funkcje statyczne nigdy nie zostaną za-inline-owane jeśli gdzieś używane są ich adresy. Zdaje sobie z tego sprawę, że nie powinien tego robić, ale kompilator to tylko program. Bardzo podobną sytuację mam z FreeRTOSem, jesli podam adres zmiennej...

    Mikrokontrolery   30 Lis 2010 11:26 Odpowiedzi: 17    Wyświetleń: 2730
  • Zastosowanie wskaźników na funkcje w programowaniu - przykłady dla początkujących

    Obsługa maszyn stanów/automatu, pseudo-biektowość (polimorfizm), lepsza hermetyzacja i kapsułkowanie modułów i itp. Charakter takiego podejścia oddaje przykład. W metodach exec możesz zrobić obsługę komend, znaki razem z '\0' terminatorem na końcu, posłużą przy parsowaniu. Wystarczy stworzyć strukturę zawierającą string z nazwą komendy oraz przypisaną...

    Mikrokontrolery   20 Kwi 2013 07:15 Odpowiedzi: 13    Wyświetleń: 2115
  • Jaki adres ma PCF8583 oraz błędy w transmisji danych I2C

    Witam, ostatnio zabrałem się za opanowanie interfejsu I2C (TWI). Staram się od dobrych 2 dni odczytać dane z układu PCF8583 (RTC). Napisałem gromadę funkcji do obsługi I2C, większość pochodzi z książki "Język C dla mikrokontrolerów AVR" więc sądzę że nie mają błędów. Pierwszym problemem jest adres jaki ma układ ma podłączone wejście A0 do zasilania...

    Mikrokontrolery AVR   11 Wrz 2011 10:53 Odpowiedzi: 3    Wyświetleń: 3103
  • [C, STM32 CM3] - Bardzo wydajne funkcje obsługujące / rekonfigurujące porty.

    Witam, chciałem się poradzić wyjadaczy (albo każdego kto się zna i może coś doradzić) od STM32F103 nt. wydajnej obsługi portów na tym procku. Nie pisałem dużo rzeczy na te procki a już szczególnie nie takie które wymagały świetnej wydajności. Teraz bardzo zależy mi na tym, zarówno na obsłudze portów typu (odczytaj port/zapisz na port, odczytaj/zapisz...

    Mikrokontrolery   22 Wrz 2013 16:23 Odpowiedzi: 5    Wyświetleń: 1452