inline static

Znaleziono około 389 wyników dla: inline static
  • 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
  • REKLAMA
  • [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
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • 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
  • REKLAMA
  • atmega8,c - i2c(TWI) jak połączyć się z urządzeniem slave

    Nie wiem jak sprawdzić tylko ten fragment... Tu masz "byka". ustawienie flagi :idea: Po wtóre: Powinien wyglądać np. tak: [syntax=c_loadrunner]static inline void I2C_WaitForComplete() {while (!(TWCR & (1<<TWINT)));}; // czeka na ustawienie flagi TWINT[/syntax]

    Mikrokontrolery   13 Maj 2015 08:49 Odpowiedzi: 12    Wyświetleń: 2064
  • 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
  • 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
  • Modyfikacja biblioteki wyświetlacza TFT OPEN-SMART 3,5 ILI9327 dla ATMEGA328 PB

    Spróbuj zakomentować to : static inline

    Programowanie   13 Lip 2023 13:50 Odpowiedzi: 51    Wyświetleń: 1170
  • Dlaczego przesunięcie bitowe w AVR zwraca nieoczekiwany wynik?

    Dodałem static i czas dalej jest taki sam Zarówno ze static inline jak i samo inline jak i bez dyrektywy inline. Więc czego powinienem użyć przy tej funkcji: [syntax=c] uint8_t przesuniecie_w_lewo(uint8_t liczba,int8_t oile) { return (oile>0) ? liczba<<oile : liczba>>-oile; } [/syntax] Samego inline, czy static inline?

    Mikrokontrolery AVR   24 Lip 2011 14:37 Odpowiedzi: 18    Wyświetleń: 2669
  • 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
  • REKLAMA
  • DS18b20 i ATmega128 16MHz - brak reakcji na komendy po resecie

    Wiem, że temat był już poruszany niejednokrotnie i liczę się z "niemiłymi" odpowiedziami... No to pierwsza "niemiła" odpowiedź: Zajrzyj do dokumentacji AVR-ka i sprawdź DOKŁADNIE co należy wpisać do rejestru DDRx , by port był wejściem lub wyjściem. //... static inline void owire_wy(void) { DDR(OWIRE_PORT) &= ~(1<<OWIRE_PIN);...

    Mikrokontrolery   21 Sty 2010 19:48 Odpowiedzi: 10    Wyświetleń: 3829
  • [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
  • stm32f7 - Jak elegancko ustawiać bity w rejestrze nie przestawiając innych/zarez

    (at)Piotr Piechota Ja robiłbym coś w stylu: [syntax=c] static inline uint32_t bitfield_update(uint32_t bf, uint32_t mask, uint32_t value) { return (bf & ~mask) | (value & mask); } .... const uint32_t mask = RCC_PLLSAICFGR_PLLSAIN | RCC_PLLSAICFGR_PLLSAIP | RCC_PLLSAICFGR_PLLSAIQ | RCC_PLLSAICFGR_PLLSAIR; const uint32_t value = 192 // N=192...

    Mikrokontrolery ARM   28 Gru 2016 21:30 Odpowiedzi: 9    Wyświetleń: 1014
  • Whirlpool FSCR 90456 - Instrukcja zmiany języka na polski w pralce

    https://whirlpool-cdn.thron.com/static/Y... 29 strona... Nawet nie zajrzałeś...

    AGD Użytkowy   18 Wrz 2021 13:45 Odpowiedzi: 2    Wyświetleń: 1704
  • REKLAMA
  • 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
  • [avr-gcc] Konflikt typów przy wywołaniu funkcji przerwaniowej INT0_vect na atmega8

    makro, static inline itd itd, rozwiązań problemu jest wiele.

    Mikrokontrolery   01 Maj 2021 22:23 Odpowiedzi: 12    Wyświetleń: 555
  • STM32F0Discovery - Jak rozwiązać konflikt przerwań TIM2 i TIM3?

    U mnie sa roznice. Kompiluje na O2 (przy asm i tak to nie ma znaczenia). Procek dziala na 72MHz. Jeszcze raz powrorzylem test. Zapis do pamieci bb u mnie jest wolniejszy: [syntax=c] int a; volatile int xx = 1; volatile int k; static inline void bitband_str_prepare(void) { asm volatile(" \n" "movw r7, #0x84A8 \n" "movt r7, #0x4225 \n" ); } static inline...

    Mikrokontrolery ARM   31 Paź 2013 10:15 Odpowiedzi: 91    Wyświetleń: 7734
  • [STM32] Jak pisać efektywne i przenośne biblioteki dla STM32 w C?

    Jak coś już coś muszę na pollingu robić to: tick_ms_irq musi być wywoływane w przerwaniu od tmera co 1ms. BTW: Ten kod z HAL'a to niezła padaka: if, if, if, if .... :)

    Mikrokontrolery ARM   12 Gru 2016 20:53 Odpowiedzi: 83    Wyświetleń: 10641
  • [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
  • Dokumentacja bibliotek GPIO dla LPCXpresso 1347 (Cortex M3)

    https://www.nxp.com/downloads/en/softwar... Rzeczywiście nie rozpisali się w tym doku odnośnie sterowania GPIO za pomocą tej biblioteki, ale to nie jest jakaś tajemnica. Wystarczy zajrzeć do kodu odpowiedzialnego za gpio. [syntax=c]/* gpio_13xx_1.h * (at)brief LPC13xx GPIO chip driver for LPC13(15/16/17/45/46/47) families *...

    Mikrokontrolery Początkujący   17 Lis 2017 22:07 Odpowiedzi: 11    Wyświetleń: 906
  • [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
  • Obsługa przycisków dotykowych za pomocą mikrokontrolera AVR

    Testowałem osobiście ten kod. Działa to fajnie ale jest jeden błąd w kodzie. Odpaliłem program a ATMega328 i nie działał ADC0. Należy zmienić to: [syntax=c] static inline void adc_channel(uint8_t channel){ ADMUX &= ~(0b11111); ADMUX |= 0b11111 & channel; } [/syntax] Na to: [syntax=c] static inline void adc_channel(uint8_t pin){ ADMUX = (ADMUX & 0xF0)...

    Artykuły   19 Gru 2014 16:27 Odpowiedzi: 3    Wyświetleń: 16410
  • Ciekawostka w C - czyli kontynuacja Pętla for statement with no effect - zagadka

    To najprostsze wyjaśnienie. Oczywiście bez volatile też możemy odczytać, lecz kompilator ma prawo opuścić taką instrukcję. Do zagadki powinno być jeszcze dodane założenie z oryginalnego tematu, że x1 to zmienna ;-) A co powiecie na kod (kompletny program): [syntax=c]inline static int f(int x) { return x; } int main() { int x1; x1 = 5; for(f(x1); x1...

    Mikrokontrolery   10 Cze 2011 19:39 Odpowiedzi: 20    Wyświetleń: 1602
  • Jak powiązać licznik i ADC w ATmega16 do generowania sygnału o zmiennej częstotliwości?

    [syntax=c] char wynik1[3]; //bufor1 dla LCD char wynik2[2]; //bufor2 dla LCD [/syntax] Te bufory są za małe na przechowanie warości zwracanych przez itoa. Nie wziąłeś pod uwagę null termination stringa. Twój program jeżeli działa to przypadkiem;) Jeżeli chcesz to możesz wząć jakąś uproszczoną wersję itoa. Np przerobić coś istniejącego z internetu. [syntax=c]...

    Mikrokontrolery AVR   11 Sty 2016 18:05 Odpowiedzi: 10    Wyświetleń: 1347
  • [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
  • Jak wyświetlić napis 'Hello World' na wyświetlaczu TFT używając STM32F411RET i FT800?

    Okej, zatem spróbujmy przystosować bibliotekę, którą mi podlinkowałeś do moich ćwiczeń ;-) Skopiowałem pliki EVE.h, EVE_commands.c, EVE_commands.h, EVE_config.h, EVE_target.c, EVE_target.h do odpowiednich folderów w projekcie. Teraz tak: W pliku EVE_target.h trzeba wybrać i włączyć jedną z konfiguracji. Jeśli dobrze myślę to mnie interesuje ta konfiguracja,tak?...

    Mikrokontrolery ARM   15 Paź 2020 08:40 Odpowiedzi: 13    Wyświetleń: 1356
  • VGA i AVR nie działa - układ z wykorzystaniem Atmega32 i monitora LCD

    Witam, Skleciłem na szybko układ na "pająka": ATMEGA128, Zasilanie 5V, Kwarc 20Mhz, Rezystory 470 Ohm w liniach RGB Poprawiłem jeszcze trochę timingi aby nie szarpało na początku obrazu. http://obrazki.elektroda.pl/4106040400_1... Przy okazji zapraszam do zaglądnięcia na mój projekt również wykorzystujący VGA ale przy pomocy sprzętowej...

    Mikrokontrolery AVR   20 Sty 2012 20:30 Odpowiedzi: 19    Wyświetleń: 6383
  • 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
  • [F0] EEPROM - zapisuje tylko pierwsze 256 komórek we FLASH

    W F030 strona ma wielkość 1kB co oznacza, że zmieści się tylko 256 zmiennych Jak to obliczyłeś? Pewnie 1024/4 bajty = 256, ale tutaj tak to nie działa. Strona 1024 bajty to 1024 bajty, inaczej 512 półsłów. Zapis do stron pamięci w STM32F0 wymaga zapisywania półsłów, do jednej strony oczywiście można zapisać 512 półsłów. W poniższym przykładzie zapisuję...

    Mikrokontrolery ARM   19 Lip 2020 23:30 Odpowiedzi: 8    Wyświetleń: 804
  • 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
  • Jaki stan zostanie wyświetlony? Makro i postinkrementacja C.

    Makro zostanie rozwinięte do: [syntax=c] y = (x++) * (x++); [/syntax] Zatem przed mnożeniem dochodzi do dwukrotnej inkrementacji z 3 do 5. To fajny przykład dlaczego nie ma sensu takich makr robić Zamiast tego lepiej zrobić: [syntax=c] static inline int SQ(int x) { return x*x; } [/syntax]

    Mikrokontrolery Początkujący   23 Mar 2022 10:41 Odpowiedzi: 3    Wyświetleń: 807
  • XMega AVR - Jak zadeklarować indeksowaną zmienną bitową w C

    Witam , Mam kolejne pytanie/ prośbę : Jak zapisać poprawnie poniższe proste funkcje inline z atrybutem "always_inline" (funkcje muszą być dostępne w pliku z main) : 1.) czy obowiązkowo rozdzielać deklarację/definicję, jeśli tak to gdzie xx.h czy xx.c ? 2.) czy może obowiązkowo w pliku z main to w jaki sposób - zapis ? [syntax=c]static inline bool F_isON(uint8_t...

    Mikrokontrolery AVR   17 Gru 2016 00:04 Odpowiedzi: 106    Wyświetleń: 4386
  • [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
  • [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
  • [STM32] - Błąd składni przy konfiguracji GPIO w nowym programie

    Faktem jest że kiedy przeniosłem ją do pliku init.c, to buntował się na static inline. To znaczy że brakuje tego? GPIO_InitTypeDef GPIO_InitStructure;

    Mikrokontrolery ARM   16 Sie 2012 10:28 Odpowiedzi: 8    Wyświetleń: 1362
  • [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
  • 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
  • LPC1115 - FatFS - problem z montowaniem karty SD przez SPI

    W procedurze xmit_spi to ja nie widzę nic sensownego, a rcvr_spi można zapisać jako static inline albo makro o treści spi_Trans(0xff)

    Mikrokontrolery ARM   20 Sie 2013 08:34 Odpowiedzi: 22    Wyświetleń: 3168
  • [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
  • Jak poprawnie używać funkcji static w C z WinAVR?

    Nie wiem jak to jest z funkcjami static, ale static inline mogą być zdefiniowane w innym pliku (muszą być w *.h). Mogą wtedy być wywoływane np. w obsłudze przerwania, zdefiniowanej w pliku *.c, w którym jest też main().

    Mikrokontrolery AVR   27 Sie 2009 14:53 Odpowiedzi: 6    Wyświetleń: 2884
  • 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
  • [ATmega32] ATmega32 i ADS1256 - problem z obsługą SPI dla dwóch układów jednocześnie

    Już się pogubiłem w tym co poszecie... Mam teraz tak master [syntax=cpp] //-----------------INICJALIZACJA SPI------------------------- static inline void SPI_Set_SS() //obsługa ATmega32 { PORTB|=(1<<PB3); //1 to ADS1256 nieaktywny (pinSS) PORTB&=~(1<<PB4); //ATmega32 aktywny (pin SS) } static inline void SPI_Reset_SS() { PORTB|=(1<<PB4);...

    Mikrokontrolery AVR   29 Cze 2012 19:01 Odpowiedzi: 31    Wyświetleń: 4376
  • [ECLIPSE] Jak używać 'ifdef' do warunkowego dołączania plików w Eclipse z GCC (ARM EABI)?

    Tak, jak pisze tmf, albo biblioteki, albo owijki, tylko to trochę upierdliwe: plik type1.h [syntax=c] #ifndef TYPE1_H #define TYPE1_H void type1_funkcja1(void); static inline void funkcja1(void) { type1_funkcja1() } #endif[/syntax] plik type2.h [syntax=c] #ifndef TYPE2_H #define TYPE2_H void type2_funkcja1(void); static inline void funkcja1(void) {...

    Mikrokontrolery   20 Lis 2015 10:40 Odpowiedzi: 10    Wyświetleń: 993
  • [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
  • [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
  • 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
  • Eclipse: Błąd 'undeclared' przy kompilacji projektu ARM z makefile Yagarto

    ok.. dopiero usiadlem wiec zaraz zajrze do tych wskazowek.... a poki co to tu masz kod: main.c #include "Board.h" void init(void) { // enable peripheral clock for PIO controller AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOB); // enable reset-key on board AT91C_BASE_RSTC->RSTC_RMR = (0xA5000000 | AT91C_RSTC_URSTEN);...

    Mikrokontrolery ARM   18 Wrz 2009 13:12 Odpowiedzi: 11    Wyświetleń: 3325
  • [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
  • AVR-GCC funkcja inline w kilku plikach źródłowych

    Hmm, zarówno zmiana optymalizacji, jak i dodanie atrybutu nie pomogło. Próbowałem nawet wywalić deklarację z pliku h, i w każdym pliku c dodawać extern inline void funkcja( void ); , żeby poszukał funkcji na zewnątrz, co prawda kompilacja przebiegała bez błędu, jednak dalej funkcja nie była rozwijana. N.B. to kompletnie bez sensu. Kompilator...

    Mikrokontrolery   17 Kwi 2008 09:39 Odpowiedzi: 10    Wyświetleń: 3054
  • 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
  • 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
  • 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
  • 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
  • [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
  • [Atmel Studio, C] Funkcje w osobnych plikach zajmują więcej pamięci uC

    po 1. To gdzie funkcja się znajduje nie ma żadnego znaczenia. Jeśli jest static optymalizator może ją potraktować bardziej ostro. Inline jest tylko wskazówką. o tym czy zostanie ona rozwinięta w miejscu wywołania i tak zależy od jej długości zdaje się, że przy -Os może się tak zdarzyć bez dodania inline. po2. Inline należy stosować ze static. w innym...

    Mikrokontrolery Początkujący   24 Kwi 2016 22:11 Odpowiedzi: 8    Wyświetleń: 1335
  • Silnik DC nie obraca się w przeciwnym kierunku z mostkiem H TB6612FNG

    Pokaż trochę więcej kodu. Użycie powyższych makr może być niebezpieczne w niektórych przypadkach. Np: [syntax=c] if (a) TYL; [/syntax] Jeżeli zamiast makr użyjesz funkcji zdefiniowanych jako static inline nie stracisz nic na wydajności.

    Mikrokontrolery AVR   17 Lut 2016 01:33 Odpowiedzi: 3    Wyświetleń: 1245
  • 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][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
  • Zliczanie impulsów enkodera 100 impulsów/obrót – AVR, wyświetlacz nie reaguje

    To nie działa! :) [syntax=c]if((val & DP)==1) tmp&=~(DP);[/syntax] Powinno być: [syntax=c]tmp ^= val & DP;[/syntax] No i wypadałoby, żeby te funkcyjki, co mają po dwie linie kodu były zadeklarowane jako static inline.

    Mikrokontrolery AVR   27 Gru 2012 23:08 Odpowiedzi: 20    Wyświetleń: 4389
  • [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
  • [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
  • Jak skonfigurować ARM toolchain: integracja CodeSourcery, OpenOCD i Eclipse

    Sorki że dopiero teraz odpisuje, ale ostatnio bardzo mało czasu mam na przesiadywanie przed komputerem. Optymalizacja w Makefile jest na -O0, więc nie jest to ten problem. Wydaje mi się, że program nie może wyjść z realizacji funkcji pierwszego delaya. Zapala diodę, a potem tkwi w pętli. Poniżej prezentuje funkcje, które wywoływane są w sposób pokazany...

    Mikrokontrolery ARM   22 Wrz 2017 13:17 Odpowiedzi: 374    Wyświetleń: 133868
  • [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
  • [ATmega8][C][MPU6050] - Brak reakcji układu MPU6050 na zmiany położenia

    Dzięki, link pomógł. Jednak rejestrom GYRO_CONFIG i ACCEL_CONFIG trzeba przypisać wartości, początkowe nic nie dają. Teraz wartości na wyjściu się zmieniają, tylko problem jest taki że odczyt jest pojedynczy, za drugim razem jest pustka, tak jakby się zawieszał. A przecież wgląd w nie powinien być bez ograniczeń. Próbowałem dać lekkie opóźnienia pomiędzy...

    Mikrokontrolery AVR   11 Paź 2013 14:38 Odpowiedzi: 4    Wyświetleń: 3954
  • 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
  • STM32F107RCT6 + VS1003 - transmisja SPI działa tylko w jedną stronę

    Zaprojektowałem i zbudowałem płytkę wyposażoną w procesor STM32F107RCT6 oraz dekoder popularny MP3 VS1003. Jest to kolejna wersja starszego projektu na PIC32, który przenoszę na nowy mikrokontroler. Większa część projektu PCB pochodzi ze starej wersji. Do komunikacji z VS1003 używam popularnej biblioteki Andy'ego Karpova, którą już wcześniej przeportowałem...

    Mikrokontrolery   13 Lut 2021 11:19 Odpowiedzi: 8    Wyświetleń: 363
  • [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
  • 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
  • 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
  • Użycie pinów z LCD na I2C do innych urządzeń a także dwa porty szeregowe

    Nano czyli ATMega328P... biblioteka od SIM800, do tego LCD i brakło Ci RAMu. lcd.print przyjmuje string... a używanie typu string na 328P to bardzo zły pomysł. Albo zainwestuj w Mega 2560 Pro, albo zacznij bardzo szanować pamięć. Komunikaty trzymaj jako static const char albo inline jako F("tekst") . Czyli zamiast: lcd.print("status GSM = IDLE "); daj...

    Arduino   10 Sty 2018 19:45 Odpowiedzi: 36    Wyświetleń: 1956
  • [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
  • 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
  • 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
  • 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
  • ATMEGA2560 [C] - Problemy z bootloaderem z karty SD i przyciskiem enkodera

    gdy wystawisz wartość na wyjście, to możesz tą wartość odczytać z bufora wejściowego. To dobrze bo już nie miałem pewności. To jedynie wskazuje na pin będący w stanie wysokiej impedancji. Poprawnie załączasz pull up, więc zjawisko nie powinno występować Jednak występuje. Pin jest połączony bezpośrednio. ----------------------------------------...

    Mikrokontrolery Początkujący   01 Sty 2017 22:05 Odpowiedzi: 4    Wyświetleń: 918
  • 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
  • Płyta indukcyjna Wirpool wyświetla kod F07 na dwóch strefach - co robić?

    Niestety nie ma mnie w mieszkaniu ale widzę po fotkach, że to jest taki model Whirlpool - ACM 932/BA. https://whirlpool-cdn.thron.com/static/3...

    AGD Początkujący   29 Kwi 2024 13:55 Odpowiedzi: 8    Wyświetleń: 1581
  • ARM LPC2142 KEIL - Jak uruchomić przerwanie IRQ dla Timera?

    Hi Dzieki za komentarze poszedlem w druga strone i teraz instaluje zgodnie z http://vsdev.me/notes/setting_up_arm_gcc... Aha przywrocilem jeszcze z orginalnych przykladow static inline cpu_t get_cpsr(void) { cpu_t val; asm volatile ("mrs %[val], cpsr\n":[val]"=r"(val):); return val; } static inline void set_cpsr(cpu_t val) { asm volatile ("msr...

    Mikrokontrolery   22 Sie 2013 18:40 Odpowiedzi: 2    Wyświetleń: 1347
  • 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
  • [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
  • [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++ - Klasa obsługująca błędy - komplikacje z operatorem przeciążonym <<

    Plik h: [syntax=cpp]#include <iostream> #include <string.h> using namespace std; #pragma once class CBlad { public: CBlad(void); ~CBlad(void); int m_iKod; char* m_csOpis; static bool s_bJestBlad; char* OpisBledu(); inline bool Ostrzezenie() { return m_iKod!=0; } inline bool Blad() { return m_iKod<0; } inline int DajKodBledu() { return...

    Programowanie   18 Lis 2012 17:00 Odpowiedzi: 19    Wyświetleń: 1647
  • 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
  • Jak zrealizować taką instrukcję w AVRStudio? Atmega8.

    ...Chce zeby ,gdy na pinie np.PD1 wystapi stan 0 to wyszedl z petli. No to sprawdzaj właściwy rejestr , a nie jest nim PORTD :( #define OFF() (PIND & (1<<PD1)) //lub bardziej ANSI ;) static inline char OFF(void) { return (PIND & (1<<PD1));} //... DDRD&=~(1<<PD1);...

    Mikrokontrolery   11 Kwi 2007 11:51 Odpowiedzi: 7    Wyświetleń: 1239
  • Kompilator nie znajduje definicji funkcji inline w C - jak to rozwiązać?

    Moim problemem jest podzielenie programu, który napisałem na stosowne moduły. Chodzi zatem o pliki *.c i *.h. Kompilacja przebiega właściwie dla nazwijmy to zwykłych funkcji. Problem jest natomiast z funkcjami zadeklarowanymi jako inline. Kompilator nie znajduje definicji takich funkcji. Przykład pliku attiny2313.c (fragment): [syntax=c] #include <attiny2313.h>...

    Programowanie   05 Sie 2015 13:56 Odpowiedzi: 11    Wyświetleń: 1305
  • stm32 - eclipse konfiguracja minimum plikow Cube/ CMSIS

    ja pobralem najnowsza paczke mam plik func tego typu __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __get_PRIMASK(void) { uint32_t result; __ASM volatile ("MRS %0, primask" : "=r" (result) ); return(result); } /** \brief Set Priority Mask This function assigns...

    Mikrokontrolery ARM   02 Lut 2016 20:18 Odpowiedzi: 9    Wyświetleń: 1596
  • Xmega128A1U - Jak przekroczyć barierę 64KB w AtmelStudio z GCC 4.8.1?

    AtmelStudio GCC 4.8.1 Build started. ... Target "CoreBuild" in file "C:\Program Files\Atmel\Atmel Studio 6.2 ... Invoking: AVR/GNU C Compiler : 4.8.1 ... XMEGA128A1U EBI 4 portowy SRAM AS7C32096A-10TCN Mam dziwny problem z przekroczeniem 64KB Jest sobie kod [syntax=c] ... typedef uint32_t hugemem_ptr_t; static inline uint_fast8_t...

    Mikrokontrolery AVR   29 Maj 2015 10:31 Odpowiedzi: 20    Wyświetleń: 1530
  • 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
  • [STM32F7] Jak wyłączyć i włączyć przerwania w STM32F7 podczas zapisu do SRAM?

    W CMSIS są do tego funkcje: [syntax=c] /** \brief Enable IRQ Interrupts This function enables IRQ interrupts by clearing the I-bit in the CPSR. Can only be executed in Privileged modes. */ __attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void) { __ASM volatile ("cpsie i" : : : "memory"); } /** \brief Disable IRQ Interrupts This function...

    Mikrokontrolery ARM   25 Maj 2016 10:10 Odpowiedzi: 4    Wyświetleń: 903
  • 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
  • Optymalizacja WinAVR, gcc, uC. Gdzie popełniam błąd?

    W pierwszym przypadku w celu jak największej dokładności czasu opóźnienia jest wyliczana liczba przebiegów wewnętrznej pętli (która wykonuje się w 3 lub 4 cyklach, zależnie od tego, czy licznik może mieć 1 bajt, czy musi mieć 2 bajty) - te obliczenia są wykonywane na liczbach zmiennoprzecinkowych. Co do drugiego kodu, nie jest on funkcjonalnie taki...

    Mikrokontrolery AVR   12 Lis 2008 18:50 Odpowiedzi: 7    Wyświetleń: 2436
  • [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
  • LPC2103 UART w Eclipse - zawieszanie się procesora przy wysyłaniu danych

    wszystko jest w pliku armint #include "armint.h" #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; }...

    Mikrokontrolery ARM   07 Sie 2010 13:36 Odpowiedzi: 7    Wyświetleń: 1496
  • 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
  • [STM32] Debugowanie Hard Faulta - Odwijanie stosu, call stack, Distortos

    Jeśli jest jakaś literatura, proszę o naprowadzenie Oczywiście że jest. Nazywa się programming manual (w załaczeniu do M4) oraz "Cortex-Mx Technical Reference Manual" na stronach ARM-a. Są też fajne książki Josepha Yiu (wygoogluj sobie - kupisz na amazonie) Jaka jest najprostsza metoda do zapisania wartości rejestru lr do zmiennej języka c? Jak to...

    Mikrokontrolery ARM   07 Mar 2021 22:47 Odpowiedzi: 8    Wyświetleń: 891
  • Atmega32 i 74HC595: Błąd przy komunikacji SPI w LED Cube

    Mam następujący kolejny błąd : SPI Collision FLAG. Przerwania nie naprawiły błędy. ktoś ma pomysł ? Dodano po 1 Witam, Naprawiłem problem. Napisałem jeszcze raz od nowa cały program, problem był w tym, że kompilator nie za bardzo rozumiał kodu w postaci (1<<PB4) gdzie był zatrzask. SPIIF kasuje poprzez dla zainteresowanych kod : [syntax=c] #include...

    Mikrokontrolery AVR   04 Kwi 2013 20:46 Odpowiedzi: 18    Wyświetleń: 3321
  • [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
  • 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
  • [ATmega][C/C++] Programowanie obiektowe, inne kompilatory

    Wracając do przerwań, zgodnie z obietnicą wrzucam przykładowe definicje interfejsu klas opartych na przerwaniach. Pierwsza obsługuje timer i umożliwia wywoływanie z opóźnieniem lub cyklicznie podanej funkcji, lub wywoływanie jakiejś akcji: 1 #ifndef _TMFTIMER_H 2 #define _TMFTIMER_H 3 4 #include <stdint.h> 5 6 #ifdef __AVR__ 7 #include <avr/io.h>...

    Mikrokontrolery AVR   09 Cze 2010 19:02 Odpowiedzi: 60    Wyświetleń: 8152
  • 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