[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
Witam!!! Potrzebuje skonwertować CStringa do const char w VC++ 2008. Pisząc programy w poprzednich wersjach visuala kopiowałem CStringa do chara funkcją strcpy() i był gnot:-) niestety w VC++ 2008 to nie działa i po 2 godzinach szukania i kombinowania nie bardzo mam pomysł jak to zrobić... Podejrzewam że rozwiązanie nie jest jakieś trudne więc proszę...
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...
[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...
Robiłem coś podobnego :) Przerób sobie co do sortowania po długości słowa to albo licz znaki w elemencie tablicy do napotkania \0 lub sizeof() i podziel przez rozmiar chara to otrzymasz ilość znaków w słowie z tablicy a później quick sortem i gotowe, dynamiczna alokacja pamięci jest czyli zależnie ile losuje liczb tyle rezerwuje się miejsca na tablicę...
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...
chara jest już zadeklarowane jako uint8_t, więc nie ma potrzeby rzutowania. Zbędnego rzutowania należy unikać, bo utrudnia to wykrywanie błędow w programie. Ja mam troche inne zdanie. We wszelkich operacjach arytmetycznych powinno sie uzywac konwersji typow nawet jezeli sa nadmiarowe. Dzieki temu mozemy czasami uniknac pomylek. Odsylam do C Codic Standard....
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...
url = "https://cex.io/api/ticker/GHS/BTC" "param" jest w tym wypadku pusty. Mam jeszcze funkcje z urlami, które wykorzystują param, ale na razie chcę przetestować bez. A komentowanie nic nie da, bo program nie wywala błędu, tylko parametr otrzymany ze strony jest pusty. Błąd znam z "oglądania" parametru postit podczas debugowania. EDIT: Takie są kody...
Dzięki teraz wszystko gra:)))) Niedługo bedę potrzebował przerobic obsługe kodu CRC8 tzn. mam w delphi ale chcialbym przerobić na visual basic. Bo ta płytka w ten sposób sprawdza sobie kontrole transmisji. Bez tego bym musiał z czytac kody CRC8 wszystkich możliwch kombinacji ustawien przekaźników w monitorze portów. Jak wszystko zadziala to umiesze...
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]...
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 }...
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...
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...
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...
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...
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...
Nie używam Keila ale coś takiego powinno wystarczyć [syntax=c]const unsigned char tablica[] = {dane}; const unsigned char *pointer pointer = tablica;[/syntax]
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...
[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);...
Charakterystyka wyjściowa służy do ustalenia punktu pracy wzmacniacza( jest w 1 ćwiartce) A gdzie tam, wcale nie jest potrzebna do wyznaczenia punktu pracy. Iwy(Uwy) dla Iwe=const.Tylko nie wiem jak się za to zabrać I w sumie, to nigdy nie widziałem charakterystyki wyjściowej dla WE. I jak tak patrze na tą twoją definicje to będzie ciekawie wyglądała....
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]
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...
hmm. z spook_config.h tego: #ifndef __SPOOK_CONFGIG_H__ #define __SPOOK_CONFGIG_H__ //#include <board_config.h> #define FRAME_HEAP 20 #define SPOOK_MAX_FRAME_SIZE 0/*352*288*3*/ #define SPOOK_PORT 7070 #define JPEG_ENCODER_NAME "jpeg_dvp" #define JPEG_ENCODER2_NAME "jpeg_usb" #define FILE_JPEG_ENCODER_NAME "jpeg_file" #define JPEG_FRAMEINC 1 #define...
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,...
ż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>...
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...
const char(* const AT_OK) Musisz naprawdę lubić utrudniać sobie życie [; const char napis[] = "..."; albo const char * const napis = "..."; 4\/3!!
Twoja inicjalizacja Uarta wygląda ubogo. Spróbuj z taką: void UART_init(void) { // ustaw prędkość transmisji UBRRH = (unsigned char)(UART_CONST >> 8); UBRRL = (unsigned char)(UART_CONST & 0xFF); // załącz odbiornik i nadajnik UCSRB = _BV(RXEN)|_BV(TXEN)|_BV&... // ustalenie...
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...
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...
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ą?...
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ś...
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...
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]
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ć
Naprawdę chciałbym mieć ten sterownik w głównej wersji, proszę pomóż mi go scalić, gdy będzie gotowy. Obecnie robię porządki w OTA - przenoszę rzeczy specyficzne dla platformy do HAL. Mój pomysł na sygnalizację błędów jest nieco inny - myślałem, że może powinniśmy mieć jakiś rodzaj "bufora błędów", coś z API jak: [syntax=c] void Error_Log(const char...
W tej wersji: strcmp_P (i prog_char tu nie pomoże).
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...
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]...
[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...
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...
(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...
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...
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...
const chara chara const chara const chara konwersja
ricoh reset bębna xerox resetować przewód miedź ocynkowana
zresetować pralkę amica ekspres delonghi
Pioneer XR-P270C – reset fabryczny, microprocessor reset, kasowanie ustawień Śruby do uchwytu drzwi piekarnika Whirlpool AKZ6230NB 858562301722 – specyfikacja i zamienniki