funkcja inline

Znaleziono około 557 wyników dla: funkcja inline
  • Attiny2313 a atmega128. Odniesienie do funkcji inline.

    No tak, wskaźnik do funkcji inline... pomyśl chwilę nad tą zagadką :) Ale powodem twoich problemów zapewne jest fusebit kompatybilności z ATMega103 - skasuj go i twe kłopoty znikną.

    Mikrokontrolery AVR   02 Gru 2010 10:37 Odpowiedzi: 5    Wyświetleń: 1305
  • REKLAMA
  • 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
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • ATmega 8 - Funkcje inline - statement with no effect

    A co z tymi funkcjami inline? Chciałem, żeby program był czytelny. Używać ich, czy wystarczy #define? Inline w ogóle zajmują miejsce w pamięci? Oczywiście używać inline - unikaj define jak ognia, to dyrektywa preprocesora, która tylko wprowadza zamieszanie. Obecnie nie ma za wiele sytuacji, w których należy ją używać. Napewno nie należy jej używać...

    Mikrokontrolery Początkujący   04 Paź 2015 12:06 Odpowiedzi: 6    Wyświetleń: 840
  • REKLAMA
  • [C] Czy funkcja 'inline' w C może korzystać ze zmiennych lokalnych wywołującej?

    Dla mnie zmienia. Nie zmienia. Semantyka kodu pozostaje identyczna. Piszesz o optymalizacjach, tym się zajmuje optymalizator. Jeśli jest sprytny, to być może użyje zmiennych ze stosu funkcji wywołującej, a jeśli się nie da, to i tak zaalokuje nowe zmienne na stosie. Ty nie masz nad tym bezpośredniej kontroli, możesz co najwyżej kombinować z flagami...

    Programowanie   17 Lis 2014 16:14 Odpowiedzi: 5    Wyświetleń: 1008
  • 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
  • XMega AVR - Jak zadeklarować indeksowaną zmienną bitową w C

    funkcje inline muszą być w plikach includowanych - jest to logiczne bo nie są linkowane tylko ich treść wstawiana w miejsce "wywołania". ps. pytanie spowodowane niezadowalającym wynikiem kompilacji ( wielokrotne użycie tychże funkcji powoduje nie tylko brak efektu" inline" ( ale i zdecydowanie nadmiarowy kod... Nie rozumiem co zmnaczy w kontekście tego...

    Mikrokontrolery AVR   17 Gru 2016 00:04 Odpowiedzi: 106    Wyświetleń: 4386
  • REKLAMA
  • [C] Jak użyć makra w C, by preprocesor zamienił nazwę na wartość?

    :arrow: krzkomar To juz chyba trochę OT, ale jeszcze dopowiem. Po pierwsze zgadzam się absolutnie w kwestii wyższości funkcji inline nad makrami. Z makr korzystam tam, gdzie nie da się użyć funkcji, ewentualnie do definiowania stałych czy konfiguracji (#ifdef). Brak nawiasów rzucił mi się w oczy, bo to podstawa, a odpowiedź pisałem w pośpiechu. :wink:...

    Programowanie   21 Lut 2008 17:23 Odpowiedzi: 17    Wyświetleń: 1616
  • [C, STM32 CM3] - Bardzo wydajne funkcje obsługujące / rekonfigurujące porty.

    ODR steruje wtedy pullupem jeśli taki tryb działania wybierzesz. Co do funkcji działających na portach, to - jak pisałem wyżej - dorobienie takiej która robi konfigurację dla więcej niż jednego pinu to 2 linijki, a taka która wystawia wartość czy ją odczytuje jest bezsensu, bo od tego masz rejestry, więc czemu nie odczytać ich wprost (ewentualnie funkcja...

    Mikrokontrolery   22 Wrz 2013 16:23 Odpowiedzi: 5    Wyświetleń: 1452
  • 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
  • [STM32] Jak ustawić priorytety przerwań w STM32 bez użycia bibliotek?

    Twój kod jest zły, bo czwórki bitów dla poszczególnych przerwań są w tych tablicach IP[] upakowane po 8. Funkcje z CMSISa do przerwań (do NVIC) są generalnie funkcjami inline, więc efekt finalny będziesz miał taki sam - czy użyjesz swoich dostępów do rejestrów, czy tych funkcji. Ja bym proponował zostać przy tych funkcjach. Jak koniecznie chcesz poczytać,...

    Mikrokontrolery ARM   26 Lip 2012 18:42 Odpowiedzi: 10    Wyświetleń: 3591
  • Deklaracja PIN 3 portu B jako wyjście w C dla ATmega8

    Można np. zadeklarować funkcje inline włączające i wyłączające diodę w jakimś headerze i potem je wywoływać. Tak jak proponujesz, to się generalnie nie da zrobić, chyba, że np. masz w okresowym przerwaniu zegarowym kod, który będzie takie zmienne przepisywał na wymagane porty. (oczywiście, powyższe dotyczy tego, co napisał autor, nie excray)

    Mikrokontrolery AVR   21 Lis 2012 14:16 Odpowiedzi: 6    Wyświetleń: 1005
  • 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
  • [LPC2378][C/Keil]Zawieszenie programu przy przeniesieniu funkcji do innego pliku

    Prawdopodobnie kompilator rozwijał funkcję inline i nie było problemu zamazania stosu przed wyjściem z funkcji. Wyjście z main to i tak koniec programu. 5 to też jest za mało. Potrzebujesz 4 znaki na cyfry, 2 na 'mV' i 1 na zero konczące. Razem co najmniej 7. Jak na skutek jakiegoś wydarzenia wartość w zmiennej będzie ponad 9999 to więcej. Dla pełnego...

    Mikrokontrolery ARM   23 Mar 2012 21:08 Odpowiedzi: 4    Wyświetleń: 1293
  • REKLAMA
  • IAR Embedded Workbench H8S - jak poprawnie zdefiniować funkcje inline?

    oczywiście.. funkcja ma ciało - coś się tam wykonuje. IAR koloruje składnie słówka "inline", więc powinien ją też rozpoznawać. __inline nie działa tak samo jak __inline__ :) w nowsze wersji tego programu, można zaznaczyć w opcjach, żeby wykożrzstywał funkcji inline - a w wersji 1.53e nie ma takiej opcji.

    Mikrokontrolery ARM   20 Sie 2008 07:21 Odpowiedzi: 4    Wyświetleń: 1949
  • Czujnik odległości HC-SR04, LED i Atmega32, język C

    Z tego: [syntax=c]#define Trig (1<<PD0) PORTD |= (1<<Trig); [/syntax] de facto wykonane zostanie : [syntax=c]PORTD |= ( 1 << (1<<PD0) );[/syntax] czyli: [syntax=c]PORTD |= ( 1 << (1<<0) );[/syntax] czyli: [syntax=c]PORTD |= ( 1 << 1 );[/syntax] co skończy się ustawieniem bitu PD1 w PORTD a powinno być: [syntax=c]PORTD...

    Mikrokontrolery Początkujący   02 Lip 2022 16:56 Odpowiedzi: 12    Wyświetleń: 1869
  • [ATmega32][C] - Zwracanie przez funkcję wskaźnika

    No masz błąd - bo np w pliku nagłówkowym *.h DEFINIUJESZ zmienną strukturalną :( a tak się nie robi, w nagłówkowych powinny być SAME DEKLARACJE a nie definicje (no może poza funkcjami inline - ale to inna sprawa) Zrób sobie tak w *.h Dodano po 1 zresztą jeśli to jest prosty projekt i tylko te dwa pliki to nawet w *.h nie musisz dawać DEKLARACJI [syntax=c]extern...

    Mikrokontrolery AVR   04 Lis 2012 12:41 Odpowiedzi: 6    Wyświetleń: 1536
  • [C++] Funkcja typu inline lub include w preprocesorze

    Czy istnieje jakaś dyrektywa preprocesora, która umożliwi wciśnięcie w kod jakiegoś pliku tekstowego? Mam skrypt w sql który nie chcę przepisywać do pliku źródłowego w C++. Chciałbym natomiast zrobić coś w tym stylu: Funkcja_Wkonywujaca_Kod_Sql(" #include "moj_skypt.txt" "); Chodzi o to aby preprocesor umieścił zawartość...

    Programowanie   15 Kwi 2010 18:34 Odpowiedzi: 1    Wyświetleń: 1305
  • Jak poprawnie używać klamr i instrukcji break w kodzie Arduino?

    A dlaczgo nie funkcja inline zamiast tego?

    Arduino   12 Wrz 2017 06:52 Odpowiedzi: 25    Wyświetleń: 3765
  • Atmega 16 - opóźnienie sygnału 2 ms, problem ze zboczem opadającym

    Po 1) użyj znaczników [code]... Po 2) funkcje inline _delay_us i _delay_ms muszą być wywoływane z argumentami o wartości znanej w trakcie kompilacji (stałe) - było o tym wielokrotnie na forum. [url=http://www.nongnu.org/avr-libc/user... Po 3) co do inline asm to zobacz [url=http://www.nongnu.org/avr-libc/user...

    Mikrokontrolery AVR   16 Cze 2009 13:12 Odpowiedzi: 27    Wyświetleń: 3641
  • Układ za 1zł* - pilot do TV by piotr_go

    jedna linijka kodu może zawierać w sobie od kilku do kilkuset a nawet tysięcy linijek kodu To musi być jakieś monstrualne makro, ew. funkcja inline. W innym przypadku linijka kodu to linijka kodu. Może to być wywołanie jakiejś funkcji, ale to już załatwia kompilator i linker.

    DIY Konstrukcje   20 Sie 2022 18:23 Odpowiedzi: 68    Wyświetleń: 9852
  • ISR - Użycie wielu rejestrów w funkcji, optymalizacja, sterowanie bitami i portami IO

    ważna jest dla niej latencja Jeśli to jest naprawdę ważne, to zostaje raczej tylko asembler. ie wywołuje innych funkcji poza funkcją inline i _delay_us (jest niezbędna) ale one nie są wywoływane tylko wprowadzane w miejscu wywołania To wcale nie jest takie oczywiste, inline nie wymusza osadzenia kodu, jest tylko sugestią.

    Mikrokontrolery AVR   10 Wrz 2022 08:46 Odpowiedzi: 9    Wyświetleń: 549
  • [STM32] Szukam generatora kodu dla GPIO bez HAL/LL, tylko na rejestrach

    A nie prościej napisać kilka uniwersalnych funkcji inline? Nie będzie kary wydajnościowej.

    Mikrokontrolery ARM   18 Lip 2018 09:06 Odpowiedzi: 12    Wyświetleń: 960
  • zestaw uruchomieniowy AVR ,filtracja i Atmel Studio

    Opakuj funkcję _delay_ms() swoją funkcją inline, w której zdefiniujesz warunek preprocesora.

    Mikrokontrolery AVR   22 Lip 2017 22:46 Odpowiedzi: 117    Wyświetleń: 6837
  • [avrgcc] Jak przekazać rejestr (OCR0A, OCR0B) jako argument funkcji w avrgcc?

    Albo makro, albo możesz przekazać adres SFRa jako (volatile uint8_t*). Zobacz: http://www.nongnu.org/avr-libc/user-manu... Jeśli funkcja będzie inline, to kompilator być może wygeneruje efektywny kod (IN/OUT/SBI/CBI). W przeciwnym wypadku będziesz miał LD/ST. Jeśli będziesz przekazywać tylko jeden z 2 możliwych rejestrów, to rozważ...

    Mikrokontrolery AVR   02 Mar 2009 13:54 Odpowiedzi: 14    Wyświetleń: 1782
  • Jak wymusić użycie INLINE w AVR-GCC zamiast wywołań CALL?

    aby funkcja była inline i była przez kompilator wstawiona pisze się np: [b]inline[/b] void Funkcja(void) { ... } void main(void) { Funkcja(); } Dodat tylko, że funkcja taka musi być w tym samy pliku źródłowym. Przynajmniej mi nie udało się zmusic gcc, żeby wstawił funkcję inline gdy znajdowała...

    Mikrokontrolery   05 Sty 2009 20:43 Odpowiedzi: 19    Wyświetleń: 4298
  • [AT91SAM7X] Reinicjalizacja kontrolera PDC w przerwaniu

    miej swiadomosc faktu, ze funkcje inline w gcc rzadko kiedy sa naprawde inline. 4\/3!!

    Mikrokontrolery ARM   06 Lis 2008 14:32 Odpowiedzi: 3    Wyświetleń: 2922
  • Dlaczego przesunięcie bitowe w AVR zwraca nieoczekiwany wynik?

    Funkcje inline muszą być static żeby to miało sens. 4\/3!!

    Mikrokontrolery AVR   24 Lip 2011 14:37 Odpowiedzi: 18    Wyświetleń: 2669
  • AVR-GCC w Atmel Studio 7.0.948 - Makro jako argument dla makro

    Daruj sobie te makra i napisz funkcje inline. Czytelnie, prosto, tak samo efektywnie.

    Mikrokontrolery AVR   05 Lis 2016 15:09 Odpowiedzi: 23    Wyświetleń: 1413
  • [AVR][C] Tablice - kopiowanie całych tablic (przez wskaźnik?)

    Proponuję abyś się nie uczył tego obrzydliwego stylu pisania gdzie funkcje, które powinny byc inline sa w postaci definicji. Nie bierz z tego przykładu. Jest to złe, niewłaściwe, ciężko debugowalne, bez kontroli typów itd itd. Tego się nawet na trzeźwo czytać nie da.

    Mikrokontrolery AVR   12 Gru 2018 10:02 Odpowiedzi: 20    Wyświetleń: 2472
  • [C++] [C++][GCC] Inicjalizacja wskaźnika stałej w klasie do adresu struktury

    Przy C++ sprawa trochę się komplikuje, nieprawdaż? Dlaczego? Jeśli zmienna/funkcja jest wewnątrz klasy, to tak naprawdę jej nie tworzysz, tylko opisujesz typ danych (klasę). A i przy C są wyjątki jak od każdej dobrej reguły. Mam na myśli funkcje inline. Dla potrzeb tej dyskusji można traktować funkcje inline jako makro i nie jest to wtedy żaden wyjątek....

    Mikrokontrolery ARM   19 Paź 2012 08:53 Odpowiedzi: 22    Wyświetleń: 1986
  • [STM32F4][C] - Program wskakuje do _Default_Handler podczas acos() i pow().

    Wszystkie te których używam (sqrtf(), powf(), acosf()) są liczone przez FPU? Niekoniecznie. W Newlib (czyli libm.a) nie ma implementacji specjalnie dla tego koprocesora, jednak jeśli masz włączoną optymalizację, skonfigurowane FPU (opcje kompilacji) i dodaną flagę -ffast-math, to kompilator niektóre z nich potraktuje jako funkcje inline i zastąpi odpowiednimi...

    Mikrokontrolery ARM   12 Kwi 2013 16:04 Odpowiedzi: 16    Wyświetleń: 1980
  • [HD44780] - Wpływ pinu R/W na szybkość działania w trybie 4-bitowym

    ...ale jak zrobić funkcję inline w pliku innym niż main? bo obojętnie czego bym nie zrobił, to kompilator olewa inline :( Bo kompilator nie wie, gdzie funkcja będzie użyta. Mimo, że jest inline, to nie masz pewności, że kompilator tak ją zrobi :) tmf wyjaśnił chyba wszystko.

    Mikrokontrolery   01 Sie 2014 11:31 Odpowiedzi: 54    Wyświetleń: 7156
  • AVR - Jak użyć jednej funkcji ISR dla dwóch przerwań INT0 i INT1?

    No to masz dwa wyjścia: - albo dodatkowa wspólna funkcja obsługi enkoderów wywoływana z funkcji ISR wraz z jakimś parametrem (ale to rozwiązanie odrzucasz), - albo funkcja inline z parametrem.

    Mikrokontrolery   19 Sty 2015 17:33 Odpowiedzi: 6    Wyświetleń: 813
  • Jak skopiować pojedynczy bit z jednej zmiennej do innej w C (np. Y.3 do X.5)?

    Nie wiem jak te sprawy wyglądają w C, ale w C++ zrobiłbym makrodefinicje albo funkcje inline

    Mikrokontrolery AVR   06 Lut 2011 18:44 Odpowiedzi: 11    Wyświetleń: 2692
  • Jak utrzymać czytelność kodu w C dla mikrokontrolerów z ograniczonymi zasobami?

    "Jakąś schludność" w obsłudze przerwań można uzyskać przez wywoływanie w nich funkcji inline, które są podefiniowane w innych, już "tematycznych" plikach źródłowych. :)

    Mikrokontrolery   20 Lut 2010 18:45 Odpowiedzi: 9    Wyświetleń: 2075
  • XMEGA - Problemy z odczytem temperatury z LM75 przez programowe I2C w C

    To znaczy ze nie kompiluje coś innego. zobacz co Twój kompilator skompilował tak naprawde po rozwinieciu #define -ów Jak chcesz uniknąć takich problemów zamiast #define zrób funkcje inline.

    Mikrokontrolery   04 Lip 2016 09:39 Odpowiedzi: 40    Wyświetleń: 2346
  • Przechowywanie funkcji na karcie SD w STM32F107VC - jak zacząć?

    No na małych intach to może i tak. Ale nie wiadomo jak z innymi typami. W taki wypadku wiadomo, :(. U mnie to działa trochę w inny sposób bo funkcje mam cały czas we Flashu i są one skompilowane z projektem, a tylko je wywołuję z innego projektu. Czyli mam np 100 funkcji a przez usb wgrywam program który je tylko wywołuje z rożnymi parametrami, czyli...

    Mikrokontrolery ARM   28 Maj 2010 14:01 Odpowiedzi: 23    Wyświetleń: 1946
  • Przeportowanie projektu z m328 na t84 i wzrost kodu?

    Optymalizacja ta sama? T84 ma uboższą listę rozkazów, nie ma tych rozkazów związanych z mnożeniem, więc kod może być dłuższy. To nie była kwestia innej listy rozkazów a wyłącznie potraktowania funkcji inline w obu przypadkach. Pisałem o tym powyżej... R

    Mikrokontrolery   01 Kwi 2020 12:28 Odpowiedzi: 31    Wyświetleń: 912
  • [STM32][eclipse][HAL] Tworzenie nawego pliku z kodem odwołanie do biblioteki HAL

    A skąd ma wiedzieć jak nie zaincludowałeś niczego co definiuje te typy. Np stdint w C nie ma takich typów, dopóki sobie nie zrobisz ani __IO ani innych cudów. jak masz wstręt do includów to możesz sobie gcc internalsa __uint8_t zastosować. Przy okazji ja osobiście wolę zamiast takich definicji funkcje inline.

    Mikrokontrolery   29 Lis 2020 16:21 Odpowiedzi: 3    Wyświetleń: 1914
  • 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
  • [atmega...][c]Masakrowanie przerwań - luźne dywagacje...

    Jeśli chodzi o goto, to w C nie użyłem go ani razu - od 20 lat... A co do "makr", czyli funkcji inline - zależy od sytuacji. Jeżeli potrzebujesz funkcji, która jest krótka, a czas jej wykonania jest krytyczny - używasz inline. Jeżeli jednak czas nie jest aż taki krytyczny, nie robisz tego - zyskujesz wówczas rozmiar kodu mniejszy.

    Mikrokontrolery AVR   30 Cze 2010 10:39 Odpowiedzi: 91    Wyświetleń: 7281
  • [C] AVR C: wywołanie funkcji z ISR TIMER1_COMPA_vect – czy to bezpieczne?

    No- czytam. Ale mi się jeszcze plącze. W pierwszym poście podałem że najpierw jest deklaracja, potem main() a potem definicja. Po Bożemu. Tylko nie rozumiem co to znaczy prototyp zdefiniowany. Czy to chodzi o funkcje inline? Nie mam tu takich.

    Mikrokontrolery   28 Maj 2012 07:11 Odpowiedzi: 17    Wyświetleń: 1564
  • [Atmel Studio, C] Funkcje w osobnych plikach zajmują więcej pamięci uC

    Poczytałem trochę o tym inline i z tego co udało mi się ustalić to jego używanie nie powoduje oszczędności. Wychodzi na to że kod z funkcja typu inline jest po prostu wstawiany w miejsce jego wywołania. Czyli jeśli w programie użyję 5 razy tą samą funkcję typu inline to kompilator po prosu mi wstawi kod tej funkcji do programu aż 5 razy. Zwykła funkcja...

    Mikrokontrolery Początkujący   24 Kwi 2016 22:11 Odpowiedzi: 8    Wyświetleń: 1335
  • [STM32] [C] [CMSIS] - #ifdef brak deklaracji stalej

    ARM7, Cortex-M3 to - powiedzmy - "handlowe nazwy" architektur, odpowiednio ARMv4 i ARMv7-M. Oczywiście nowsza jest ARMv7 czyli własnie Cortex. ARM7 jest już nieco przestarzały, a układ LPC2106 to w ogóle antyk - NXP od czasu tego układu wypuściło bardzo wiele fajnych układów z tym rdzeniem, dokładnie chodzi o rodziny LPC23xx i LPC24xx - LPC2106 to chyba...

    Mikrokontrolery ARM   19 Sty 2011 16:19 Odpowiedzi: 13    Wyświetleń: 5054
  • [STM32][C Keil RealView] ISIX-RTOS - czy ktoś go kompilował?

    Mogą byc definiowane w kodzie (.c). Keil to akceptuje.

    Mikrokontrolery ARM   14 Sty 2014 11:31 Odpowiedzi: 13    Wyświetleń: 4524
  • [stm32] - Keil - jak dodać rozkaz nop w kodzie programu?

    ehh... __nop(); //wstawia dokladnie jeden NOP, dziala nawet na -O3 -Otime LIPA [syntax=C] __asm void nop_asm (void) { NOP BX LR } [/syntax] Po co skok i return tylko po to aby wykonac JEDEN nop? Bezsens. Nop trwa jeden cykl, a wywolanie i powrot powyzszej funkcji to kilka cykli. I tego nie da sie oczywiscie zmienić, bo keil nie inline-uje funkcji...

    Mikrokontrolery ARM   29 Cze 2011 08:36 Odpowiedzi: 5    Wyświetleń: 2119
  • [STM32] Jak pisać efektywne i przenośne biblioteki dla STM32 w C?

    Uzyj funkcji. Jezeli chcesz aby zachowywala sie jak makro to dodaj atrybut inline. BTW: mozesz pisac wieloninikowe makra (oddzielasz linie \) [syntax=c] #define set_ADC1_sample_time(value, channel) \ do { \ \ } while(0) [/syntax] Info na temat jak uzywac funkcji inline: http://www.greenend.org.uk/rjk/tech/inli...

    Mikrokontrolery ARM   12 Gru 2016 20:53 Odpowiedzi: 83    Wyświetleń: 10641
  • [Atmega162] Atmega162 WinAVR - Błąd undefined reference przy obsłudze wyświetlacza LCD

    Wywal definicję funkcji lcd_GetFile z pliku lcd.c, a zdefiniuj ją w pliku lcd.h funkcja inline to coś a'la makro, kompilator nie generuje dla niej jednego kodu do którego się "skacze" z różnych miejsc przez call, ale generuje wprost ten sam kod w każdym miejscu w którym jej użyjesz - tyle razy ten sam kod ile jest wywołań. Podczas kompilacji musi wiedzieć...

    Mikrokontrolery AVR   03 Gru 2009 14:00 Odpowiedzi: 5    Wyświetleń: 1916
  • [M162] [C] "undefined reference to" kompil. libd

    W pliku Platforms/include/AVR_platf_spec.h deklaracje __inline__ są bez sensu - jeśli miałyby być inline, to musiałyby istnieć definicje funkcji w nagłówku, a nie tylko deklaracje. Na szybko: usuń w w/w pliku wszystkie wystąpienia "__inline__" i dodaj na początek każdej deklaracji funkcji słowo "extern". Pozdrawiam, Dr.Vee

    Mikrokontrolery AVR   21 Cze 2010 21:27 Odpowiedzi: 4    Wyświetleń: 3798
  • [C][AVR] - W jakiej pamięci zapisana jest zmienna.

    http://download.savannah.gnu.org/release... Część kodu jest w plikach nagłówkowych .h w postaci makr i funkcji inline. Jak chcesz mieć jedną funkcję korzystającą z różnych pamięci (SRAM, FLASH) bez zbędnych zabiegów to zmień uC na takie z inną architektur. AVR się do tego nie nadaje.

    Mikrokontrolery AVR   08 Maj 2015 10:42 Odpowiedzi: 19    Wyświetleń: 1449
  • ARM C startup na przykładzie wygenerowanego przez Cube

    Rozumiem, że nie dopuszczasz tutaj rozwiązań oferowanych przez CMSIS, które z poziomu pliku startupa są chyba jednak funkcjami "C". Chodzi Ci o te funkcje inline, wrappery na instrukcje assemblera? Jak kod w C może "przeżyć" że mu podmieniasz nagle stos na zupełnie inny? Nie żebym to sprawdzał, niemniej jednak wydaje mi się, że dowolne czary nie są...

    Mikrokontrolery ARM   26 Sty 2019 14:21 Odpowiedzi: 33    Wyświetleń: 2739
  • [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
  • [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
  • LCD 4x20 z przesuwanym i migającym kursorem w 4 wierszu

    void SetADCChannel(unsigned char channel){ ADMUX = (ADMUX&0xE0) + channel; } można ją zrobić jako funkcję inline Ja też sobie już od dawien dawna wmawiam, że zrobię sobie płytkę a jeszcze nigdy jej nie zrobiłem :P

    Mikrokontrolery AVR   06 Wrz 2010 22:14 Odpowiedzi: 122    Wyświetleń: 9146
  • [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
  • WinAVR, pliki źródłowe c oraz nagłówkowe h i własn bibloteka

    Oczywiście, że jest - avr-ar. Standard c znajdziesz bez problemu w necie. Co do nagłówków to słusznie się domyślasz - w zależności od opcji z którymi kompilujesz albo miałbyś błąd, albo wielokrotne kopie tych samych funkcji. Stąd też ciała funkcji w plikach nagłówkowych występują właściwie wyłącznie w przypadku funkcji inline.

    Mikrokontrolery AVR   05 Lip 2010 20:56 Odpowiedzi: 26    Wyświetleń: 3338
  • LPC1768 CMSIS 2.0 i KEIL - Porażające błędy w implementacji CMSIS?

    Ja pomijając timery bardzo często korzystam właśnie z takich funkcji typu podaj wskaźnik na coś i zwróć index, nie ważnie czy to jest wskaźnik na jakiś timer, czy adres jakiegoś offsetu w tablicy (np. wskaźników na funkcje przy FSM), więc akurat to jest przydatne, tylko nie w tej formie co tam, zazwyczaj to jest tylko jakaś funkcja inline typu: return...

    Mikrokontrolery ARM   15 Lis 2013 20:02 Odpowiedzi: 30    Wyświetleń: 4146
  • [m32][C] zegar LED, brak multipleksu, kompilacja bez błędów.

    Tak ogólnie... Nie przytoczę teraz źródła, ale widziałem nawet taką wypowiedź, która traktowała wystąpienia #define jako mało profesjonalne. Pewnie chodziło o to, że lepiej robić funkcje inline (dla makr które coś robią), lub o użycie const zamiast define (na AVR jednak lepiej używać define).

    Mikrokontrolery Początkujący   23 Lip 2012 19:55 Odpowiedzi: 51    Wyświetleń: 3728
  • Optymalizacja "kompresja" i przyspieszenie programów Arduino

    (at)tronics Sorry ale taka analiza powinna się odbywać poprzez przejrzenie symboli w pliku *elf a nie jakimś trywialnym porównaniu. Wielkie mi nieba, zapis do rejestru zajął mniej niż call funkcji. Ponadto ciekawe o ile będzie korzystniejszy ten _delay_ms z avrlibc w stosunku do tego ardinowego w przypadku wywołania w wielu miejscach. Bo ten z avrlibc...

    Arduino   10 Sty 2018 09:23 Odpowiedzi: 58    Wyświetleń: 4923
  • STM32F030 - init SPI DMA + Keil uVision5 - problem z przypisaniem wskaźnika funkcji

    Po _powrocie_ z funkcji. Ewentualnie postaw sobie breakpointa w HAL_DMA_Start_IT() i wtedy zobacz. Do momentu w którym kompilator nie napotka czegoś co można by nazwać "ogólnym miejscem synchronizacji" (wywołanie funkcji nie-inline, powrót z funkcji nie-inline, dostęp do pamięci oznaczonej jako volatile, ...) to może sobie poprzestawiać te instrukcje...

    Mikrokontrolery ARM   03 Mar 2017 12:08 Odpowiedzi: 8    Wyświetleń: 1128
  • [C] Błąd kompilacji FreeRTOS na AT91SAM7S256: sekcje .stack i .bss się nakładają

    Jeśli chcesz / miałbyś problem to wrzuć taki kod jaki kompilujesz obecnie (cały projekt), to wrzucę Ci dezassemblację całości - tam można wypatrzyć dosyć ciekawe rzeczy. Mogę też zmienić to makro na funkcję inline - wtedy można debuggować na pewno, a nie zaburzy to idei FreeRTOSa. 4\/3!!

    Mikrokontrolery ARM   24 Mar 2011 14:20 Odpowiedzi: 31    Wyświetleń: 7061
  • STM32F407 - Jak ustawić priorytet przerwania dla EXTI5 i wyższych?

    Przez czas jak pisałeś te dwa posty już ze 4x przejrzałbyś CAŁĄ listę przerwań, bo nie wiem skąd założenie, że koniecznie muszą być po kolei. P.S. Co złego jest w funkcji z CMSISa robiącej to samo co Ty tylko czytelniej? Przy okazji jak być jej użył, to nie robiłbyś zupełnie bezsensownego ORa... P.S.2. Funkcja z CMSIS jest typu inline - nie da się tego...

    Mikrokontrolery ARM   16 Gru 2013 11:09 Odpowiedzi: 15    Wyświetleń: 2040
  • [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
  • Driver silników BLDC i DC (wersja edukacyjna do testów oprogramowania)

    Eclipse sobie z tym poradzi może, bo jest na tyle zaawansowany, że być może zrobi to rozwinięcie,... Atmel Studio radzi sobie poprawnie w każdym tego typu przypadku także pod kątem sprawdzania poprawności składni programu (dodatek Naggy): http://obrazki.elektroda.pl/4810365100_1... Nie ma więc problemów ani po stronie edytora, preprocesora,...

    DIY Konstrukcje   02 Maj 2018 19:11 Odpowiedzi: 45    Wyświetleń: 36669
  • [winavr][atmega8][C] DS18b20 Cały czas wyświetla -16.1 st. R

    Zmien owire_delay na funkcje inline - inaczej generowane krotkie opoznienia rzedu 1us sa super niedokladne (wez pod uwage, ze musisz wykonac mnowstwo instrukcji wywolujacych funkcje). Po rozpoczeciu konwersji musisz miec opoznienie (to co jest zakomentowane), inaczej uklad nie zdazy podac wynikow. Podaje wtedy stala wartosc (do poolingu), stad moze...

    Mikrokontrolery AVR   22 Lut 2010 21:12 Odpowiedzi: 15    Wyświetleń: 3411
  • 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
  • czekanie na wciśnięcie przycisku - ograniczone czasowo

    Jeśli chodzi o C to ja też zbyt zaawansowany nie jestem, ale czytam posty ludzi o wiele mądrzejszych ode mnie i stosuje się do ich rad. Jak funkcja nie jest inline to jest ona normalnie wywoływana co zabiera procesorowi kilka cykli na skok do bloku w pamięci, w którym ta funkcja się znajduje i jeszcze parę cykli na powrót z procedury. Jak funkcja jest...

    Mikrokontrolery   31 Sie 2008 10:20 Odpowiedzi: 19    Wyświetleń: 2598
  • [ATTiny13] [ATTiny13][C] Konfiguracja Timera0 - brak reakcji na przerwanie

    Za to trzeba szczególnie uważać na takie definicje: #define TIMER0_START TIMSK0 |= (1<<TOIE0); TCCR0B |= (1<<CS00) | (1<<CS01); i lepiej zamiast nich zrobić normalną funkcję inline, żeby później nie mieć totalnej kiszki gdy się zastosuje zapis jak poniżej ;) if( cos_tam ) TIMER0_START;

    Mikrokontrolery AVR   23 Wrz 2010 07:05 Odpowiedzi: 30    Wyświetleń: 12153
  • [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
  • [TDA1543A] [Atmega8] - Napięcie stałe zamiast danych, brak komunikacji

    (at)elektronik666 Dlaczego używasz makr do tego? To jest idealny przypadek do użycia funkcji inline. Jak już chcesz używać makr to należy to zrobić zgodnie ze sztuką czyli: - bez zbędnego ; na końcu - dodać nawiasy do definicji makra informujące o tym, że to makro jest function like [syntax=c] #define BCK_0() PORTD &= ~(1<<PD0) [/syntax]

    Mikrokontrolery AVR   04 Maj 2016 10:58 Odpowiedzi: 15    Wyświetleń: 1839
  • [GCC] -Os - czyli jak zrobic, zeby gcc nie zjadalo funkcji?

    Najgorsze jest to, że rację ma kompilator. A szukasz pewnie tego: -fno-inline-functions

    Mikrokontrolery AVR   12 Lis 2008 13:53 Odpowiedzi: 10    Wyświetleń: 2337
  • [avr][C] - gdy wszystkie sprzętowe interfejsy są zajęte (biblioteka)

    (at)md5crypt 1. Trochę nadużywasz słowa kluczowego inline. Zwłaszcza w implementacji. Pozwól kompilatorowi działać w tej materii. Jedno/kilku liniowe funkcje możesz zostawić z inline. 2. Przy deklaracji/definicji funkcji często masz pustą listę parametrów. W C (w odróżnieniu od C++) nie jest to tożsame z void. 3. API jest trochę skomplikowane. Wystarczyłby...

    Mikrokontrolery AVR   17 Lis 2016 19:49 Odpowiedzi: 8    Wyświetleń: 1011
  • [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
  • [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
  • [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
  • [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
  • 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
  • Assembler a C++ czyli wybór szybciej czy taniej...

    Przy okazji przypomniało mi się, że nie warto wywoływać funkcji w przerwaniach (chodzi głównie o avr'y) - wywołana funkcja (według konwencji) może zmienić wartość rejestrów r0, r18-r27, r30, r31 oraz sreg Oczywiście dotyczy to jedynie funkcji łączonych zewnętrznie, tj. z biblioteki lub innej jednostki kompilacji. Funkcje statyczne w obrębie danego...

    Mikrokontrolery AVR   08 Wrz 2010 14:25 Odpowiedzi: 144    Wyświetleń: 21127
  • [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
  • Różnice między biblioteką a plikiem nagłówkowym w programowaniu

    No chyba że masz nagłówek z inline funkcjami, wtedy wystarczy tylko nagłówek, ale jest to pewna specyficzna sytuacja, raczej nie polecana.

    Programowanie Początkujący   30 Lip 2018 14:06 Odpowiedzi: 8    Wyświetleń: 1485
  • Przejscie z Bascoma na C (programowanie procesorów AVR)

    osoba ktora twierdzila ze nie mozna robic #define zaproponowala aby takie funkcje zrobic w funkcji void inline cos() { } tak wiec nie trzba bedzie latac po calym programie i zmieniac rejestrow danych portow tak jak to opisujesz !

    Programowanie   08 Lut 2008 10:54 Odpowiedzi: 9    Wyświetleń: 2361
  • [avr-gcc] Błąd kompilacji: brak definicji funkcji `sbi` w kodzie AVR

    Ludzie !!! Nie uczcie innych ludzi takich #define Przecież to horror, jak to użyć w nieco innym konteksie. a) podstawienie w #define !!! b) sklejane instrukcje ; nie zamkniete nawiasami c) nawiasy nie do pary z takimi nawykami potem ktoś ciężko szuka błedu w 'bezbłednym' kodzie. Błedy w makrach NIE SĄ diagnozowane przez kompilator, to czyste wstawienie...

    Mikrokontrolery   09 Sty 2008 19:44 Odpowiedzi: 42    Wyświetleń: 35597
  • [atmega128][C/WinAVR] ADC - pomiar z kilku kanałów

    Dokładnie gaskoin. Do autora - jak masz problem odpal symulator w AVR Studio, w tak prostym kodzie błąd znajdziesz natychmiast obserwując rejestry. Poza tym #define to coś o czym lepiej zapomnieć :) Jak już musisz udziwniać, to zamień to na zwykłe funkcje - kompilator i tak zrobi z tego inline, efekt końcowy będzie więc taki sam, a przejrzystość, kontrola...

    Mikrokontrolery AVR   13 Paź 2010 23:01 Odpowiedzi: 7    Wyświetleń: 2293
  • 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
  • Debuger jako narzędzie marnujące czas programisty?

    Oczywiście że chodzi mi o optymalizację wprowadzoną przez kompilator, na optymalizację algorytmu przez użytkownika zawsze w jakimś stopniu chronią UT. Ja miałem problem właśnie z volatile, jakimś cudem kompilator zoptymalizował zmienną w dość niefortunny sposób co powodowało wywalenie się kodu. Co ciekawsze było to w examplu od ST a kompilowane pod...

    Projektowanie i Tworzenie Po godzinach   20 Lip 2018 20:36 Odpowiedzi: 58    Wyświetleń: 3060
  • C++ - optymalizacja obliczania wariancji dla dużych danych (float)

    Pomijając ustawienia optymalizujące, poniżej zamieszczam kod, który realizuje to czego szukałem. Wszystkim dziękuję za dotychczasową współpracę Do następnego ;) PS. Pomysł otrzymany od bardziej doświadczonych, za co serdecznie dziękuję. [syntax=cpp] inline float sqr(float x) { return x * x; } // funkcja inline void calcMeanVar(float *data, size_t size,...

    Programowanie   30 Mar 2015 15:09 Odpowiedzi: 5    Wyświetleń: 864
  • C++: Błąd kompilacji w Dev-C++ 4.9.9.2 przy użyciu inline assemblera

    GCC (którego używa DevCpp) nie obsługuje/obsługuje zupełnie inaczej kod assemblerowey wewnątrz funkcji (inline assembler). Dla Buildera/Visual C++ ten kod jest w zasadzie poprawny. #include <cstdlib> #include <stdio> using namespace std; void zapisz(char); int main(int argc, char *argv[]) { char liczba; printf("Wpisz...

    Programowanie   06 Mar 2005 17:17 Odpowiedzi: 6    Wyświetleń: 1677
  • [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
  • [AVR] [AVR][WinAVR/C] Czy dyrektywa naked pozwala usunąć push/pop r0, r1?

    Mój błąd - użyłem słowa "biblioteka" do plików "*.h" z funkcjami inline. Żaden z dołączanych przeze mnie (jawnie) plików h ( io, signal, wdt, delay, pgmspace ) nie odwołuje się (poprzez nagłówek extern) do plików obj. Więc mam nadzieję że będzie ok. Jeśli te same operacje będą wykonywane przy użyciu zmiennych deklarowanych w RAMie to pojawiają się zakłócenia...

    Mikrokontrolery AVR   29 Kwi 2010 23:45 Odpowiedzi: 20    Wyświetleń: 2318
  • 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
  • [JS] Stworzenie funkcji dynamicznie ze statycznym parametrem

    Dynamiczne kreowanie kodu, a w sumie o to chodzi, bardzo rzadko jest prawdziwą potrzebą. Jakbyś ratował jakiś XY Problem, tylko nie wiem jaki ... w Javascvripcie to jakby formalnie łatwiejsze, co nie znaczy że należy https://stackoverflow.com/questions/2567... https://stackoverflow.com/questions/1640...

    Programowanie   11 Lip 2023 20:56 Odpowiedzi: 4    Wyświetleń: 288
  • 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
  • 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
  • ST32F103 - Odczyt stanu pinu GPIO nie działa poprawnie, dlaczego?

    Dzięki za odpowiedź, 1) Włączam port. W tej chwili korzystam z tej funkcji bibliotecznej i działa. Nie mam pojęcia jaka jest przyczyna. 2) Docelowo miała to być funkcja typu inline. Ale nie ma to znaczenia, bardziej martwi mnie to, że nie działa, bo może sygnalizować problemy gdzieś indziej. Od lat nie zdarzyła mi się taka niewiadoma.

    Mikrokontrolery ARM   10 Lis 2013 13:08 Odpowiedzi: 4    Wyświetleń: 1167
  • Funkcje UARTU zaśmiecają SRAM? [c][winavr][atmega32]

    Takie zjawisko masz, jak stos ci wchodzi na zmienne. Rejestry odkładają się na stosie, jak wywołujesz zagnieżdżone funkcje. Stos przyrasta z przeciwnej strony RAMu, niż zmienne. Jak masz 70% pamięci danych zajęte, to jest to na 99.99% tego skutek. Rozwiązanie jest takie, żeby zmniejszyć liczbę zagnieżdżeń, ew. rozwinąć USART_Transmit wewnątrz USART_Transmit_Word....

    Mikrokontrolery AVR   26 Paź 2009 17:49 Odpowiedzi: 13    Wyświetleń: 1423
  • atrybut "volatile" dla struktury danych - niezgodność

    Panowie wydaje mi się, że właśnie w takim przypadku użycie volatile jest KONICZNE i to zdecydowanie, ponieważ to właśnie tylko w funkcjach a w zasadzie TYLKO w funkcjach zawierających pętle nieskończone bez możliwości ich przerwania dochodzi do buforowania zmiennych Nie jest to prawdą: Natomiast co ciekawe jeśli używamy zmiennej w przerwaniu to jej...

    Mikrokontrolery   28 Sie 2011 09:32 Odpowiedzi: 23    Wyświetleń: 3667
  • [C][Eclipse] Poprawny sposób na pisanie i używanie bibliotek

    (at)gaskoin nie zrobisz tutaj za dużo w plikach nagłówkowych bo są one używane przez kompilator. Bibliotekę kompilujesz jako całość i w niej taki plik nie może istnieć (bo zmienia się dla każdego projektu). (at)Freddie Chopin jeżeli chodzi o nomenklaturę informatyczną to może rzeczywiście słowo biblioteka jest nie trafne w 100%. Nie mniej jednak jest...

    Mikrokontrolery   15 Lis 2010 10:00 Odpowiedzi: 11    Wyświetleń: 2552
  • Wszystko o ARM (LPCxxxx) i programowaniu w asm i C.

    Użycie cyfr jako lokalnych etykiet masz tu: http://ftp.gnu.org/pub/pub/old-gnu/Manua... Jest to bardzo użyteczne w funkcjach assemblerowych do kodu w C jeśli potrzebujesz w nich etykiet i specyfikatora inline. {cond} LO jest równoważny CC. Albert

    Mikrokontrolery ARM   28 Lis 2009 17:35 Odpowiedzi: 141    Wyświetleń: 17212
  • Jak zdefiniować tablicę pinów w C dla sterownika akwarium?

    Preprocesor C nie obsługuje tablic. Podobnie jak żaden inny, przynajmniej jeżeli chodzi o definicję w takim sensie w jakim to jest zrobione w C. Tablicę musisz zadeklarować normalnie. Jeżeli nie chcesz marnować miejsca, to oczywiście deklarujesz ją tak, żeby zapisana byłą w pamięci programu (zresztą, jakkolwiek byś tego nie zrobił, to właśnie tam ona...

    Mikrokontrolery   23 Cze 2007 18:04 Odpowiedzi: 2    Wyświetleń: 1080
  • Konwerter plików *.asm na C++ – czy istnieje narzędzie do automatycznej konwersji?

    Tu nie chodzi o zapotrzebowanie, fizycznie jest to trudne do wykonania. Zauważcie, że przy kompilacji, optymalizator dużą część kodu zjada, czasem tnie na kawałki i trochę go przekłada. Nigdy nikt nie będzie w stanie przetłumaczyć ASM na logicznie napisane C. Choćby z tego powodu, jaki podałem w tym poście wyżej, lub z takiego, że w asmie makra typu...

    Mikrokontrolery Początkujący   09 Kwi 2012 13:07 Odpowiedzi: 20    Wyświetleń: 3445