[syntax=cpp]Pracownik::Pracownik(const char* imie, const char* nazwisko, const Data data_ur) { strcpy(Pracownik::pszImie,imie); }[/syntax] Sprawdź ;)
Chodziło mi o wykorzystanie tej funkcji tylko do znalezienia znaków ? i & . Przeanalizuj gotowca: [syntax=c]char strStartsWith(const char* s, const char* startsWith) { for (;;) { if (*startsWith == '\0') return 1; if (*s != *startsWith) return 0; ++s; ++startsWith; } } char getChrVal(const char* const s, const char* const key, char& variable) { if...
OK jeśli nie chce ci się tego zrobic w sposób reczny "przeleć po wszystkim", tylko tak jak ty to sobie wymiśliłeś to poczytaj o funkcji: [syntax=c]char * strpbrk ( const char *, const char * ); >[/syntax] ktora znajduje się w <cstring> poprawiłem styl mojej wypowiedzi, bo 5x przeczytałem swoją pierwszą odpowiedz i nic z niej niz zrozumiałem.
Rozwiązanie to działa świetnie przy maksymalnie 2 komendach, W kodzie jest błąd. A to że czasem działa wynika najprawdopodobniej z optymalizacji. Zobacz co się stanie jak skompilujesz z opcjami -O0 Można tak: [syntax=c] // wskazniki z umieszczeniem w pamieci FLASH ;) const char * const cmds[] PROGMEM = {cmd_ledon, cmd_ledoff }; ///... //w funkcji TranslateCommand()...
wydaje mi się że kiedyś miałem podobny problem (coprawda nie na uC ale na PC), udało mi się go zlikwidować dodając '(' czyli u ciebie byłoby const char *(* const lut_address); nie pamiętam już dokłądnie jakie warningi mi wywalało, no ale spróbować zawsze można :) BTW z 'const' zawsze mam problemy :P:P
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...
Serial to jakieś 30% całości. W tym momencie program jest za duży o jakieś 7% (~300 bajtów). Do tego celu używam kona arduino Blue pro micro ( odczytywane przez kompilator jako leonardo ). Problem w tym, że to nie koniec rozbudowy programy, a jedynie początek Czyli wstępnie, jak już nadmieniono, sprzęt za słaby do zadania. Ale możesz się pobawić np...
Tak udało się zamieniając definicje w pliku /wiringPi/drcNET.h na /********* struct drcNetStruct { uint32_t pin ; uint32_t cmd ; uint32_t data ; } ; **************/ #ifdef __cplusplus extern "C" { #endif extern int drcSetupNet (const int pinBase, const int numPins, const char *ipAddress, const char *port, const char *password) ; #ifdef __cplusplus }...
Jaką masz wersje biblioteki ESP Async WebServer, AsyncTCP ? Być może masz niekompatybilne ze sobą wersje. Ja obecnie używam ESP Async 3.6.0, AsyncTCP 3.3.2 Próbowałeś zmienić plik h: [syntax=c]int code, const char* contentType = asyncsrv::empty, const char* content = asyncsrv::emp na int code, const char* contentType = "", const char* content = ""[/syntax]...
W indekserze tego nie zmienisz chyba. te przypisana są właśnie po to aby nie było warningów "unused variable". ale przecież tego warningu gcc Ci chyba nie generuje przy kompilacji Ja w gcc (bo praktycznie tylko gcc używam robię tak w przypadku funkcji, które bedę pisac w przyszłości. [syntax=c]#define unused __attribute__((unused)) int _execve_r(struct...
A czemu nie sprawdzasz ile znaków oczekuje w buforze Serial (wartość zwracana przez available ())? Na tej podstawie możesz od razu "przeprocesowac" tyle znaków, ile zostało faktycznie odebranych - delay (100) w pętli mocno przyczynia się do tego, że tych oczekujących znaków będzie więcej niż jeden. dodatkowo przy kompilacji pojawia się ostrzerzenie...
Spróbuj tego kodu: [syntax=c]#include "U8glib.h" #include <SPI.h> #include <Wire.h> #include "max6675.h" U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // I2C int currentTemp = 0; String thisTemp = ""; int maxTemp = 0; // maximum temperature reached int minTemp = 0; // minimum temperature reached int pad = 0; int thermoDO = 8; int thermoCS...
Mam jeszcze jedno pytanie, jak przekonwertować string na "const char * ", ponieważ potrzebuję użyć const char *, a nie string. [syntax=c]String s; const char * tekst = s.c_str().[/syntax] https://www.arduino.cc/reference/en/lang...
to skoro padła odpowiedz jak poradzić sobie z problemem to powiem co poszło nie tak. w językach kompilowanych, na przykład C oprócz zwykłej tablicy istnieje także statyczna czysta tablica. [syntax=c]const char tablica[liczba][/syntax] gdzie liczba to naprzykład [syntax=c]#define liczba 100[/syntax] podczas przejścia preprocesora jak kompilator widzi...
Możesz przekonwertować plik na tablicę C (jest wiele narzędzi, poza tym to max kilkanaście linii w większości języków). Albo wygenerować od razu plik obiektowy i zlinkować z programem. arm-none-eabi-objcopy -I binary -O elf32-littlearm --set-section-flags .data=alloc,load,data,readonly --rename-section .data=.rodata plik.bin plik.o Dodaj plik plik.o...
Zajrzałeś do [url=http://www.nongnu.org/avr-libc/user... Pewnie nie. Masz tam przykłady odczytu danych z pamięci flash, np: [syntax=c] byte = pgm_read_byte(&(mydata[i][j])); [/syntax] Więc powinno wystarczyć coś takiego: [syntax=c] char str1[] PROGMEM = "String 1"; char str2[] PROGMEM = "String 2"; struct{ uint8_t a; const...
Ja w takich przypadkach stosuję metodę którą na swoje potrzeby nazwałem "split objects". Obiekt u mnie składa się po prostu z dwóch części - stałej i zmiennej. Zwykle "główny" obiekt jest stały, a ten "zmienny" fragment jest podrzędny, jednak są sytuacje w których robię to odwrotnie, głównie wynikające z polimorfizmu lub dlatego że łatwiej/lepiej jest...
[syntax=c] int i; int suma_af = 0; const unsigned char * p = (const unsigned char *)&data for (i = 0; i < sizeof(my_type)l i++) { suma_af += p[i]; } [/syntax] Zakładam, że struktura jest upakowna ;)
To jest pierwsz przymiarka do funkcji która będzie doklejać znaki, jednak w niej jest jakiś błąd którego nie potrafie namierzyć: char *add(const char *lancuch, const char znak) { char *nowy; nowy=(char *)malloc(strlen(lancuch)... strcpy(nowy,lancuch); nowy[strlen(lancuch)]=zn... free(lancuch);...
const char(* const AT_OK) Musisz naprawdę lubić utrudniać sobie życie [; const char napis[] = "..."; albo const char * const napis = "..."; 4\/3!!
Nie używam Keila ale coś takiego powinno wystarczyć [syntax=c]const unsigned char tablica[] = {dane}; const unsigned char *pointer pointer = tablica;[/syntax]
Coś na kształt: [syntax=cpp]void Send_Text(const char *text) { const char *ptr; uint32_t row,m,p; uint8_t y,i; for(y=1;y;y<<=1) { row=0; m=1; for(ptr=text;*ptr;++ptr,m<<=1) { p=5*(*ptr-' '); for(i=0;i<5;++i,m<<=1) { if(font5x8[p+i]&y) row|=m; } } Send_Napis((uint8_t*)&row,4); } }[/syntax]
Znalazłem bufor o rozmiarze 128 w części autoexec.bat. Zrobiłem szybkie wyszukiwanie :-) plik: src/cmnds/cmd_main.c Linia 940. commandResult_t CMD_ExecuteCommand(const char* s, int cmdFlags) { const char* p; const char* args; char copy[128]; Czy linia w pliku autoexec.bat jest zbyt długa, aby została poprawnie wykonana? Edit: Sprawdziłem ciąg wewnątrz...
Proszę o pomoc. Używam AVR Studio7 i pierwszy raz próbuję skorzystać z pamięci programu do zapisania i odczytów tekstów. Moje dotychczasowe próby kończyły się niepowodzeniem. Poniższy kod kompiluje się bez błędów ale z odczytem było już tylko źle. [syntax=c] #include <avr/io.h> #include <avr/pgmspace.h> int main (void) { static const char...
[syntax=c] DCB PortDCB; COMMTIMEOUTSCommTimeouts; HANDLE hPort; const unsigned short const_bufo=256; //maksymalna iloϾ danych odczytywana jednorazowo z portu const unsigned short const_bufn=1024; //wielkoϾ bufora nadawczego const unsigned short const_stos=65535; //wielkoϾ Stosu odbiorczego (maks 65535) const unsigned...
Zmień [syntax=arduino] const char s_cmdPowerOff[] PROGMEM = "PWRON"; const char s_cmdPowerOffDesc[] PROGMEM = "Powers on the device in the programming socket" [/syntax] na to: [syntax=arduino] const char s_cmdPowerOn[] PROGMEM = "PWRON"; const char s_cmdPowerOnDesc[] PROGMEM = "Powers on the device in the programming socket" [/syntax]
int strcmp( const char *tab1, const char *tab2 ); if (strcmp<0) { LCD_WriteText("-1"); } if (strcmp==0) { LCD_WriteText(" 0"); } if (strcmp>0) { LCD_WriteText("+1"); } ; Nie tak się tego używa. Zamień na: int wynik= strcmp(tab1,...
W tej wersji: strcmp_P (i prog_char tu nie pomoże).
A w jaki sposób zmienić lang_polish? Nazwa tablicy jest stałym wskaźnikiem do pierwszego jej elementu (o ile pamiętam z książek i studiów). Nie da się w programie zrobić tak, żeby tablica zawierała elementy znajdujące się pod innym adresem. Żeby uprościć: Sama nazwa tak, ale tu chodzi o to, co trzymasz w tej tablicy, a tam w niej musisz trzymać coś...
Jest trochę błędów... Ale jeśli chodzi o "permission denied" to możesz mieć np. ten sam plik otwarty w edytorze, albo ustawiony atrybut read only. Samo dopisanie linijki do pliku jest dużo prostsze: void dopiszLinijke(const char* nazwa, const char* linia) { FILE* plik = fopen(nazwa, "at"); /* otwórz w trybie dopisywania...
Nie strstr() zwraca wszystko co jest za wyszukanym ciągiem strstf() zwraca indeks w wyszukianym ciągu. Eee... Nie... http://www.cplusplus.com/reference/cstri... strstr() zwraca wskaźnik na wyszukany ciąg. Jeśli chcesz jego indeks to nic prostszego - wystarczy odjąć wynik tej funkcji (pod warunkiem że nie jest to NULL) od adresu ciągu w którym...
Proszę bardzo! [syntax=c] #include <fcntl.h> #include <errno.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <dirent.h> #include <sys/types.h> /*Function dir_elem_number return number of elements in directory "dir_path"*/ int dir_elem_number(const char *dir_path) { DIR *dp; struct dirent...
żywając PROGMEM (makro F() dla łańcuchów tekstowych) A kompiluje Ci to? Mnie w Arduino IDE działa tylko tam gdzie jest wydruk na serial i operacje w ten deseń... Faktycznie jest jeden "babol" z użyciem __FlashStringHelper * jako argumentu w konstruktorze MenuItem(), ale można to obejść. Poniżej poprawiony kod "Hello World". [syntax=c] #include <MenuBackend.h>...
Użyj rozszerzenia gcc dla AVR: __flash [syntax=c] struct record { uint16_t pos; const __flash char *txt; } ; const struct record tab[] = { {940, (const __flash char[]){"txt940"}}, {789, (const __flash char[]){"txt789"}}, {115, (const __flash char[]){"txt115"}} }; [/syntax] PS: oczywiscie sama tablica również może rezydować w pamięci flash: [syntax=c]...
Cześć. Koledzy składam wagę z projektu który znalazłem i niestety na arduino uno zabrakło miejsca . Nie jestem programistą i sam nie jestem w stanie kodu zoptymalizować. Jedynie usunąłem wybór języka i zaoszczędziłem 2% pamięci. Jest jeszcze tylko o 1% za dużo więc ośmielam się prosić o pomoc tutaj na forum. Szkic używa 32856 bajtów (101%) pamięci programu....
O, następny zjadacz RAMu: char *daysName napisz to tak: [syntax=c]__flash const char * __flash const daysName[] = { (__flash const char[]){"Wt"}, (__flash const char[]){"Sr"}, (__flash const char[]){"Cz"}, (__flash const char[]){"Pt"} //...itd }; __flash const char* RTC_GetDayName(uint8_t dayOfWeek) { return daysName[dayOfWeek%7]; } //main.c //... __flash...
(at)darex120 na pierwszym zdjęciu to ostrzeżenia a nie błędy. Dodaj "const" w plikach "hd44780.{h,cpp}": [syntax=c]//hd44789.h void sendstring(const char *text); void sendstringformat(const char *szFormat, ...); //hd44789.cpp void HD44780::sendstring(const char *text) {...} void HD44780::sendstringformat(const char *szFormat, ...) {...}[/syntax] Skoro...
A dlaczego nie skorzystać z dobrodziejstw Named Address Spaces? [syntax=c]const char T1[] PROGMEM = {"DS1307"}; const char T2[] PROGMEM = {"TESTER"}; const char * menu[2] PROGMEM = {T1, T2};[/syntax] To można od razu uprościć do [syntax=c] const char __flash * const __ flash menu[] = { (const char __flash []){"DS1307"}, (const char __flash []){"TESTER"}...
Wnioski są proste: wszystko, co jest zadeklarowane na poziomie zewnętrznym z atrybutem const i wszystko, co jest zadeklarowane wewnątrz procedur z atrybutami static const ląduje tylko w pamięci nieulotnej (o ile ktoś nie zaszalał ze skryptem konsolidatora). Oczywiście należy przy okazji mieć świadomość tego, jak należy użyć const w C deklarując stałą...
Bezpieczniej i lepiej wg mnie w takich sytuacjach zamiast: [syntax=c] static char *hello = "Witaj Swiecie!"; static char *msg = "PUTCHAR Napis: ";[/syntax] używać: [syntax=c] static const char hello[] = "Witaj Swiecie!"; static const char msg[] = "PUTCHAR Napis: ";[/syntax] 1. I tak nie manipulujesz potem tymi wskaźnikami na string więc po co one są?...
Zrozumiałem to, nie wiedziałem, że zmienne mogą być wyższe niż pętla i konfiguracja i zrobiłem je podobnie do twojego przykładu #include <ArduinoHttpServer.h> const char *ssidglobal; const char *passglobal; .. in class .. ssidglobal = set->inner.sta_ssid; passglobal = set->inner.sta_pass; ... A teraz działa w pętli, jak chcę. ... status...
Zobacz to: https://www.elektroda.pl/rtvforum/viewto... - przykład użycia PetitFAT na Atmega32. Może trzeba podmienić "const prog_char" na "const char PROGMEM", u mnie po tym się kompiluje, nie sprawdzałem jak działa. Tak na co dzień korzystam z Arduino, kupuje się moduły, jakoś tam łączy, wgrywa przykład i działa od strzału.
Statyczny adres IP nie jest obecnie zaimplementowany. https://github.com/openshwprojects/OpenB... Ta funkcja wymaga aktualizacji: Dodano po 5 (at)advian1 Jutro mogę spróbować dodać polecenie oszczędzania energii
Takie coś się kompiluje, ale pisałem z głowy, więc trochę chyba te typy trzeba poprawić: bool exists in the current C - C99, but not in C89/90. Teraz można to uruchomić i testować i poprawiać
Cześć Mam kłopot z odczytem stringów z pamięci Flash a następnie zapisanie ich na kartę SD. Mój kod wygląda następująco: [syntax=c] #include "gpx.h" #include <avr/pgmspace.h> const char gpx_1[] PROGMEM = "ala\n"; const char gpx_2[] PROGMEM = "ma\n"; const char gpx_3[] PROGMEM = "kota\n"; const char gpx_4[] PROGMEM = "i"; const char gpx_5[] PROGMEM...
Oto przykładowe menu do nauki i analizy architektury programu. Musisz jeszcze przemyśleć typy danych, które będziesz wprowadzał (ujemne, z kropką dziesiętną, itp.). { "version": 1, "author": "Uri Shaked", "editor": "wokwi", "parts":
Może napisze jaśniej: [syntax=c]void str_zamien( char* tekst, char* stary_wzorzec, char* nowy_wzorzec);[/syntax] Taki nagłówek funkcji umożliwia jedynie napisanie funkcji, która zakłada że nowy tekst zmieści się w aktualnym miejscu. Nie oznacza to, że musi być krótszy - tylko że tablica tekst jest dostatecznie długa. Niestety funkcja taka nawet nie...
[syntax=c]#include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> // Zmienne konfiguracyjne const char* ssid = "nazwa"; const char* password = "haslo"; // Konfiguracje dla pierwszego Sonoffa const char* sonoff1IP = "192.168.5.31"; // Adres IP pierwszego Sonoffa const int sonoff1Channel = 0; // Numer kanału pierwszego Sonoffa const int sonoff1LedPin...
Dziękuje za konkretną i zrozumiałą odpowiedź. Tylko jeśli zrobię to tak : byte const LGc[8] PROGMEM = { B00111, B01111, B11111, B11111, B11111, B11111, B11111, B11111 }; to w jaki sposób to wyświetlić i przenieść ? // Read a byte of character data OneByte = pgm_read_byte(&Seg7_segtbl[i... mało mi to mówi, jakaś...
EDIT: post nie do końca aktualny, bo gaskoin zdążył go poprawić gdy ja pisałem swój (; Ja tak lekko poza tematem... char* COMMAND_ERROR = "ERROR\r\n"; char* COMMAND_OK = "OK\r\n" "Const correctness" mówi, że wskaźniki powinny być co najmniej typu "const char *" (w zasadzie przedstawione definicje są "deprecated" w C++, w C niestety działają), a najlepiej...
Ale podczas komplikacji dostaje komunikat że: Jakiego typu są zmienne procent oraz sliderValue ? [syntax=c]String sliderValue = "0";[/syntax] źródło: https://raw.githubusercontent.com/RuiSan... W moim kodzie dodałem zmienną: [syntax=c] // Import required libraries #include <ESP8266WiFi.h>...
Stworzyłem prostą apke w mit app inventer. Super. To teraz pokaż jeszcze ten prosty kod dla ESP, bo same deklaracje zmiennych, to trochę za mało dla kryształowej kuli ;) Ogólnie to ogarnąłem, ale problem w tym, że nie wiem jak to zrobiłem, tzn. wiem, ale co to zmieniło, że działa to już nie wiem :D Ten kod działa tzn. łączy się z publicznym brokerem...
Napisz jak wygląda działająca konfiguracja ręczna. Czemu nie poszukasz - jak pisałem - w dokumentacji funkcji ETH.config jaki dokładnie typ danych potrzebuje? Wrzuć jakie masz includy na początku pliku. Zajrzyj tu: https://github.com/espressif/arduino-esp... są tam funkcje IPAddress(const uint8_t *address); i bool...
Kolega pisze w C i nie umie "na kolanie" takiego programu napisać? Może: #include <stdio.h> const char* naglowek = "const char tablica_hex[] = {"; const char* stopka = "};"; void wypisz_liczbe(const char* liczba) { printf("\t0x%s,\n", liczba); } int main(void) {...
Raczej: [syntax=cpp]const char* tablica = "costam";[/syntax]W C++ string literals ("costam") są typu const char[n], a próba ich modyfikacji (np przez wskaźnik do nich) wykopie nas do świata niezdefiniowanego zachowania, nie mówiąc już o tym, że na nowszych kompilatorach nareszcie dostaje się przynajmniej ostrzeżenie za taki kod, więc... Po prostu dodaj...
(at)p.kaczmarek2 - Muszę zmienić zmienną 'energyCounterSampleInterval' z domyślnych 10W na wyższą wartość. Czy możesz mi podać poprawną składnię, aby to zrobić w poleceniach startowych? Czy pytasz, jak dodać polecenie modyfikujące zmienną typu float w kodzie C? Oto przykład: [syntax=c] static commandResult_t CMD_Sample(const void* context, const char*...
Witam mam problem z: int cmp(string pol2, string pol3) { cout<<endl<<pol2<<endl... plik1=fopen(pol2); if(plik.good()==true) { //tu operacje na pliku }else std::cout<<"Dostep do pliku zostal zabroniony!"<<std::en... plik2=fopen(pol3);...
Kod na ESP [syntax=c]#include <Wire.h> #include <LiquidCrystal_I2C.h> const int hallSensorPin = 4; // GPIO4 (D2 na ESP8266) const unsigned long sampleTime = 1000; const int maxRPM = 1260; int rpmMaximum = 0; LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { lcd.begin(); pinMode(hallSensorPin, INPUT_PULLUP); Serial.begin(115200); lcd.backlight();...
ma total_increasing a nie measurement Super, czyli problem rozwiązany, tak? Może w przyszłości pomogłoby dodanie dziennika, w którym jest różnica bool CheckForKeyVal(cJSON *tmp, const char *key, const char *value) { ... if (!strcmp(ret, value)) { return true; } else { printf("CheckForKeyVar error '%s'<>'%s'",ret,...
Masz gotowca: [syntax=c] //--------------------------------------... void InterpretujCmd( char znak ) { char const StrErrVal[] = "(at)Ev\r\n"; char const StrErrUnkown[] = "(at)Eu\r\n"; #define MAX_LEN_CMD 50 char static p = 0, cmd[MAX_LEN_CMD]; int cnt; char static buffer_str[100]; u32 baud; cmd[p] = znak; if ( p < MAX_LEN_CMD...
_lazor_ Jesteś wielki! Dziękuję za nakierowanie, zmiany były potrzebne zarówno w zapowiedzi jak i w deklaracji struktury. Do struktury trzeba było dodać const, by wskaźniki kierowały na FLASH, oraz zrobić pełne zapowiedzi z modyfikatorem extern. Czyli kod , który został poprawnie skompilowany brzmi: [syntax=c] /* * test.cpp * * Created: 12.11.2019 12:11:26...
Deklaracja jest jak najbardziej poprawna, można jednak dodać deklarację const: const char *titles[] = {... O sekcjach można pisać doktoraty, ich ilość i zawartość może się różnić w zależności od kompilatora i środowiska uruchomieniowego. Napisy prawie zawsze są umieszczane w sekcji kodu lub stałych. Tablica powinna być w tej samej sekcji,...
1. Dlaczego po prostu nie napiszesz: [syntax=cpp]char z[] = {60, 60, 3, 60, static_cast<char>(value), 0};[/syntax] 2. Część implementacji interpretuje bajt 0 jako \0 czyli koniec stringa. Prawdopodobnie tak jest w twoim przypadku, gdyż port->write nie przyjmuje długości tablicy którą chcesz wysłać. Napisz co to jest "port", z jakiej biblioteki...
Chciałem wykonać licznik mrugnięć diody umieszczonej na liczniku energii elektrycznej przy użyciu esp8266 i czujnika światła LM393. Napisałem program który zlicza mrugnięcia i co jakiś czas wysyła dane do lokalnego serwera w celu ich zapisu w bazie danych (sql). Narazie mam tylko taka możliwość zapisu danych, czyli Apache i MySql. Niestety wysyłanie...
W nawiązaniu do porad kolegi tmf proponowałbym coś w tym stylu (być może strach przed kwalifikatorem __flash wynika z braku przykładów kodu :?: : [syntax=c] // przykład jak używać kwalifikatora __flash do umieszczania // danych w pamięci programu i jak się do nich odwoływać // kod gotowy do odpalenia w symulatorze Atmel Studio 6 // można zaobserwować...
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...
Występuje wyjątek bo nastepuje dostęp RW do pamięci flash ktora jest tylko do odczytu a wszystkie stałe umieszczane są bezpośrednio we flash. Najprościej do funkcji dodać jeszcze jeden argument ze wskaźnikiem na bufor wyjściowy. [syntax=c]char *STRING_DeleteStr(char * dst, const char *string, const char *del, u8 mode)[/syntax]
#include <ESP8266WiFi.h> const char* ssid = ",,,,,,,"; // const char* password = "............................."; // void setup() { Serial.begin(115200); // Kod do łączenia z WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // Po połączeniu z WiFi if (WiFi.status() == WL_CONNECTED) { Serial.print("Adres...
Może sprawdź takie rozwiązanie: [syntax=c]#include <iostream> #include <cstring> #include <cctype> using namespace std; char getChar(const char *msg,const char *good) { while(true) { cout<<msg; char sign; cin>>sign; sign=toupper(sign); if(strchr(good,sign)) return sign; cout<<"Podales nieodpowiedni znak, musi pochodzic...
tmf- jestem ciekawy co znajdziesz. Ja szukałem i po za dokumentem takim jak ten (i analogiczne chyba dla AVR DA czy megaAVR seri 0): https://www.microchip.com/content/dam/mc... to niewiele znalazłem i z tego niewiele wynika. Ten manual jest...
Witam, Mam problem z przerwaniem na ESP8266. Chodzi o zrobienie układu podłączonego do WIFI oraz możliwie jak najszybciej (po naciśnięciu przycisku) wysyłającego komendę do serwera mqtt. Chcę, aby po naciśnięciu przycisku wykonał się kawałek kodu jeden raz. Tymczasem wykonuje się on kilka razy. Czy wystarczy, jeśli użyje INPUT_PULLUP oraz kondensator...
Witam, Męczę się z kawałkiem kodu, który wbrew (mojej) logice, działa nie tak jak powinien. Chcę wyświetlić element tablicy stringów z pamięci PGMEM, a w niektórych wypadkach otrzymuję śmieci. 05, Piątek 05, ŔGŔFŔEŔDŔCŔBŔAŔ(at)Ŕ?Ŕ>Ŕ=Ŕ<Ŕ;Ŕ:... 05, ŔGŔFŔEŔDŔCŔBŔAŔ(at)Ŕ?Ŕ>Ŕ=Ŕ<Ŕ;Ŕ:... Zmienne idx i d.WeekDay zawierają tą samą wartość,...
sprobuj tak: #include <avr/pgmspace.h> // dane : const char tekst1[] PROGMEM = "tekst"; const char tekst2[] PROGMEM = "Czolem"; const char tekst3[] PROGMEM = "To jest dlugi tekst"; const char tekst4[] PROGMEM = "No i co teraz ?"; Ten kod spowoduje umieszczenie lancuchow...
Witam, mam pytanko, bo już mnie czasem szlaczek trafia, - jak czytać tą dokumentację GCC załącząoną w HTML gdy instaluje się AVRGCC ??? albo może z jakiego innego źródła można mieć na szybko pod ręką normalne, ludzkie opisy - podstawowych bibliotek i standardowych poleceń w GCC dla AVRków oczywiście??? chodzi mi o to, że np teraz muszę pobawić się trochę...
Używam IAR-a i zdarzyło mi się umieszczać stałe we flashu. Używa się do tego słów __flash lub __farflash. To pierwsze słowo umieszcza stałą w obszarze pierwszych 64kB flash-a (adres <= 0xFFFF), to drugie dalej (adres > 0xFFFF). Różnica jest taka, że dostęp do zmiennej __flash jest nieco szybszy niż __farflash. Aha, w mojej wersji IAR-a (2.28A)...
Na początek dodaj słowo kluczowe const do definicji tablicy z fontami: [syntax=c] const unsigned char fontyInt[] .... [/syntax] Jam masz jakiś normalny kompilator to powinien ta tablicę umieścić w pamięci programu, której masz zapewne więcej.
Witam! Błędy są w instrukcjach if . 1) Zamiast: [syntax=c] if (imie[strlen(imie)] == "a") y = 2; else y = 1;[/syntax] powinno być: [syntax=c] if (imie[strlen(imie) - 1] == 'a') y = 2: else y = 1;[/syntax] Jeśli chcesz testować ostatnią literę tekstu, to ostatnią pozycją znakową ciągu jest: [syntax=c]imie[strlen(ciag) - 1][/syntax] ponieważ kolejne znaki...
https://obrazki.elektroda.pl/7238862200_... Niedawno w dziale DIY pojawił się Hardware Hardware jest tak banalne, że nie odważyłem się zaprezentować niniejszego artykułu jako DIY :). Od pewnego czasu wykorzystuję SONOFFy jako bazę projektów opartych o ESP8266. Sonoff zapewnia mi ESP, zasilanie i obudowę. Jedyne co mi pozostało to dodanie...
Witam, zajrzałem do tej biblioteki do pliku "src/Graphics/Graphics.h". Funkcja print(const char c) nie uwzględnia drukowania nowej linii, tak jak to robi print(const char *str). Twój przykład drukuje wszystkie znaki z odebranego tekstu w jednym miejscu (vga.setCursor) jeden na drugim, a na samym końcu drukuje \n, bez przeniesienia do nowej linii. Pozdrawiam....
const char array Dodano po 51 'const' spowoduje moim zdaniem umieszczenie tablicy we flashu.
Dodano po 3 Witam ponownie Program sie uruchomil ale w monitorze portu pokazuje caly czas ,ze uklad podlaczyl sie do Wifi i pozniej caly czas czekaj , czekaj , czekaj itd. Nie jestem pewien ale czy czasem nie nalezy dopisac dantych sieci Wifi w paru innych miejscach ?
Mam pytanie odnośnie warninga który wyrzuca mi kompilator... Dla takiego kodu wyrzuca: sscanf(liczba,"%d",&przerw... Warning:passing argument 1 of 'sscanf' from incompatible pointer type W opisie tej funkcji jest: int sscanf ( const char * str, const char * format, ...); Problem udało mi się rozwiązać przez rzutowanie na: (char...
Witam, mam taki fajny temat projektu, może komuś przyda się to co już napisałem a może ktoś znajdzie tam jakieś błędy lub zechce dopisać dzielenie. Założenia są takie: *liczba jest przechowywana w klasie jako tablica bajtów, po jednym bajcie na pozycję *klasa zawiera podstawowy interfejs do operacji na liczbie *działania są realizowane przez zewnętrzne...
Pierwsze co zrobiłem podłączyłem tel do echosondy I użyłem apki network scaner znalazłem port 50007 tcp Napisałem 2 kody proste 1 kod stacji z klientem #include <WiFi.h> const char* ssid = "Deeper PRO+ C261"; const char* password = "12345678"; const char* host = "192.168.10.1"; const uint16_t port = 50007; WiFiClient client; void setup() { Serial.begin(115200);...
Coś musimy pomijać istotnego skoro to działa: - u (at)DeDaMrAz na BK7231N - Ty też masz BK7231N więc dziwne... - u mnie na symulatorze - u mnie w kodzie w teście jednostkowym, patrz tutaj: https://github.com/openshwprojects/OpenB... Ogólnie w testach...
Odświeżam. W linku projekt w programie Kail - [url=http://www.sendspace.pl/file/5e252c... Wersja GNUARM - [url=http://www.gnuarm.com/bu-2.17_gcc-4... Poniżej przedstawiam co zawiera biblioteka stdlib w tej wersji GNUARM [syntax=c]/* * stdlib.h * * Definitions for common types, variables, and functions....
Dodaję system autotestu do budowanego urządzenia. https://github.com/openshwprojects/OpenB... Użycie: 1. włącz ENABLE_TEST_COMMANDS w obk_config.h 2. dodaj komendę do cmd_test.c https://obrazki.elektroda.pl/3683977300_... 4. wykonaj kompilację 5. w build run: backlog startDriver...
Nie tylko tutaj jest dziwne: const uart_puts_P char * const uart_puts_P To też nie ma sensu: pgm_read_byte = char; Wygląda jakby się coś pomieszało w kodzie i powstawiało przypadkowo.
Dlaczego upierasz się , by wepchać wskaźniki do pamięci programu :?: Mówisz kompilatorowi - umieść wskaźnik do pamięci programu , w pamięci programu ... const prog_char* info[] PROGMEM = ... ... , a powinieneś powiedzieć - umieść wskaźnik do pamięci programu , w pamięci data(RAM) const char* info[] = { PM_UST_ZEG, PM_UST_CZAS, PM_UST_DATE};...
Witam, napisałem pewien program: main.cpp #include <iostream> #include "text.h" using namespace std; int main() { Text A("Ala"); Text B("Ola"); Text C; C=A+B; cout << C.pobierz() << endl; return 0; } text.cpp: #include <iostream> #include "text.h"...
Oj chyba kolega część książki mówiącą o tablicach przekartkował. ;) [syntax=c]char we_love[] = "cookies!"; // kompilator sam obliczy rozmiar tablicy i skopiuje "cookies!" do niej. char highway_to[4] = "Hel"; // tutaj również tablica będzie kopią "Hel" const char* swiety = "Mikołaj"; // swiety to wskaźnik na const char, zawiera adres literału "Mikołaj",...
string_compare() działa prawidłowo. Wrzuć i przetestuj poniższy kod w CManiaku online: http://mikrokontrolery.blogspot.com/p/cm... [syntax=c]#include <stdio.h> unsigned char string_compare (const char search[], const char find[]) { unsigned char i; for (i=0; (search[i] == find[i]) && search[i]; i++); if...
Nigdzie nie ma w kodzie const char * const char * screen_array nie rób ze mnie wariata.
Cześć. To moje pierwsze podejście do Arduino IDE. Znalazłem w necie taki kod Plik con_wifi.ino #include "MyWiFiLib.h" void setup() { Serial.begin(115200); delay(1000); MyWiFiLib wifiLib; const char* ssid = "wifi"; // Zdefiniuj swoją nazwę sieci WiFi const char* password = "abc123abc123"; //...
(at)tarwirdur, nie badałem jeszcze problemu z nagrzewaniem się LN882H i nie wiem, czy mój jest gorący, czy nie, z doświadczenia wiem, że musisz włączyć PowerSave 1, aby zmniejszyć ogrzewanie. Mamy zaimplementowany PowerSave na różnych platformach, zobacz nasz poradnik: [youtube]https://www.youtube.com/watch?v... W skrócie jest to...
W C mozna zmienic nazwe pliku za pomoca funkcji rename. Zadeklarowana jest w stdio.h i ma postac: int rename(const char *oldname, const char *newname); Jesli zwroci wartosc niezerowa to zmiana nazwy nie powiodla sie (np. plik jest tylko do odczytu albo jest zajety przez inny proces).
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)...
Witajcie, mam na zadanie napisać program, który korzysta z polimorfizmu. Ogólnie kod powstał, po kompilacji na moim PC nie znaleziono żadnych błędów (Code:blocks, Windows8Pro). Kiedy jednak kompiluję pod Linuxem, wyświetla mi się błąd segmentation fault. Sprawa jest o tyle dziwna, że problem pojawia się tylko przy próbie wyświetlenia danych "handlarza"....
To co jest napisane pobiera datę ,czas i wyświetla w terminalu jeśli to działa to wypadało by zapisać to do zegara DS1307 do wyboru trzy funkcje : void setDateTime(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second); void setDateTime(uint32_t t); void setDateTime(const char* date, const char* time); Wcześniej trzeba...
Korzystając z symulacji typu Transient otrzymam wykres przebiegu prądu anodowego (wykres w załączniku), a zmieniając oś x (Time) na oś napięcia na anodzie V(X1:A) W zasadzie w ten sposób wykonuje się to w laboratorium, chociaż prąd bramki jest wtedy zmienny. Prąd anodowy wyznaczany jest na podstawie spadku napięcia na rezystorze. Próbowałem w LTSpice...
const chara chara const chara const chara konwersja
renault megane bezpiecznik wycieraczka cewka miflex formatowanie niestandardowe excel
Oznaczenia UART na Arduino GIGA: Serial1, Serial2, Serial3, Serial4 Brzęczenie i błąd P0130 w BMW X3 E83 2.0i 2006