Albo w pliku zmienne.c: #define VARIABLES_HERE Manewry całkowicie zbędne. To co podał (at)Nepto jest OK. Ale jako, że lubię wiercić kijem w mrowisku powiem że w ten sposób też by było dobrze: 8-) [syntax=c]/***************** zmienne.h *******************/ #ifndef ZMIENNE_H #define ZMIENNE_H #define BUFRAMSIZ 256 extern char bufram[BUFRAMSIZ]; extern...
Chyba nie przeczytałeś informacji z linku podanego przez kolegę tmf , bo dowiedziałbyś się, że dla nowego kompilatora należy zamiast: [syntax=c] typedef struct stringg { uint8_t screen_cnt; // ilość ekranów char napis[]; // tekst do wyświetlania }string_struct PROGMEM; string_struct strr = {1, "avc"}; [/syntax] użyć składni: [syntax=c] typedef struct...
Jasne że tak, możesz też zdefiniowac własny typ typedef struct ram_structure { char a,b; int c; char d[30],e[10]; } sr; sr xxl[10];
Tak rób: [syntax=cpp] #define _CRT_SECURE_NO_WARNINGS #include "stdio.h" #include "math.h" #include "stdlib.h" //----------------------------- LISTY ----------------------------------------... typedef struct lista_kwadratów{ int numer; int x; int y; float a; float Pole; float Obwód; struct lista_kwadratów* nast; }kwadrat; [/syntax]
zmienna ^= 0x01; Mozna tez zrobic tak: typedef struct byte { b0:1; b1:1; b2:1; b3:1; b4:1; b5:1; b6:1; b7:1; } No a potem: byte zmienna; zmienna.b0 ~= zmienna.b0;
Można to zrobić tak: #include <stdio.h> #include <stdlib.h> struct key{ char *w; char *z; }; typedef struct key2 { char *w; char *z; } nasz_typ; const int tab_size = 100; struct key * tab; nasz_typ * tab2; int main() { tab = (struct key *) malloc(sizeof(struct key) * tab_size); tab2...
No nie bardzo. ad.1. Lista cykliczna, czyli zapętlona. Aby zapętlić listę dwukierunkową mając wskaźnik na jej dowolny element, musisz przejść całą listę w przód aby znaleźć ostatni element i w tył, aby znaleźć pierwszy element, a następnie zmienić wskaźniki next ostatniego elementu aby wskazywał na pierwszy i prev pierwszego elementu, aby wskazywał...
Mówi on: "The compiler does not permit pointers to functions so that the compiler can know at compile time the complete call tree. This is used to allocate memory for full RAM re-use. Functions that could not be in execution at the same time will use the same RAM locations. In addition since there is no data stack in the PIC®, function parameters...
https://obrazki.elektroda.pl/3874188600_... Zgodnie z propozycją (at)pkaczmarek2 postaram się podzielić tutaj kilkoma pomysłami na rozszerzenia i funkcje firmware OpenBeken IoT, zaczynając "zgodnie z życzeniem" ;-) od rozszerzonego sterownika DS18(B)20. Kod znajduje się w typedef uint8_t DeviceAddress[8]; // wir müssen die...
Witam! Jednym z rozwiązań jest zadeklarowanie pola struktury jako wskaźnika do np LEV-elementowych tablic typu "wskaźnik do char" np tak: [syntax=c]typedef struct { char *opis_msg; char *(*alarmy)[2]; } AL_TABLE;[/syntax]a nastepnie odwoływać się do nich następująco np: [syntax=c]printf("%s\n", (al_tab[2].alarmy[2])[1]);[/syntax] Analizując wiersz z...
A tak: (template) [syntax=c]#include <stdio.h> typedef struct Blower Blower; typedef struct { void (*handle)(Blower*); } BlowerState; struct Blower { int power; BlowerState *state; }; void blower_idle_state_handler(Blower*); void blower_mega_state_handler(Blower*); void blower_super_duper_hiper_state_handler(B... BlowerState idleState = {...
W pliku 'lcd.h' : #1 Usuń wszystkie 'inline' . #2 Zamiast: typedef struct LCD_LOCAL { uint8_t matrix[8]; // Matryca znaku char cAlt; // Znak alternatywny }LCD_LOCAL_PGM PROGMEM; napisz: typedef struct { uint8_t matrix[8]; // Matryca znaku char cAlt; // Znak alternatywny }LCD_LOCAL_PGM; W pliku 'local.h' : Zmień: extern...
błąd jaki zauważyłem to definicja "main" powinna być z dwoma argumentami, czyli "int main(int argc, char*argv[])". Wynika to z faktu, że biblioteka SDL2 podmieni ją na swoją. Dokładniej to SDL definiuje makro "main" jako "SDL_main" i jest to typ funkcyjny dwuargumentowy "int(*)(int,char**)". goto? Niektórzy tego nie lubią i uważają za zło. Jeżeli to...
Nie wiem, co rozumiesz, przez przepisywaniem wszystkich wskaźników, przecież właśnie zaletą listy jest to, że wystarczy "przepiąć" wskaźnik z elementu poprzedzającego usuwany element na następny: if(poprzedni != 0) poprzedni->nastepny = biezacy->nastepny; else glowny = biezacy->nastepny; przedmiot* temp = biezacy; biezacy = biezacy->nastepny;...
To rzutowanie to taka informacja, że: "to co odczytałeś spod podanego adresu jest wkaźnikiem do funkcji z takim a takim argumentem i zwracającym to i to" Dobrze? Generalnie tak. Rzutowanie w C to w zasadzie informacja dla kompilatora, że programista wie, co robi. :wink: Z tym typedef to tak: typedef unsigned char (*CallbackFuncPtr_t)(unsigne...
Patrząc na kod z postu Tantalosa to moj_dest_ptr to: typedef struct { struct jpeg_destination_mgr pub; /* public fields */ JOCTET * buffer; /* start of buffer */ unsigned char n; unsigned int jpeg_size; } moj_destination_mgr; typedef moj_destination_mgr * moj_dest_ptr; Czyli tworzysz nowy typ "moj_dest_ptr" który możesz używać zamiast takiej...
Nie znam tej biblioteki, pół minuty temu pobrałem jej źródła, ale z tego co patrzę, to struktura FILINFO zadeklarowana jakoś tak: [syntax=C]// FatFS R0.08b, ff.h typedef struct { DWORDfsize; /* File size */ WORDfdate; /* Last modified date */ WORDftime; /* Last modified time */ BYTEfattrib; /* Attribute */ TCHARfname[13]; /* Short file name (8.3 format)...
ThreadProc jest błędnie zadeklarowana. Poprawnie jest DWORD WINAPI ThreadProc(LPVOID theArg) <- bez * !!! Wtedy rzutowanie na PLTHREAD_START_ROUTINE w wywołaniu CreateThread() jest niepotrzebne. Zmienna watek nie jest zadeklarowana, Twój program nie kompiluje się w takiej postaci jak wyżej. Zobacz #include <windows.h> #include <assert.h>...
Potrzebuję w projekcie użyć dynamicznej alokacji pamięci, niestety malloc() zawsze zwraca mi NULL. 1. Proponuję nie używać malloc w projektach embedded. 2. Najprawdoposobniej sbrk jest tylko "kadłubkowa" dla zapernienia linkowania się kodu. Co zrobić: 1. Jeżeli się już uparłeś na "malloc" to proponował bym freeRTOS-a z jego implementacją heap4.c albo...
Powodem może być niepoprawna konfiguracja rejestrów sterownika. poza tym nie pokazałeś jak wygląda funkcja zapisu do ramu i ustawienia kursora. Ja używam takich funkcji: [syntax=c] typedef struct { vu16 REG; vu16 RAM; }LCD_TypeDef; #define LCD_BASE (0x6c000000) #define LCD (( LCD_TypeDef *) LCD_BASE) void LCD_WrReg(u8 reg, u16 data) { LCD->REG =...
[syntax=c]string imie; int a; void miasto(); // int miasto; // błąd był tu int klasa; int sil;[/syntax] Masz w kodzie okropny bajzel. 1. Nie używaj zmiennych globalnych (właśnie już wiesz czemu). 2. Jeżeli chcesz zastosować metodę Kopiego Pejsta - to znaczy że robisz coś źle. 3. Przeanalizuj ten kod: [syntax=c]#include <stdio.h> typedef struct...
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)...
Freddie Chopin : To nie jest aż takie proste. Z tego co ja zrozumiałem, to chodzi o zadeklarowanie typu zmiennej, coś pokroju: [syntax=C]typedef func_t (*func_t)(void *ptr);[/syntax] z tą tylko różnicą, że powyższe się nie kompiluje. Najbliższe rozwiązanie, to zwracanie struktury, wewnątrz której znajduje się wskaźnik na funkcję - strukturę można używać...
Jednak nie wiem jak przekształcić datę wprowadzoną przez użytkownika na UNIX. Możesz użyć poniższej funkcji w celu wyliczenia czasu: [syntax=c] time_t DateTime.makeTime(byte sec, byte min, byte hour, byte day, byte month, int year ); // returns time_t from components [/syntax] time_t to typ unsigned long, więc możesz w prosty sposób sprawdzić różnicę...
No PC-et mial niby tylko czytac ale jesli jest tak jak napisales to takie rozwiazanie jest faktycznie najwygodniejsze.Programowa realizacja FIFO nie jest rowniez problemem chocby mniej wiecej tak: #define MAX_FIFO 20 typedef struct { char ptr; char buff[MAX_FIFO]; } fifo_t; fifo_t fifo; void push_fifo(char byte) { fifo.buff[fifo.ptr]...
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...
Poprawiłem kod dla czytelności, dopisz sobie resztę. Nie kompilowałem ze względu na niekompletny kod, liczyłem na swoją wiedzę: [syntax=c]#include <ctype.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 80 #define END "koniec" // struktura liczby calkowitej z iloscia cyfr do...
Bynajmniej nie chciałem urazić w poprzednich postach, jednak, moim zdaniem, dopiero przedostatni post autora tematu konkretnie wskazał problem. Nie znam za bardzo arduino, ale bazując na [url=http://codebender.cc/]kompilatorze online, obsługa eeprom w arduino jest identyczna jak w c. Przykład: [syntax=c]#include <avr/eeprom.h> typedef struct {...
Przykład dla DMA [syntax=c]void Init_DMA_TFT(uint16_t nofData) { // DMA2 Init Stream 0 from SRAM to FSMC DMA2_Stream0->CR &= ~(DMA_SxCR_EN); while ((DMA2_Stream0->CR & DMA_SxCR_EN));// wait for disable and clear all flags DMA2->LIFCR |= DMA_LIFCR_CTCIF0 | DMA_LIFCR_CHTIF0 | DMA_LIFCR_CTEIF0 | DMA_LIFCR_CDMEIF0 | DMA_LIFCR_CFEIF0; //0b----|...
No przecież napisałem, że się nie da. Wskaźnik nie przechowuje żadnej innej informacji poza adresem (początku) zmiennej. W związku z tym, jeżeli funkcja potrzebuje rozmiaru, to trzeba go przekazać jako dodatkowy argument. Kolejny raz już nie będę tego powtarzał. Oczywiście, można sobie wszystko opakować w pseudoobiekty w stylu typedef struct {...
(at)tmf Masz rację, cały czas miałem to na końcu ..., ale mi to umykało ;-) Wersja z jednym wskaźnikiem: [syntax=c]/* * sb_buffer.c * * Created on: 20 mar 2017 * Author: Sparrowhawk */ #include <stdio.h> #include <string.h> #include "sb_buffer.h" typedef struct { SB_2DCHAR_PTR *data; SB_2DCHAR_PTR *to_draw; } SB_Buffer; static SB_Buffer...
Nie wczytuj do wektora, tylko do struktury. [syntax=cpp] typedef unsigned char BYTE; typedef unsigned short WORD; struct Ramka { BYTE start; BYTE adres; BYTE funkcja; BYTE dane[64]; WORD crc; BYTE stop; }; ifstream plik(nazwa_pliku, ios::in | ios::binary); Ramka ramka; plik.read ((char*)&ramka, sizeof (Ramka)); plik.close(); [/syntax]
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]...
Chyba znalazlam w czym problem - a przynajmniej u mnie zaczelo dzialac. Pracowalam na pierwszej wersji kodu wiec wkleje to na czym pracowalam. Sprawdz u siebie czy jest ok. [syntax=c]#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct PUDELKO { char identyfikator[256]; double x; double y; double z; struct PUDELKO...
https://obrazki.elektroda.pl/2181562000_... Hej, może ktoś z was planuje zrobić domową sieć kilkunastu czujników ale nie wie jaki protokół bezprzewodowy wybrać ? Jest tego masa, od Bluetooth, WiFi...... ale dzisiaj skupimy się na mało popularnym, ale wdg mnie, świetnym protokołem ESPnow opracowanych z tego co wiem przez Chińczyków...
Ale mieszacie... plik biblioteczny: Co to niby jest "plik biblioteczny"? Nie znam takiego sformułowania. Zapewne chodzi ci o plik .c, który to jest plikiem z kodem - po prostu. Biblioteki mają rozszerzenie .a i uwierz mi - niczego mądrego z nich nie skopiujesz w czystym texcie. Jeśli zaś chodziło ci o plik .c to sprawa jest badziej niź prosta - DEFINICJE...
https://obrazki.elektroda.pl/3221612800_... Witajcie moi drodzy. Zapraszam na relację z postępów prac nad otwartym firmware dla BK7231T. Temat ten napisany będzie w formie tutoriala, przedstawię tu krok po kroku jak opracowałem własny, wieloplatformowy (działający na Windowsie i BK7231T) mini-serwer HTTP, system konfiguracji pinów...
[syntax=c]#define SS1 PORTB |= (1 << 0) #define SS0 PORTB &= ~(1 << 0) #define CRG 0xF4 //rejestr konwersji #define TMP 0x2E //odczyt temperatury #define PRS 0xF4 //odczyt ciśnienia z overs x8 #define RAD 0xF6 //rejestr odczytu #define REG 0xAA //adres pierwszego rejestru typedef struct { int16_t ac1; int16_t ac2; int16_t ac3; uint16_t...
np. Jest jedna wada tego rozwiązania, zmieni się definicja struktury dojdą nowe elementy lub co gorsza zostaną poprzestawiane i wtedy nie trudno o błąd. Można to zrobić tez na inny sposób np.: [syntax=c]typedef struct { unsigned longBaudRate; unsigned charUartDiv; unsigned charDLM; unsigned charDLL; unsigned charFDR; }TBaudRateItem; #define BR_ITEMS...
Nie jestem pewny czy koledze nie chodzi o optymizacje kompilatora, kiedy string jest po prostu zadeklarowany (staly) :) Ale ten kodzik dziala bez problemu (czyta pierwszy wyraz z pliku woman.txt i wypisuje odwrotnie, wypisywanie oczywiscie mozna zmienic do pliku a nie na ekran). [syntax=c] #include <stdio.h> #include <stdlib.h> #include...
Coś naplątałeś... Aby uzywać malloca bez dziwnych errorów, musisz zadeklarować odpowiednią ilość miejsca na stertę . Co z tego, ze twoje zmienne zajmują niewiele ramu, skoro najpewniej ustawiles sobie parę kB sterty, i gdy przekroczysz te pare kB, program ci sie natychmiast wykrzaczy, bo oczywiście najpewniej nigdy nie sprawdzasz, czy malloc przypadkiem...
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...
Możesz spróbować dopasować do swoich potrzeb poniższy przykład: Give number of students: 2 [0] Student's firstname: Jan [0] Student's lastname: Kowalski [0] Student's study year: 1 [0] Student's group: 1 [0] Has student scholarship? (0 - No, 1 - Yes): 0 [1] Student's firstname:...
Moze trochę nie w temacje, ale kolega Kaczor90 prosił o proste rozwiązanie dla debouncingu, a tu co niektórzy chyba popsują się swoimi umiejętnościami programistycznymi, przekombinowywując jak się tylko da. Prosty przykład obsługi przycisków z uwzględnieniem z możliwością określenia mininalnego czasu wciśnięcia przycisku: [syntax=c] #define BUTTON_DEBOUNCE_TIME...
Witam Czy jest możliwość stworzenia tablicy która będzie zapisana w pamięci eeprom ?? Mam ta tablice ( raczej dane jakie mam w niej umieścic) i jak nie ma innej opcji wpiszę je ręcznie w edytorze hex.. korzystam z avrstudio i nie bardzo wiem jak mogłbym sobie z tym poradzić ten uC ma 512 bajtów moje dane zajmują troche ponad 300 chodzi mi o przykład...
Dorzucam opis programu i sterownika: [syntax=c]// Deklaracja struktury danych przechowującej parametry silnika krokowego typedef struct {...} Stepper_t; // Inicjalizacja struktury danych przechowującej parametry silnika krokowego // me - wskaźnik na strukturę przechowującą parametry silnika krokowego // number_of_steps - parametr silnika określający,...
Witam Mam problem z odczytem z pliku plik wejściowy wygląda następująco 1 2 3 4 5 6 7 8 8 9 10 11 12 13 14 plik wyjściowy 4064048 4064048 0 0 0 0 0 0 0 Niestety powinien wyglądać podobnie ja wejściowy :| Tak wygląda kod programu - kompilator to GCC W zastosowaniu do plików tekstowych to nie jest błąd, jednak ogólnie, w takich konstrukcjach zmienna...
Polecam książkę "Wprowadzenie do cyfrowego przetwarzania sygnałów" Lyons, Richard na podstawie, której powstał poniższy kod. Poniżej kod implementujący filtr FIR. F0 - częstotliwość odcięcia filtru Fs - częstotliwość Nyquista próbkowanego sygnału. Jeśli częstotliwość próbkowania wynosi 1Mhz to częstotliwość Nyquista wynosi 500kHz dolnoprzepustowego...
Należy pamiętać, że w nowszych wersjach avr-libc nie należy używać PROGMEM do deklaracji typu: Typedef Documentation prog_char Note: DEPRECATED This typedef is now deprecated because the usage of the __progmem__ attribute on a type is not supported in GCC. However, the use of the __progmem__ attribute on a variable declaration is supported, and this...
Te wasze kombinacje z menu to jakiś koszmar . za ILOSC_PODMENU trzeba wstawić liczbę taką, ile podmenu ma mieć dane "menu".. typedef struct _tMenuItem { unsigned char *tekst; void *menuItems[ILOSC_PODMENU]; unsigned char items,savedIndex; } tMenuItem; http://obrazki.elektroda.net/92_12880942... Teraz wystarczy zrobić: - funkcję,...
typedef struct stm32 typedef volatile loadlibrary typedef
schemat podłączenia żarówek wybor dysku twardego multimedia przedni głośnik
P010F – błąd MAF/MAP, Mass Air Flow Sensor A/B Correlation, objawy i przyczyny Volvo S40 II 2008 – oznaczenie kostki radia Quadlock, pinout, podłączenie MOST