typedef volatile

Znaleziono około 283 wyników dla: typedef volatile
  • Optymalizacja algorytmu zapalania pixela na wyświetlaczu 128x64 SRAM 1024B

    Może tak? [syntax=c] typedef volatile unsigned char vu8; vu8 *buf; void setpixel(unsigned char x, unsigned char y) { vu8 *tmp; tmp=buf+(((int)y<<4)|(x>>3))... switch(x&7) { case 0:*tmp|=1; break; case 1:*tmp|=2; break; case 2:*tmp|=4; break; case 3:*tmp|=8; break; case 4:*tmp|=16; break; case 5:*tmp|=32; break; case 6:*tmp|=64; break;...

    Mikrokontrolery   18 Kwi 2011 10:28 Odpowiedzi: 11    Wyświetleń: 1810
  • [AVR] AVR C – deklaracja i obsługa zmiennej bitowej do sterowania liniami portu

    Może bitfield: volatile typedef struct{ u8 PB0:1; u8 PB1:1; u8 :6; }Bits; u8 zmienna = 0; Bits *STICK =(volatile Bits*) &zmienna; STICK->PB0 = 1;

    Mikrokontrolery AVR   09 Paź 2010 19:08 Odpowiedzi: 2    Wyświetleń: 2015
  • REKLAMA
  • Nie znalazłeś odpowiedzi? Zadaj pytanie Sztucznej Inteligencji

    Czekaj (1min)...
  • STM32F429 + RA8875 7 800x480: Podłączenie przez FMC z SDRAM?

    le nie ma tam słowa o FMC . No bo FMC po skonfigurowaniu to po prostu pamięć w przestrzeni adresowej - czyli po prostu piszesz lub czytasz do/z tego adresu. Czyli DMA memory to memory. Dla przykładu u mnie w projekcie teraz używam banku 1, 16 linii danych i szyny adresowej A2 jaki DC. Po sonfigurowaniu FMC [syntax=c]typedef struct { volatile uint16_t...

    Mikrokontrolery ARM   19 Sie 2019 08:02 Odpowiedzi: 6    Wyświetleń: 1860
  • Kompilator pomija pętlę do-while w kodzie C - jak to naprawić?

    Czyli mam zadeklarować zmienną volatile, ją sprawdzać, i podstawić w warunku ? TAK I jeszcze dopisek: A co by było: [syntax=c]#typedef volatile ESC # define ESC() (PIN(PORT) & 1<<2) }while(ESC)[/syntax]

    Mikrokontrolery AVR   15 Lut 2012 22:41 Odpowiedzi: 40    Wyświetleń: 3282
  • atrybut "volatile" dla struktury danych - niezgodność

    Twoją nazwą typu jest _FIL a nie FIL. FIL to zmienna o typie _FIL, którą utworzyłeś przy okazji stworzenia struktury. Przyjrzyj się - przecież jest tam typedef. 4\/3!!

    Mikrokontrolery   28 Sie 2011 09:32 Odpowiedzi: 23    Wyświetleń: 3667
  • REKLAMA
  • Jak działa warunek `if(bufor)` w programowaniu w C na mikrokontrolery?

    Powinieneś użyć volatile, ale tutaj trzeba trochę uważać żeby się nie pogubić. Przykładowo mamy jakąś zmienną która musi być volatile bo używamy jej w przerwaniu lub coś w tym stylu. [syntax=c] volatile int jakasZmienna; [/syntax] Wskaźnik do takiej zmienne będzie wyglądać tak: [syntax=c] volatile int *wskaznik; [/syntax] W tym wypadku jest to wskaźnik...

    Programowanie   29 Mar 2017 07:47 Odpowiedzi: 38    Wyświetleń: 2622
  • Jak zdefiniować globalną strukturę TMenuItem w C?

    Może lepiej zdefiniować typ zawierający jedną komórkę tablicy (w pliku nagłówkowym), po czym wpakować tam całą tablicę jako statyczną? dane.h: typedef struct { volatile unsigned char tekst[15]; volatile unsigned char start_x; volatile unsigned char ID; volatile unsigned char Page; volatile unsigned char Up; volatile unsigned char Down;...

    Mikrokontrolery   31 Lip 2007 13:04 Odpowiedzi: 2    Wyświetleń: 971
  • [c] Jak przypisać zmiennej w strukturze adres rejestru w AVR bez wskaźników?

    Miłej zabawy: [syntax=c]/* ========================================... Name : nicePointer.c Author : tymon_x Version : Copyright : Your copyright notice Description : Nice Pointer (?) in C, ANSI-style ========================================... */ #include <stdlib.h> #include <stdint.h>...

    Mikrokontrolery AVR   05 Gru 2011 00:50 Odpowiedzi: 3    Wyświetleń: 944
  • REKLAMA
  • [ARM][C] Dlaczego stosowanie pól bitowych powoduje błędy?

    Witam serdecznie. Mam taki problem. Otóż jakiś czas temu zafascynowałem się przydatnością pól bitowych przy programowaniu mikrokontrolerów. Fascynacja posunęła się do tego stopnia, że przepisałem cały plik lpc31xx.h po swojemu, dodając funkcjonalność w obsłudze rejestrów w postaci pól bitowych. Myślałem że ich stosowanie zdecydowanie poprawi czytelność...

    Mikrokontrolery ARM   29 Maj 2017 13:07 Odpowiedzi: 59    Wyświetleń: 7304
  • Czy struktura `FlagProtocol` w C jest automatycznie inicjalizowana do 0?

    Czy zmienna złożona typedef struct Modbus { volatile char ErrorFrame; volatile char ErrorOrder; volatile char TimeOut; volatile char Message; volatile char SendBlank; volatile char SupervisorTimer; volatile char ErrorAddress; }FlagProtocol; volatile FlagProtocol FlagModbus; zostanie zainicjowana automatycznie (do wartości 0) ?

    Mikrokontrolery AVR   12 Gru 2010 18:08 Odpowiedzi: 16    Wyświetleń: 3019
  • [GCC] -Os - czyli jak zrobic, zeby gcc nie zjadalo funkcji?

    Tośmy razem posłali ;-) Rozdziel te inline'y na dwa pliki i po kłopocie. Albo lepiej zamiast szastać na lewo i prawo volatile to jeden typedef ? Albert

    Mikrokontrolery AVR   12 Lis 2008 13:53 Odpowiedzi: 10    Wyświetleń: 2337
  • REKLAMA
  • AVR-GCC w Atmel Studio 7.0.948 - Makro jako argument dla makro

    Chyba mam [syntax=c]typedef struct { volatile uint8_t* Port; volatile uint8_t* Pin; volatile uint8_t* Ddr; } AVR_SFR_GPIO; const AVR_SFR_GPIO GPIO[] = { #ifdef PORTA { .Port = &PORTA, .Pin = &PINA, .Ddr = &DDRA }, #endif { .Port = &PORTB, .Pin = &PINB, .Ddr = &DDRB }, { .Port = &PORTC, .Pin = &PINC, .Ddr = &DDRC },...

    Mikrokontrolery AVR   05 Lis 2016 15:09 Odpowiedzi: 23    Wyświetleń: 1413
  • Jak napisać kod GPIO dla STM32 bez użycia bibliotek?

    Mój przebiegły umysł wypłodził coś takiego, napisałem to na luźno jako koncepcję, bez sprawdzanie tego w praktyce :P [syntax=c]/* * main.c * * Created on: May 19, 2012 * Author: tymon_x */ #include "stdint.h" #include "stdio.h" // BUTTONS ////////////////////////////////////////... typedef enum E_BUTTON_ACTION { Button_Down, Button_Release,...

    Mikrokontrolery ARM   07 Lip 2012 20:42 Odpowiedzi: 188    Wyświetleń: 18582
  • [STM32F4] Udostępnienie biblioteki do bit-bandingu dla peryferiów ADC, GPIO, I2C

    Tzn TIM podałem tylko jako przykład, w rzeczywistości odnosi się to do wszystkiego. Bardziej logicznym zapisem dla mnie jest taki: [syntax=c]// to lub typedef jeśli ktoś chce #define bitband_t *(volatile unsigned int *) ... #define BITBAND_PERI(address,bit) ((BITBAND_PERI_BASE + (((unsigned int)address)-BITBAND_PERI_REF)*32 + (bit*4)))[/syntax] i teraz...

    Mikrokontrolery ARM   13 Maj 2013 13:45 Odpowiedzi: 27    Wyświetleń: 5263
  • Cortex-M3: Jak używać bit bandingu w pamięci SRAM i rejestrach peryferyjnych?

    Przykład dla komercyjnego RealView Development Suite (RVDS): [syntax=c] typedef struct { volatile unsigned x: 1; volatile unsigned y: 1; } st __attribute__((bitband)); st s; int main() { s.x = 1; s.y = 0; for (;;); } [/syntax] Po kompilacji: [syntax=asm] 0800024c <main>: 800024c:4802 ldrr0, [pc, #8]; (8000258 <main+0xc>) 800024e:2101 movsr1,...

    Mikrokontrolery ARM   14 Maj 2013 12:45 Odpowiedzi: 30    Wyświetleń: 6393
  • Błąd kompilacji przy użyciu goto w C po przerwaniu SIG_INTERRUPT0

    Tego rodzaju kod najprościej Ci będzie opisać za pomocą automatu, może kod nie będzie aż tak szybki, ale na pewno będzie się go dało zrozumieć :) setjmp/longjmp też może być, ale to działa raz (tj. dla jednego przerwania), struktura sigjmp_buf zajmuje 23/24 bajty na AVR a zapamietanie/wykonanie skoku też zajmuje kilkanaście instrukcji. Szkielet implementacji...

    Mikrokontrolery   20 Paź 2008 09:22 Odpowiedzi: 8    Wyświetleń: 7185
  • 1wire SEARCH ROM (0xF0) zwraca dwie jedynki - problem z odczytem

    Na oscylogramie widać podstawę czasu przypadającą na działkę więc wrzuciłem aby ktoś porównał to z tym jak ma być, więc dlaczego twierdzisz że nie jesteś w stanie odczytać zależności czasowych? Co mi da wrzucenie przez kogoś swojego oscylogramu z działającej komunikacji? Ano to że wówczas dokonam właśnie porównania z timingami które ja mam u siebie...

    Mikrokontrolery   27 Sie 2020 23:10 Odpowiedzi: 26    Wyświetleń: 1461
  • [ZL25ARM] Czy można debugować STR912FAW44 za pomocą ZL18PRG przez LPT?

    Probowalem wstawic breakpointa za delay'em i wcisnac continue...ale program wtedy rusza i sobie dziala normalnie, a przeciez to nie main powinien sie zapetlac a petla nieskonczona while. Może postawiłeś tego breakpointa w miejscu w którym nie ma żadnej instrukcji, przez co debugger takowego breakpointa ignoruje? Nie działem nigdy w Insight, więc nie...

    Mikrokontrolery ARM   02 Kwi 2009 12:28 Odpowiedzi: 54    Wyświetleń: 7867
  • GDB nie wyświetla zawartości rejestrów peryferiów w projekcie STM32F103 (Bluepill)

    Może to dlatego, że GIOB to jest makro a nie zmienna. Wydłubałem trochę kodu z twoich plików źródłowych: [syntax=c]#define __IO volatile typedef struct { __IO uint32_t CRL; __IO uint32_t CRH; __IO uint32_t IDR; __IO uint32_t ODR; __IO uint32_t BSRR; __IO uint32_t BRR; __IO uint32_t LCKR; } GPIO_TypeDef; #define PERIPH_BASE ((uint32_t)0x40000000) #define...

    Mikrokontrolery ARM   25 Lut 2022 14:16 Odpowiedzi: 16    Wyświetleń: 630
  • Jak ustawić 10 pinów portów w stan wysoki za pomocą wskaźników?

    :arrow: sandrak24 Chcesz mieć tablicę, gdzie będziesz miał wpisane numery portów i bitów do ustawienia w programie w stan wysoki? O to chodzi? Bo, prawdę mówiąc, też nie rozumiem, co znaczy, że porty ustawione w tablicy... W każdym razie, jeżeli chodzi chodzi o to, co napisałem, to np. [syntax=C] typedef struct { volatile uint8_t *port; uint8_t bit_mask;...

    Mikrokontrolery AVR   27 Lut 2012 22:40 Odpowiedzi: 24    Wyświetleń: 2003
  • [LPC17xx Cortex, CrossWorks] Durne błędy kompilacji

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

    Mikrokontrolery ARM   22 Sty 2011 16:50 Odpowiedzi: 5    Wyświetleń: 2243
  • [ARM][C/Keil] Struktura z polami bitowymi w odniesieniu do rejestru...

    Spróbuj czegoś takiego: [syntax=c] typedef union { uint32_t all; struct { uint32_t : 6; uint32_t dat:10; uint32_t : 8; uint32_t chn: 3; uint32_t : 3; uint32_t ovr: 1; uint32_t dne: 1; }prt; }adc_reg; #define AD0GDR_bf (*(volatile adc_reg*)(&AD0GDR)) int main(void) { while (1) { if (AD0GDR_bf.prt.chn == 0) AD0GDR_bf.prt.dat++; } } [/syntax] Oczywiście...

    Mikrokontrolery ARM   23 Mar 2012 23:00 Odpowiedzi: 26    Wyświetleń: 3279
  • Jak skompilować lwIP 1.3.2 z poprawnym uwzględnieniem ścieżek do plików?

    Tak Freddie Chopin, Twoja rozbiegówka LPC2103 po zmianie rozmiaru pamięci i przydzeleniu troche dla obsługi przerwań zadziałała. MEMORY { rom (rx): org = 0x00000000, len = 512k ram (rwx): org = 0x40000000, len = 32k } __user_system_stack_size = 1024; __fiq_stack_size = 0; __irq_stack_size = 128; __supervisor_stack_size...

    Mikrokontrolery   23 Paź 2011 15:48 Odpowiedzi: 27    Wyświetleń: 3270
  • AVR/ATMEGA644PA: Problem z odczytem zmiennej z EEPROM poza instrukcją if

    Witam Mam pytanie dlaczego zmienna która inkrementuje się tutaj: [syntax=c] if(klawisz_wcisniety(ZAWODNIK_M)) { lcd_cls(); zawodnik_przejazdy_read(); zawodnik_przejazdy[zawodnik.numer].okraz... = 0; zawodnik_przejazdy_update(); zawodnik.numer++; zawodnik_przejazdy[zawodnik.numer].okraz... zawodnik_przejazdy_update(); } [/syntax] Inkrementuje się...

    Mikrokontrolery Początkujący   01 Sie 2013 19:50 Odpowiedzi: 1    Wyświetleń: 1179
  • C++: Optymalizacja stałych danych w pamięci FLASH dla STM32F10X

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

    Mikrokontrolery ARM   17 Sie 2009 07:42 Odpowiedzi: 9    Wyświetleń: 2957
  • C - jak poprawnie przypisać wartości do struktury PWM_data?

    No jak nadaję wartość w main()- to bez błędów. Nie rozumiem- dlaczego. Jak to nie rozumiesz dlaczego - to chyba nie dziwne, że wewnątrz funkcji można przypisać dane do pól struktury. Struktura zdeklarowana jako globalna- no bo przed main- a nadać wartości nie można. Jak nie nie można ???? A jak będę chciał zmienić te wartości w innej funkcji albo w...

    Mikrokontrolery   03 Sty 2012 22:12 Odpowiedzi: 11    Wyświetleń: 1481
  • Framework AVR GCC do tablicowego sterowania pinami Atmegi jak w Arduino

    (...) no), może być np #define LED A3, gdzie A3 jest odpowiednikiem zarówno DDRA |= (1 << PA3), PORTA |= (1<<PA3) jak i PINA & (1<<PA3). Umożliwi to definiowanie tablic pinów (np. do sterowania wieloma ledami) jako: const uint8_t pinLED Tworzenie takiego frameworku dla AVR GCC, który pozwalałby na wygodny dostęp do poszczególnych...

    Mikrokontrolery Początkujący   07 Lut 2024 13:34 Odpowiedzi: 71    Wyświetleń: 1038
  • AVR/ATmega8 - Gdzie stosować volatile przy tablicach i strukturach?

    Witam, ostatnio pisze bibliotekę służącą do eliminacji drgań styków w przyciskach. Będzie to działało w ten sposób, że w timerze wywołujemy funkcje obniżającą czas po którym możemy wcisnąć przycisk kolejny raz. Tak samo w kodzie - używamy funkcji z biblioteki która robi wszystko za nas :) Jednak napotkałem na taki problem - gdzie zastosować volatile...

    Mikrokontrolery AVR   28 Sty 2017 07:43 Odpowiedzi: 40    Wyświetleń: 2532
  • 5 powodów, dla których warto budować własne środowisko do kodowania w C/C++

    AVE... We wszystkich układach, z którymi ja miałem do czynienia wartości były równane do prawej, inaczej pisząc little endian. W przypadku MCU ma to znaczenie tylko dla timerów/liczników i ADC, i tylko wtedy, gdy chcemy by to miało znaczenie. Dla przykładu weźmy PIC16F1827. Układ ma 16-bitowy Timer1, który jest inkrementowany albo przez wybrany pin,...

    Artykuły   25 Kwi 2023 11:56 Odpowiedzi: 54    Wyświetleń: 3402
  • [nRF51822][C/CoIDE] - Wgrywanie programu - Colinkex - swd

    Witam, Próbuje wgrać cokolwiek do nRF51822. Niestety nie posiadam ani J-link'a, ani zestawu ewaluacyjnego firmy Nordic ( jego posiadanie uprawnia do ściągnięcia z ich strony środowiska do tego układu), więc próbuję czy da się zaprogramować ten układ czymś innym. Na forum CooCox'a dowiedziałem się, że trzeba napisać własny algorytm flashowania, co też...

    Mikrokontrolery ARM   23 Wrz 2014 09:56 Odpowiedzi: 9    Wyświetleń: 2406
  • Czy zmienne volatile rozwiązują problem synchronizacji w C?

    No właśnie problem w tym, że operuję na polu bitowym i nie mogę przypisać go do wskaźnika. Nie na pojedyncze pole tylko na całą strukturę [syntax=c]typedef struct { uint32_t semafor : 2; uint32_t inne_pola : X; } Xtyp; Xtyp Zmienna; volatile Xtyp *pZmienna; pZmienna = (volatile Xtyp*)&Zmienna; Zmienna.semafor = x; // Dostęp do nie volatile pZmienna->semafor...

    Mikrokontrolery AVR   29 Mar 2012 21:07 Odpowiedzi: 15    Wyświetleń: 1384
  • LPC1114 - Nieudana konfiguracja SPI dla Fat Fs i Petit Fat na karcie pamięci

    Też poprawiłem. Mam też nowe funkcje wysyłające i odbierające, z jakichś przykładowych kodów pod ten uC wygrzebałem. Całość na chwilę obecną: [syntax=c] #define MOSI (1<<9) #define MISO (1<<8) #define SCK (1<<11) #define SS (1<<2) #defineCS_H() LPC_GPIO0->MASKED_ACCESS[SS] = SS //SS/* Set MMC CS "high" */ #define CS_L() LPC_GPIO0->MASKED_ACCESS[SS]...

    Mikrokontrolery ARM   06 Lis 2011 16:56 Odpowiedzi: 48    Wyświetleń: 6122
  • STM32F103ZET6 - Jak wgrać bootloader z karty SD i zmienić offset flash?

    Panowie, czy może ktoś pomóc. Jak powinna wyglądać dokładnie funkcja switch_to_main_app(); ? Nie działa mi do końca dobrze ten bootloader, prawdopodobnie przez to. U mnie wygląda tak: [syntax=c]void switch_to_main_app(void) { typedef void (*function_ptr)(void); function_ptr firmware; SCB->VTOR = (volatile uint32_t)(0x08002000);// set vector table const...

    Mikrokontrolery   08 Kwi 2016 15:24 Odpowiedzi: 43    Wyświetleń: 6588
  • [avr-gcc] tablica 128 bitów - sposób utworzenia: struct?

    ok flagi bitowe tworzę tak : typedef struct { unsigned char bit0:1, bit1:1, bit2:1, bit3:1, bit4:1, bit5:1, bit6:1, bit7:1; } FlagBits; typedef union { FlagBits Bits; unsigned char Byte; } Flags; volatile Flags flaga ; #define jakas_flaga flaga.Bits.bit0 ale potrzebuję tablicy o rozmiarze 128 komórek...

    Mikrokontrolery   05 Gru 2009 11:25 Odpowiedzi: 13    Wyświetleń: 3179
  • Jak wyłączyć wyświetlanie Warningów w WinAVR przez modyfikację makefile?

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

    Mikrokontrolery AVR   16 Mar 2011 13:38 Odpowiedzi: 16    Wyświetleń: 3205
  • Jak zdefiniować porty wyjściowe w Atmega8 dla transceivera MMcc1000?

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

    Mikrokontrolery AVR   05 Cze 2013 14:44 Odpowiedzi: 22    Wyświetleń: 3645
  • [STM32] Konfiguracja SysTick dla FATfs na STM32 - problem z dekrementacją Timer1

    static volatile DWORD Timer1, Timer2; z kolei DWORD to: typedef unsigned longDWORD; probowalem tez wpisywac dokladnie takie same wartosci ja Ty w Twojej funkcji i nic nie pomogło pozatym do obslugi przerwania ustawilem migajaca diodke, jesli sie nie myle od razu po wywolaniu funkcji: SysTick_Conf(); powinno to przerwanie sie generowac co 10ms a wogole...

    Mikrokontrolery ARM   26 Mar 2011 21:14 Odpowiedzi: 4    Wyświetleń: 2582
  • [C]Wyciąganie ze stringa i wpisywanie do tabeli struktur

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

    Mikrokontrolery AVR   03 Kwi 2009 07:21 Odpowiedzi: 3    Wyświetleń: 1348
  • Implementacja prostego FSM w C – jak elegancko wyznaczać nowy stan bez if-ów?

    Pragnę napisać sobie jakiś prosty FSM, ponieważ niedługo planuję go użyć (oczywiście bardziej rozbudowany). http://obrazki.elektroda.pl/2498661200_1... Automat bardzo prosty i bez większego sensu, chodzi mi o idee. Czy ma ktoś jakieś fajne patenty jak można taki automat stanów zaimplementować w c. Przede wszystkim u mnie nie podoba mi...

    Mikrokontrolery   12 Lip 2012 20:46 Odpowiedzi: 7    Wyświetleń: 3734
  • 16F690 - [MPLAB X][XC8] Rejestry, składnia - problemy na starcie

    Ad 1: [syntax=c]// bitfield definitions typedef union { struct { unsigned T2CKPS :2; unsigned TMR2ON :1; unsigned TOUTPS :4; }; struct { unsigned T2CKPS0 :1; unsigned T2CKPS1 :1; unsigned :1; unsigned TOUTPS0 :1; unsigned TOUTPS1 :1; unsigned TOUTPS2 :1; unsigned TOUTPS3 :1; }; } T2CONbits_t; extern volatile T2CONbits_t T2CONbits (at) 0x012;[/syntax]...

    Mikrokontrolery PIC   18 Sie 2013 11:09 Odpowiedzi: 4    Wyświetleń: 2421
  • [Atmel AT91] [Atmel AT91][C] Jak uniknąć problemów z przerwaniami przy modyfikacji flag?

    Witam, używam w programie kilku „flag“, czyli zmiennych sterujących przebiegiem programu. Chcę je wszystkie zdefiniować jako POLA BITOWE i umieścić w strukturze, tak by leżały w jednym słowie 32-bitowym. Wartości „flag“ będą zmieniane zarówno w programie głównym jak i w przerwaniach. Dlatego zadeklarowałem zmienną jako volatile:...

    Mikrokontrolery ARM   28 Cze 2011 12:16 Odpowiedzi: 8    Wyświetleń: 2103
  • Unia z polami const i zwykłymi w języku C: czy jest dozwolona? - struct, uint8_t, avr-gcc

    Czy taka unia: Powinno działać, ja tylko dodałbym volatile, żeby kompilator widząc const za bardzo nie optymalizował.

    Programowanie Początkujący   04 Wrz 2021 23:36 Odpowiedzi: 12    Wyświetleń: 423
  • [C] Jak zainicjalizować wskaźniki do tablic struktur w C?

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

    Mikrokontrolery   02 Gru 2011 08:45 Odpowiedzi: 5    Wyświetleń: 2714
  • [stm32][DMA] - transer completed, a fizyczne zakończenie tranmisji

    A w pliku stm32f10x.h jest: [syntax=c]#define SPI_CR2_TXEIE ((uint8_t)0x80) /*!<Tx buffer Empty Interrupt Enable */[/syntax] Zauważ że to przerwanie będzie generowane po każdym opróżnieniu bufora TX. Powinieneś włączyć je dopiero pod koniec czyli w Twoim przypadku podczas obsługi przerwania od zakończenia działania DMA. Lepiej jednak wróćmy do wcześniejszej...

    Mikrokontrolery ARM   23 Cze 2012 19:32 Odpowiedzi: 13    Wyświetleń: 2205
  • ATmega reset i utrata EEPROM silne zakłócenia EMI

    Witam ponownie, próbowałem ogarnąć na początek funkcję eeprom_write_block. Oto fragment kodu: [syntax=c] typedef struct { // tu są chary, inty, tablice } TEngine; // zmienna w RAM volatile TEngine Engine; // Kopia będzie w EEPROM TEngine EEMEM eeEngine; // i gdzieś w kodzie dalej eeprom_write_block( &Engine, &eeEngine, sizeof(Engine) ); [/syntax] Przy...

    Mikrokontrolery AVR   08 Sty 2020 21:50 Odpowiedzi: 7    Wyświetleń: 999
  • Ustawianie całego portu GPIO [STM32F4] [c/Crosstudio]

    Jest szybsze bo tak jak mówisz te rejestry są tylko do zapisu. Też mam coś takiego: [syntax=c]typedef struct { __IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */ __IO uint32_t OTYPER; /*!< GPIO port output type register, Address offset: 0x04 */ __IO uint32_t OSPEEDR; /*!< GPIO port output speed register, Address offset:...

    Mikrokontrolery ARM   17 Kwi 2012 22:28 Odpowiedzi: 8    Wyświetleń: 2154
  • [LPC2138][C/Keil] - Symulator swoje, MCU swoje (struktury z polami bitowymi)

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

    Mikrokontrolery ARM   14 Gru 2012 12:11 Odpowiedzi: 11    Wyświetleń: 2091
  • Jak zinterpretować zapis: PORTB = (*(volatile unsigned char *)0x38)

    definiowany jest wskaznik na strukture, a potem po prostu makro ktore ma w sobie adres. analogia: char *char_ptr; = typedef char* char_ptr_t; char_ptr_t char_ptr; w makro po prostu jest rzutowanie, dzieki czemu mozna sie potem odwolywac do pamieci. analogia: *((char*)jakis_tam_adres)=jakas_wartosc; 4\/3!!

    Mikrokontrolery AVR   17 Gru 2008 10:02 Odpowiedzi: 5    Wyświetleń: 1258
  • [ARM][C/Keil] Dostęp do rejestrów przez pola bitowe i w całości jak to zrobić?

    Witam serdecznie. Próbuję sobie stworzyć możliwość dostępu do rejestrów mikrokontrolera poprzez całą ich zawartość lub poprzez dostęp za pomocą pól bitowych. Generalnie nie jest to jakoś specjalnie trudne, ale utknąłem w jednym miejscu. Otóż chciałbym mieć możliwość dostępu do rejestru np.: PCONP w całości poprzez jego nazwę. I taki dostęp umożliwia...

    Mikrokontrolery ARM   07 Kwi 2012 20:54 Odpowiedzi: 4    Wyświetleń: 1300
  • Kod C dla ATmega8 do regulatora modelarskiego - brak reakcji urządzenia

    No to próbuję: [syntax=c] //* \section OA Original author //* Andy Gayne is the original author of this application note. //*/ //program z noty Atmela 136 //przerobiony na ATMega8, kwarc 11059200 i okrojony program #include <avr/io.h> #include <avr/interrupt.h> //! Pin mappings #define CHMAX 6 // maximum number of PWM channels #define PWMDEFAULT...

    Mikrokontrolery   27 Paź 2011 20:50 Odpowiedzi: 51    Wyświetleń: 6951
  • [STM32] ADC1 STM32L4 - problem z zapisem do rejestrów CR w C++

    Wrzuć kompilowalny przypadek + wywołanie kompilatora. Moim zdaniem nie ma możliwości, aby nie działało, ponieważ akurat to pola ADC_TypeDef są volatile. Jest pewna drobna szansa, że natrafiłeś na ciekawy błąd kompilatora, dlatego chciałbym, abyś wrzucił tu kod tej klasy najlepiej z przykładem użycia w main(). I napisz jaką masz dokładnie wersję kompilatora....

    Mikrokontrolery ARM   20 Lip 2018 11:42 Odpowiedzi: 4    Wyświetleń: 723
  • [ARM] [ARM][C] Jak unikać zmiennych globalnych w embedded C? Struktury i wskaźniki

    Witam. Parę pytań, przemyśleń, proszę o wypowiedzenie się. Temat dotyczy programowania embedded C głownie mikrokontrolerów raczej większych 32 bitowych. 1. Stosowanie wielu zmiennych globalnych jest bee Czy w świecie embedded bez dynamicznej alokacji pamięci da się inaczej? Zakładając, że mamy jakieś stałe duże struktury globalne (zawierające mnóstwo...

    Programowanie   15 Lis 2017 10:13 Odpowiedzi: 19    Wyświetleń: 921
  • [STM32F1] - Obsługa zewnętrznego SRAM przy pomocy FSMC

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

    Mikrokontrolery ARM   21 Lut 2014 12:32 Odpowiedzi: 11    Wyświetleń: 1779
  • Dekodowanie sygnału DCF77 na ATmega - synchronizacja czasu bez GPS

    U mnie (Katowice) z DCF77 nie ma problemu, oczywiście zdarza się, że przez jakiś czas nie działa, ale przecież nie musi - wystarczy że złapie sygnał od czasu do czasu. Z tego co zauważyłem, to strasznie przeszkadza w odbiorze DCF77 komputer. Kiedy miałem zasilane układy przez USB to generalnie był problem, gdy je zasilałem osobno - z sieci lub z baterii...

    Mikrokontrolery AVR   09 Mar 2023 17:01 Odpowiedzi: 27    Wyświetleń: 10116
  • ATMEGA [C] - Przechowywanie nazw portów i pinów w tablicy lub strukturze

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

    Mikrokontrolery AVR   14 Lip 2014 19:12 Odpowiedzi: 7    Wyświetleń: 2016
  • Jak zoptymalizować kod ASM generowany przez kompilator dla Cortex-M0?

    składanie zmiennej przez |= miało pokazać co musiałbym zrobić aby uzyskać podobny kod wynikowy do tego co wygenerował kompilator. I ja tak nie piszę lecz takie coś na podstawie prostej operacji wygenerował kompilator. Tak wygląda mój kod bo widzę, iż ktoś sięciągle czepia przykładu jak mniej więcej wyglądać musiałby kod źródłowy aby uzyskać taki dziwny...

    Mikrokontrolery ARM   15 Lis 2017 22:15 Odpowiedzi: 26    Wyświetleń: 1902
  • Czy ta procedura i jej wywołanie jest prawidłowe? Jezyk C

    Mam pewien problem z programem który napisałem doprowadza on do zawieszenia pętli głównej programu ale nie całego procesora timery wciąż działają poprawnie. Co najgorsze to zawieszanie jest losowe raz na 5 minut albo raz na godzinę. Wydaje mi się że problem tkwi w tej procedurze. Proszę Was o "rzucenie" swoim fachowym okiem czy nie popełniłem jakiegoś...

    Mikrokontrolery Początkujący   12 Wrz 2017 12:05 Odpowiedzi: 2    Wyświetleń: 933
  • [ATmega] [ATmega][C] Zmienna globalna zwraca 0 przy wywołaniu funkcji w main()

    basemodule.h typedef struct { uint8_t blockParam; uint8_t signedMove; uint32_t deviceInitialAdress; }glob; uint8_t returnBlockParam(void); basemodule.c volatile static glob globalVariables; uint8_t returnBlockParam(void) { uint8_t returningValue = globalVariables.blockParam; rprintf("Returning : %d",returningValue...

    Mikrokontrolery AVR   28 Lip 2009 14:05 Odpowiedzi: 8    Wyświetleń: 1500
  • [AT91SAM7X][C/Keil-GNUARM] przerwaia z PIT a pętla główna

    W skrócie mój kod wygłąda tak: #include'y typedef unsigned int UINT; typedef enum {FALSE = 0, TRUE = 1} BOOL; static volatile BOOL var1, var2; int main(void) { var1 = FALSE; var2 = FALSE; LCD_Open(); PIT_Open(250, sys_irq_handler); while (1) { if (var1 == TRUE) { LCD_DrawCharC(2, 42,...

    Mikrokontrolery ARM   14 Lis 2008 17:15 Odpowiedzi: 2    Wyświetleń: 1503
  • [C++] Alokacja pamięci dla wskaźnika Cpintd_Driver i Cpintd_Device – błąd incomplete type

    #define int i32 typedef i32 (*TCpintd_InitFunction)(stru... Cpintd_Driver* instance); struct Cpintd_Driver { struct Cpintd_Device* instance; TCpintd_InitFunction init; }; struct Cpintd_Device { volatile struct Hardware* hardware; struct CSL_CpIntdCfgInfo configuration; }; Ktoś pomógłby mi zaalokować pamięć dla wskaźnika...

    Programowanie   01 Wrz 2010 15:46 Odpowiedzi: 5    Wyświetleń: 2005
  • Brak ustawiania FLAGA_CZAS w przerwaniu timera - kod w pętli głównej nie wykonuje się

    Atmega 328P z kwarcem 18432000 (w specyfikacji mozna ja kręcić do 20MHz) spokojnie potrafi wygenerować trzy PWM przesunięte w fazie o 120 stopni z krokiem 256 z częstotliwością 50Hz przy tym nadając na USART o aktualnych warunkach jednego potencjometru. Pewnie że potrafi, ja na attiny 861 wygenerowałem 3 sinusy co 120 st z regulacją F od 20 do 250Hz...

    Mikrokontrolery Początkujący   09 Cze 2022 09:58 Odpowiedzi: 11    Wyświetleń: 603
  • Błędy w komunikacji STM32 przez RS485 z driverem MAX3485 - jak to naprawić?

    Zmodyfikowałem do takiej postaci i dalej sypie błędami, przy okazji gubi też ramki powrotne http://obrazki.elektroda.pl/7514503300_1...

    Mikrokontrolery ARM   18 Kwi 2017 18:57 Odpowiedzi: 5    Wyświetleń: 1974
  • Xmega128A3 - uart na przerwaniach, biblioteka Atmela, echo na terminal.

    I bufor kołowy właśnie jest wykorzystywany w bibliotece Atmela :) (at)Piotrus_999 - uważasz, że powinienem napisać tutaj własne funkcje do obsługi uarta? Panie Tomku - rozumiem zamysł, poprawię kod :) Powiem może dokładniej co mam do zrobienia i dlaczego uparłem się na tę bibliotekę Atmela. Trochę mi nie wychodziło stąd wróciłem do początku żeby sobie...

    Mikrokontrolery AVR   09 Kwi 2017 14:24 Odpowiedzi: 6    Wyświetleń: 990
  • Jak zmierzyć czas między znakami w DOS przy użyciu przerwań szeregowych?

    rdtsc zwraca mi często wartości ujemne, no chyba że robie coś nie tak. Mam celka 466. Tak wygląda program: #include <dos.h> #include <stdio.h> #include <mem.h> typedef struct { unsigned lo; unsigned hi; }stim; int main(void) { volatile stim t_beg,t_end; volatile unsigned ul,uh,i; volatile unsigned long lbeg,lend,ldif;...

    Programowanie   04 Sty 2006 11:07 Odpowiedzi: 10    Wyświetleń: 2371
  • [STM32][STM32F407] - [USART]złączenie dwóch kanałów USART, wysłanie trzecim

    Witam, Chcę zrobić coś takiego: strumień danych z RX kanałów USART1 oraz USART2 ma być połączony w jeden strumień i przesyłany na bierząco kanałem USART3. Chciałem to zrobić na przerwaniach i czymś w rodzaju DIY bufora cyklicznego - USARTY w przerwaniach ładują do jednego bufora i inkrementują wskaźnik, natomiast w nieskończonej pętli w main.c jest...

    Mikrokontrolery ARM   18 Cze 2013 17:02 Odpowiedzi: 11    Wyświetleń: 2949
  • Rzutowanie unsigned char na short/int/float w ATSAM7/9 ARM – czy kod jest poprawny?

    Witam, Wszystkie tablice w moim kodzie większe niż 10 elementów ma jako zmiemme globalne. W funkcjach nie tworzę tablic wiekszych niż parę elementów. Oto przykład takich tablic: #define MB_MAX_QUEUE_SIZE 1024 #define MB_MAX_FRAME_SIZE 256 #define MB_MIN_FRAME_SIZE 5 typedef struct _MbPbFrame { unsigned char MBRxQueue[MB_MAX_QUEUE_SIZE];...

    Mikrokontrolery ARM   20 Paź 2011 07:37 Odpowiedzi: 21    Wyświetleń: 2015
  • [avr-gcc][c][m8]Wywoływanie funkcji przez wskaźnik. Adresy w mapfile.

    Witam. Mam pytanie do specjalistów od avr i gcc. Chcę zrobić sobie debuger do atmegi8, który będzie w stanie odczytywać lub ustawiać po rs232 wartości zmiennych oraz wywoływać funkcje. W zamyśle po zlinkowaniu kodu make wywoływać ma skrypt w pelru, który parsuje .map file w poszukiwaniu zmiennych statycznych i globalnych oraz adresów funkcji. Potem...

    Mikrokontrolery AVR   30 Lip 2012 21:10 Odpowiedzi: 6    Wyświetleń: 1853
  • Atmega8A-PU - Brak współpracy z wyświetlaczem 7 segmentowym.

    [syntax=c] #ifndef ports_h #define ports_h #include <stdint.h> #include <avr/io.h> #define F_CPU 1000000UL typedef struct { uint8_t p0 : 1; uint8_t p1 : 1; uint8_t p2 : 1; uint8_t p3 : 1; uint8_t p4 : 1; uint8_t p5 : 1; uint8_t p6 : 1; uint8_t p7 : 1; } IO; #define _PORTB (*(volatile IO*)&PORTB) #define _PORTC (*(volatile IO*)&PORTC)...

    Mikrokontrolery   20 Wrz 2013 18:01 Odpowiedzi: 19    Wyświetleń: 2481
  • AVR kompilator Microchip XC8 - zmienna w rejestrach I/O (GPIOR)

    Dla zamknięcia tematu: Poprawnie działa też:[syntax=c]volatile uint8_t bFlags __attribute__((io_low(0x1E+0x20)));[/syn... Ale podajemy adres z offsetem 0x20 (jak dla adresacji RAM a nie IO). A także propozycja która otrzymałem z avrfreaks: [syntax=c]typedef union { uint8_t AllFlags; struct { uint8_t MyFlag:1; uint8_t b1:1; uint8_t b2:1; uint8_t b3:1;...

    Mikrokontrolery   13 Gru 2020 16:24 Odpowiedzi: 9    Wyświetleń: 759
  • Sterowanie 8 diodami LED na attiny2313 z PWM w języku C - jak to zrobić?

    Udało mi się znaleźć fajny kod z opisem programowego pwm-a od RedLina. Przerobiłem go trochę na moje 7 kanałów. Domyślnie był na 3. https://filmy.elektroda.pl/29_1428477691... Wygląda na to jakby mikrokontroler się nie wyrabiał, ale nie jestem pewien. Jak można byłoby to zoptyamlizować ? Odnośnie korekcji jasności świecenia, jak mógłbym ją tutaj doimpementować...

    Mikrokontrolery   08 Kwi 2015 11:47 Odpowiedzi: 9    Wyświetleń: 1374
  • [C] [C][AVR] Jak działa makro #define T_BIT(adr) w kodzie C?

    Witam Mam problem z rozszyfrowaniem działania tego kodu: typedef struct pojedyncze_bity { unsigned char bit0: 1; unsigned char bit1: 1; unsigned char bit2: 1; unsigned char bit3: 1; unsigned char bit4: 1; unsigned char bit5: 1; unsigned char bit6: 1; unsigned char bit7: 1; }pole_bitowe ; #define T_BIT(adr)...

    Mikrokontrolery AVR   26 Sie 2010 11:09 Odpowiedzi: 7    Wyświetleń: 1574
  • [Attiny2313][avr-gcc] i sprzętowy PWM działający nie do końca jak powinien

    Dzień dobry, mam problem z programowym PWM. Sprzętowy działa ok ale potrzebuję mieć 8-10 odbiorników więc muszę to zrobić programowo. Problem polega na tym że na wyjściach (PB0, PB1) pomimo ustawionego takiego samego poziomu są różne napięcia. Dla PB0 na wyjciu 0,1V a dla PB1 2,4V Oto kod w C: [syntax=c]#define F_CPU 8000000L #include <avr/io.h>...

    Mikrokontrolery   02 Sie 2012 21:01 Odpowiedzi: 2    Wyświetleń: 1407
  • [AVR] [AVR][GCC] PCF8583 - Błędny odczyt danych z zegara, sekwencja sekund 010123...

    Wyciąłem tylko obsługę EEPROM bo mi to nie potrzebne. Jak by ktoś mógł by się przyjrzeć to był bym wdzięczny. [syntax=c] /* * main.c * * Created on: 2010-09-07 * Autor: Mirosław Kardaś * * Program korzysta ze sprzętowej obsługi I2C/TWI * Umożliwia zapis danych do RTC oraz EEPROM a także * oczyt z tych urządzeń * */ #include <avr/io.h> #include...

    Mikrokontrolery AVR   17 Kwi 2011 08:27 Odpowiedzi: 15    Wyświetleń: 3633
  • Atmega32 - Konflikt zegara i przetwornika ADC przy inicjalizacji przerwań

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

    Mikrokontrolery   31 Maj 2012 19:37 Odpowiedzi: 4    Wyświetleń: 2510
  • [C] biblioteka mcp23s17 - wskaźnik argumentem funkcji do sterowania pinem ?

    Postanowiłem przekazać PORTC oraz numer pinu do funkcji SPI, jednak nie do końca rozumiem gdzie postawić gwiazdkę a gdzie operator wyłuskiwania adresu kiedy mam funkcję w funkcji [Main][syntax=c] int main(void) { expand.conf.csPort = &PORTC;// port C expand.conf.csPin = 15;//numer pinu while (1) { //wysterowanie wyjsc EXP_WriteOutput(&expand);...

    Mikrokontrolery Początkujący   22 Kwi 2019 08:44 Odpowiedzi: 4    Wyświetleń: 531
  • [STM32] [STM32F103] - Wywołanie funkcji z przerwania UART w projekcie blink_led

    Witam, Konfiguracja projektu oparta o stm32_blink_led autorstwa Freddie Chopin. Układ STM32F103. Uruchomiłem proste przerwanie z UARTa żeby sterować przepływem programu podczas testów. Problemem jest to wywołanie funkcji z przerwania: typedef struct { u8 print_test_1; u8 print_test_2; u8 print_test_3; } sys_flag_t; volatile sys_flag_t sys_flag;...

    Mikrokontrolery ARM   27 Lip 2013 09:50 Odpowiedzi: 18    Wyświetleń: 2868
  • Sterownik RGB na attiny2313 - problem z Timer0 w C

    Witam! Mam problem z timerami w języku C (w moim projekcie) dlatego zwracam się do Was o pomoc. Napiszę od początku, żeby przedstawić o co mi chodzi. Zbudowałem kiedyś sterownik taśmy led RGB oparty na mikroprocesorze attiny2313, w którym za pomocą jednego przycisku zmieniam podstawowe kolory na pasku ledowym (czerwony, zielony, niebieski) oraz ich...

    Mikrokontrolery AVR   26 Kwi 2018 09:15 Odpowiedzi: 4    Wyświetleń: 2805
  • [Atmega32][C] Jak używać dwóch źródeł przerwań na raz?

    Witam, w moim programie na atmegę 32 wykorzystałem timer0 oparty na zegarze procesora (8MHz) aby uruchamiać pewną funkcję ok. 100 razy na sekundę. Do programu postanowiłem dodać obsługę zewnętrznego kwarcu zegarkowego 32768Hz aby móc mierzyć w miarę dokładnie czas przy użyciu timera timer2. Po dopisaniu komend do obsługi kwarcu żaden timer nie działa....

    Mikrokontrolery AVR   20 Sie 2011 16:29 Odpowiedzi: 2    Wyświetleń: 1047
  • Sterowanie MG996r z Atmega32 - zacinanie przy szybkich ruchach

    Witam Mam problem z sterowaniem serwomechanizmem. Zrobiłem program który działa na mniejszych serwach TowerPro SG-90. Ale gdy podłącze serwomechanizm MG996r to po parokrotnym szybszym poruszaniu serwa serwo się zacina i kręci w jedną stronę. Zakres sygnalu do sterowania serwem to 190-240. Bardzo proszę o pomoc z góry dziękuję niżej wklejam cały mój...

    Mikrokontrolery AVR   04 Sty 2020 16:29 Odpowiedzi: 1    Wyświetleń: 516
  • Błąd kompilacji przy użyciu bibliotek GSM i PCF8574 w Arduino - jak to naprawić?

    To jest w PCint.h #include "pins_arduino.h" volatile uint8_t *port_to_pcmask[] = { &PCMSK0, &PCMSK1, &PCMSK2 }; static int PCintMode[24]; typedef void (*voidFuncPtr)(void); volatile static voidFuncPtr PCintFunc[24] = { NULL }; volatile static uint8_t PCintLast[3];...

    Arduino   10 Mar 2016 20:49 Odpowiedzi: 7    Wyświetleń: 1239
  • [GCC] Jak przekazać definicje z GCC do asemblera AVR?

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

    Mikrokontrolery AVR   27 Gru 2008 01:21 Odpowiedzi: 9    Wyświetleń: 2206
  • GCC: Działanie programu w zależności od optymalizacji i wersji kompilatora

    Przy kompilacji bez -O, z samym -O, z -O1 działa prawidłowo. Z -O2, czy -Os nie kończy się. Dlaczego? Zadeklarownie 'ix' jako 'volatile' pomaga. No, ale żeby indeks pętli trzeba było deklarować 'volatile'... Kompilator: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 (sprawdziłem na 2 komputerach) gcc (Ubuntu 5.5.0-12ubuntu1~16.04) 5.5.0 20171010 (na dwóch)...

    Programowanie   25 Lut 2021 23:09 Odpowiedzi: 10    Wyświetleń: 573
  • [STM32F4-Discovery][CoIDE] - Program nie działa podczas debugowania w RAM

    Witam, męczę się od jakiegoś czasu z komunikacją przez USART. Poniższy kod działa prawidłowo kiedy załaduję go do FLASH, ale nie chce działać poprawnie w RAM. 4 diody z poniższego kodu zapalają się w obu przypadkach, tylko uC nie wysyła danych jak program siedzi w RAM. Używam CoIDE. Proszę o pomoc. [syntax=c] #include "stm32f4xx.h" void init_RCC(void);...

    Mikrokontrolery ARM   09 Gru 2013 23:06 Odpowiedzi: 4    Wyświetleń: 1392
  • [AVR GCC] - Jak uniknąć zamazywania pamięci przy optymalizacji -Os?

    Skróciłem program do minimum, które powoduje występowanie błędu. Timer i nieużywane tablice musiały pozostać, żeby błąd się ujawniał. W obecnej postaci jest tak: main.c [syntax=c] #include <avr/io.h> #include <avr/pgmspace.h> #include <avr/interrupt.h> #ifndef F_CPU #define F_CPU 8000000 #endif #define UART_BAUDTX 38400 #define __UBRR_TX...

    Mikrokontrolery AVR   24 Gru 2013 22:37 Odpowiedzi: 6    Wyświetleń: 1668
  • Losowe błędy w pracy mikrokontrolera - jak je przyspieszyć?

    Jeśli ktoś ma jeszcze jakieś uwagi w zakresie tzw. dobrych praktyk programistycznych w tym temacie, to chętnie poczytam :-) To wrócę do moich poprzednich propozycji. Compile-Time Assertions może wyglądać tak, liczne przykłady zastosowania w sieci: [syntax=c]#define compile_time_assert_not_equal(msg, a, b)\ typedef int compile_time_assert_##msg##_not_equal_##...

    Mikrokontrolery   29 Sty 2013 12:59 Odpowiedzi: 31    Wyświetleń: 4281
  • 24FJ64GA008 - Przerwanie od Timer2/3 jest za rzadko

    Tak wyglądają funkcje: [syntax=c] #ifndef harddef_h #define harddef_h #define ON 1 #define OFF 0 #define TRIS_LED00 TRISEbits.TRISE4 #define TRIS_LED01 TRISEbits.TRISE5 #define TRIS_LED02 TRISEbits.TRISE6 #define TRIS_LED03 TRISEbits.TRISE7 #define TRIS_LED04 TRISCbits.TRISC1 #define TRIS_LED05 TRISCbits.TRISC3 #define TRIS_LED06 TRISGbits.TRISG6 #define...

    Mikrokontrolery PIC   11 Gru 2013 23:42 Odpowiedzi: 29    Wyświetleń: 3495
  • ATmega16 i USART: ISR(USART_RXC_vect) nie działa poprawnie, co robić?

    1/ jak kolwiek brakuje Ci w kodzie wywolania usart_init() 2/ brakuje tez brakuje zalaczenia przerwan: asm volatile("sei"::&#... 3/ kolejna sprawa, to ze niewiem, czy zmienna "events" jest z atrybutem volatile - jesli nie, to: while(!events) { }; skompiluje sie do czegos takiego: if(!events) while(1)...

    Mikrokontrolery   15 Lip 2007 17:03 Odpowiedzi: 1    Wyświetleń: 1643
  • [lpc2378][C/Keil] Błędy kompilacji mojego drivera Pin Connect Block.

    Witam, mam pytanie co do mojego drivera PCB. Otóż chciałem sobie ułatwić konfigurowanie pinów µkontrolera i napisałem sobie taki plik nagłówkowy (... oznaczają wycięte części pliku, żeby było krócej): compiling pcb_driver.c... ..\pcb_driver.c(15): warning: #174-D: expression has no effect ..\pcb_driver.c(15): error:...

    Mikrokontrolery ARM   28 Sty 2012 19:27 Odpowiedzi: 5    Wyświetleń: 1579
  • [C++11][Cortex-M3/M4] - distortos - obiektowy RTOS dla mikrokontrolerów w C++

    Cześć Freddie, serdeczne dzieki za odpowiedź, odpisuję wolno bo czasu brak:(. Tak, pomyliłem się co do cyferek, bootloader zajmuje pierwsze 3 x 16kB (do 0xC000), po tym jest 16kB sekcji data a aplikacja zaczyna się na 0x10000. Sekcja data ma dwojakie zastosowanie: 1. Wymiana informacji pomiędzy aplikacją i bootloadrem (ustawienie flagi) + dane nieulotne...

    Mikrokontrolery ARM   06 Kwi 2021 08:03 Odpowiedzi: 255    Wyświetleń: 38067
  • [ATMega8] [ATMega8][C] - Jak efektywnie używać flag w jednej zmiennej unsigned char?

    Witam wszystkich! Napisałem program w którym wykorzystuje flagi do oznaczania np: obecności czujnika DS18B20, stanu przycisków czy też innych zdarzeń. Aby zaoszczędzić pamięć, zamiast użyć np. 8 zmiennych typu unsigned char (bo tyle potrzebuje flag) chciałem użyć tylko jednej zmiennej unsigned char i wykorzystać wszystkie jej 8 bitów. Oto fragment kodu:...

    Mikrokontrolery Początkujący   24 Mar 2013 10:08 Odpowiedzi: 13    Wyświetleń: 2007
  • [Atmega32] - PWM i błąd podczas kompliowania przykładu z książki

    zamiast TIMSK1 użyj TIMSK gdzie znajdziesz ICIE1 PSRSYNC w M32 nazywa się chyba PSR10 i jest w SFIOR a nie w GTCCR jak w M168 Tak, to dało rozwiązanie, że kod mi się kompiluje. Problem w tym, że na wejście dostaje sygnał 50 Hz (ramka trwa 20ms) a sygnały wysoki w przedziale 0-2 ms. Obojętnie jakie dam wypełnienie (0-2ms) to ciągle na z tego kodu otrzymuje...

    Mikrokontrolery AVR   27 Gru 2014 20:07 Odpowiedzi: 4    Wyświetleń: 966
  • czekanie na wciśnięcie przycisku - ograniczone czasowo

    A po co czekać w pętli, można to ładniej zrobić czekając w stanie oczekiwania. Co więcej mozna wtedy robić cos innego. Np tak #include <avr/io.h> #include "register_types.h" #define WAIT_FOR_KEY_PRESS 1 #define MAIN_WITH_OTHER_CODE 2 typedef struct autom{ unsigned char state; // mozna dac short jesli trzeba wiecej niz 256 unsigned...

    Mikrokontrolery   31 Sie 2008 10:20 Odpowiedzi: 19    Wyświetleń: 2598
  • STM32F405: Odczyt I2C działa tylko w trybie debug, co może być przyczyną?

    Program jest następujący: Mam strukture dla czujników a w niej tablice dla której zapisuje odczytane dane z danego czujnika: [syntax=c] typedef struct { // jakies inne zmienne volatile uint8_t dataToCalculate[6]; // do zapisu danych } czujnik; [/syntax] Tworzę 3 globalne zmienne 'czujnik' (używam 3 czujników): [syntax=c] czujnik Zyroskop = { ...}; czujnik...

    Mikrokontrolery   18 Mar 2014 08:06 Odpowiedzi: 17    Wyświetleń: 1551
  • [LPC1765] - [LPCXpresso] Powolne wywoływanie przerwań, wymiana na STM32F4 ?

    Od kilku dni zabawiam się kamerką OV7670, próbuję pobrać z niej obraz w formacie RGB565 i o mało ambitnej rozdzielczości QCIF(bo taki zmieści się w całości w RAM). Program, który napisałem ma za zadanie w przerwaniu pobrać obraz do pamięci, zatrzymać przerwanie i zapisać zawartość do pliku bmp. Oto mój kod : Otw. pliku 0 Init OV7670 1 System Clock 120...

    Mikrokontrolery ARM   28 Wrz 2012 19:20 Odpowiedzi: 6    Wyświetleń: 2079
  • [AVR] [AVR][C] - Jak efektywnie tworzyć rozbudowane menu wielopoziomowe?

    Niestety nie mam żadnego filmiku. Sprawuje się REWELACYJNIE. Za to podrzucę Ci gotowca bo ten na stronie wymaga sporo poprawek i domysłów co gdzie jest. Jest to wersja pierwotna która przechowuje w tablicy RAM. Funkcje których tutaj nie ma robią: LCDINIT - inicjalizacja wyświetlacza LCD_POS - ustawia pozycję: wiersz, kolumna LCD_CLS - czyści ekran LCD_PSTR...

    Mikrokontrolery AVR   08 Paź 2012 11:50 Odpowiedzi: 16    Wyświetleń: 20340
  • AVR - Czy pola bitowe w C poprawiają czytelność kodu zamiast #define?

    Witam, zacząłem pisać programy w języku C na AVR i od razu stwierdziłem, że odwoływanie się do rejestrów DDRx, PORTx, PINx jest niewygodne. Przeanalizowałem różne programy na różnych forach i nie rozumiem dlaczego wszyscy stosują dyrektywę #define a nikt nie korzysta dodatkowo z pół bitowych. Pisząc taki oto kod : [syntax=c] typedef struct { uint8_t...

    Mikrokontrolery   12 Lut 2014 11:09 Odpowiedzi: 13    Wyświetleń: 2172
  • C++ Szablon Bitów: Kompilacja z Rejestrem TIMSK - Jak Poprawić?

    Stworzyłem szablon bitu(flagi), który ma za zadanie sterować konkretnym bitem wyjścia wejścia( i nie tylko). Niestety mam problem przy jego kompilacji - jak wrzucić do niego odpowiedni rejestr np. TIMSK ? template<volatile uint8_t * T, unsigned char bit> class cBit{ static void on(){ *T |= 1<<bit; } static void off(){...

    Programowanie   10 Lut 2009 16:00 Odpowiedzi: 8    Wyświetleń: 2017
  • STM32F407 - Konfiguracja USART1, problem z inicjalizacją UART

    Witam, Próbuję uruchomić USART w STM moje funkcje to: [syntax=c] void init_USART1(void) { GPIO_InitTypeDef GPIO_InitStruct; USART_InitTypeDef USART_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_US... ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GP... ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;...

    Mikrokontrolery ARM   20 Sie 2015 19:59 Odpowiedzi: 11    Wyświetleń: 1053
  • ATmega8515 AVR Studio – jak definiować piny jak zmienne jak w EDE Tasking C?

    Witam, Przekopałem trochę literatury i znalazłem. Poniżej zamieszczam kod (sposób), być może komuś się on przyda. #include <avr/io.h> typedef struct _bajt { unsigned char bit0: 1; unsigned char bit1: 1; unsigned char bit2: 1; unsigned char bit3: 1; unsigned char bit4: 1; unsigned char bit5: 1; unsigned char bit6: 1; unsigned char bit7: 1; } przestrzen_bajtu;...

    Mikrokontrolery   22 Cze 2006 12:25 Odpowiedzi: 1    Wyświetleń: 919
  • [C] sterownik latarki, czas wciśnięcia mikroswitcha

    Piszę program do sterownika latarki, wciśnięcie przycisku na czas poniżej sekundy ma zmienić tryb świecenia- zmienia zmienną "l". nie działa mi to za bardzo, tzn. raz działa, raz nie, bez względu na to, czy przyciskam switcha któtko, czy trochę dłużej. Gdy w main ustawię INT0 na zbocze opadające, to nie reaguje w ogóle, dopiero zmiana na zmianę stanu...

    Mikrokontrolery Początkujący   07 Maj 2012 14:06 Odpowiedzi: 15    Wyświetleń: 2559