-
Thread
RS485 empfang und senden
TXC); // clear txc flag PORT_UART_OUT &= ~( 1 << PIN_UART_OUT ); } uint8_t c; uint8_t c1; //mainloop: for (;;) { if (uart_str_complete == 1) { uart_str_complete = 0; c = uart_string[0]; //Hole Daten vom UART ab if (c==0xA4) { c1=uart_string[1]; setTransmitMode(); //Sende-Pin auf HIGH schalten uart_puts("TEST OK" ); setReceiveMode(); /
-
Thread
In welcher Bibliothek(R8C) steck itoa Gesperrt
Hallo Ich programmiere in C den R8C. Ich müsste einen Longint ein einen Hex umwandeln. Dazu müsste man doch in C den Befehl "itoa" verwenden? Kann mir einer sagen in welcher Bibliothek der steckt? Und wo man dies nachlesen
http://www.goblack.de/desy/sc12chip/c/bibliothek/itoa.html
-
Thread
Text in 2D Arrays, stm32f4xx
Strings aus? Ich hab da einen Knopf in der Leitung. [c] for(x = 0;x <= 15; x++) { LCD_wr_Data(setup.txt_run_RunOpen[0][x]); } [/c] [c] void LCD_wr_Data(uint8_t data) { LCD_wr(true, data
im Text.h [c] typedef struct { char startup_Text_line1[STRING_LENGTH]; char operation_Text_line1[STRING_LENGTH]; char operation_Text_line2[STRING_LENGTH
-
Thread
Usart (XMega) gesendeten String mit empfagenem String vergleichen
*s) //zum Senden von Strings { while (*s) { USARTE0.DATA = *s ; while(!(USARTE0.STATUS & 0x40)); s++; _delay_ms(500); } } ISR(USARTE0_RXC_vect)//Empfangen mit Interrupt { int c = 0; c = USARTE0
= 0; /* 1= String vollständig */ ... ISR(USARTE0_RXC_vect)//Empfangen mit Interrupt { int c = 0; c = USARTE0.DATA; if (c=='\n') { c = 0x00; rxvalid = 1; rxbuffer[rxpos] = c;
-
Thread
String in äquivalente Nummer wandeln
nur für 3 Zeichen. Windows macht das mit Atoms, da wird eine Tabelle aller im System benutzen Strings aufgebaut und jedes bekommt eine Nummer. Man muss jeden String in diesem String-Pool eintragen und bekommt die 16 bit Nummer, bei demselben String dieselbe Nummer, aber daszu braucht man eine Zentrale die die Strings verwaltet, und löschen kann man die Strings nicht mehr weil keine Nummer doppelt vergeben werden darf (bis zum nächsten Reboot), es sei denn, man zählt mit wie viele die Strings verwendeun und informiert
-
Thread
string belegen
hallo, kann den unteren test-string nicht ausgeben auf dem lcd-display. oder ist der string für winavr-c nicht richtig? char test[8]; test[]='pebi'; mfg karlheinz
> test[]='pebi'; Was soll'n das sein? In C kann man keine Arrays als ganzes zuweisen. Genau das versuchst Du aber hier. strcpy( test, "pebi" );
-
Thread
Atmega 328p USART
#endif void uartSetup(uint16_t ubbrValue); void sendChar(unsigned char zeichen); void sendString(const char* charOfString); void sendString_p(const char* charOfString); void sendString_e(const char* charOfString); #endif /* uart_h */[/c] und die uart.c [c]// // uart.c // // Created
sendString_p(const char* charOfString){ //send string from flash register char c; /* while *charOfString != '\0 */ while ( (c = pgm_read_byte(charOfString++)) ) { sendChar(c);
-
Thread
Zeichenkette erstellen
[C] uart_puts("\x1B[2J\x1B[H"): [/c] Escape Sequenzen in Strings sollten sich eigentlich in jedem C-Lehrbuch finden. Wenn nicht: schmeiss es weg und kauf dir was ordentliches
nimmt einfach x und y als Text und fügt das ein, es ensteht also [C] "\33[x;yH" [/C] und daß dein Terminal mit diesem String nix anfangen kann, ist klar.
-
Thread
Array vom PROGMEM aufs Display
Adresse NULL. Das willst du sicher nicht. >lcd_string(buffer); Eher so. [c] const char mainmenu[] [8] PROGMEM = {"Menue 1","Menue 2","Menue 3"}; char buffer[8]; strcpy_P (buf, mainmenu[i], 8); lcd_string(buffer); [/c]
wie wär's mit PSTR ? [c] #include <avr/pgmspace.h> strcpy_P (buffer, PSTR("TestString")) [/c]
-
Thread
seriell char aus ringpuffer als zeichenkette speichern
>der ist in dewr uart.c enthalten. Tja, dann wollen wir das mal glauben. >mit welcher routine könnte ich das machen? mit einer selbstgeschriebenen... [c] char myString[5]; myString[4] = 0; myString[0] = ser_getc(); myString[1] = ser_getc(); myString[2] = ser_getc(); myString[3] = ser_getc(); [/c] und schon hast du einen String mit vier Zeichen. Oliver
-
Thread
Atmega32 ADC
i=0; i<NumberofDigits; i++) Send_A_String(" "); Send_A_StringToMrLCDwithLocation(x, y, StringToDisplay); } [/C] solltest du nochmal nachdenken. Die ist ziemlicher Quatsch. Vor allen Dingen erreichst du nicht das was du willst: eine
); Send_A_StringToMrLCDwithLocation(x, y, StringToDisplay); } [/C]
-
Thread
call by reference will nicht , Atmega163, C
number > 9)) { i = 2; } char tmp[i]; itoa(number, tmp, 10); put_string_lcd(a, b, tmp); } [/c] Um einen String "23" zu bilden, benötigst du ein Array der Länge 3(!), und nicht 2. Denn der String besteht aus 3 Zeichen. '2', '3' und dem abschliessenden '\0' Zeichen
]; sprintf( buff, "%02d:%02d:%02d", std, min, sec ); put_string_lcd( TIMEPOSITION_Z, TIMEPOSITION_S, buff ); } [/c] aber so eine Zahlenausgabe an sich ist ja auch nützlich. Merke: du brauchst an solchen Stellen nicht kleckern. Ob du temporär ein Array der
-
Thread
mit Strings arbeiten
"unsigned int c" sollte, wie schon oben beschrieben "unsigned char c" sein. "strcat (buffer, (unsigned char) c)" ist auch falsch. strcat() verkettet strings und keine einzelnen Zeichen. Den ganzen strcpy() und strcat() sollte man weglassen. Hier verarbeitest Du ja nirgends wirklich Strings. Also: strcpy (buffer,""); -> weglassen und strcat (buffer, (unsigned char) c); -> unsigned char pos = 0; (oder int) buffer[pos] = c; pos++; buffer[pos] = '\0'; Und vor allem
-
Thread
Frage zu Pointern (Arduino)
Hallo, ich habe ein unsigned char* irdata. Das bekommt einen Pointer auf einen "string" wie "NEC 0xBE414DB2 32" zugewiesen. Diesen string teile ich auf mit [c] int i = 0; char* arg[3]; char* irString = strdup(irData); char* token = strtok(irString," "); while(token != NULL
, " "); i++; }[/c] arg[i] zeigt auf Strings innerhalb von /irString/. Solange /irString/ nicht durch free freigegeben wird (was irgendwann pasieren muss), sind auch die Zeiger von /arg/ gültig.
-
Thread
LCD zu langsam
set_cursor(5,4); sprintf(out,"%8.2fmm",(float)zVAL/stepsPerMmZ+frameZ[frame]); lcd_string(out); break; case 4: //update Frame set_cursor(13,1); sprintf(out,"G%d",frame+54); lcd_string(out); } } [/c] die lcd_string() methode looped halt über alle chars: [c] void lcd_string(char *data) { while(*data) { lcd_data(*data); data++; } } [/c] Hier hatte ich überlegt anstelle des loops alles in einen FIFO zu packen, der durch
-
Thread
Integer-Wert in ASCII-char
Ok, plausibel. Aber auch mit einem Speicherbereich sieht es so aus: Nach [c] char s2 [10]; sprintf(s2, "%i", j); [/c] ist der String leer, aber [c] char s2[10]; sprintf(s2, "Hallo"); [/c] gibt er aus.
wrote: > Ok, plausibel. Aber auch mit einem Speicherbereich sieht es so aus: > > Nach > > [c] > char s2 [10]; > sprintf(s2, "%i", j); > [/c] > > ist der String leer, aber > > [c] > char s2[10]; > sprintf(s2, "Hallo"); > [/c] > > gibt er aus. Dann musst du schon das komplette
-
Thread
Laufschrift Denkanstöße
() [c] led.matrix[start_line + line][start_col + col] = CURRENT_STATE; [/c] liest, rufst Du stattdessen Deine Funktion [c] clear_pixel (start_line + line, start_col + col); [/c] auf. Im WordClock-Source
[/C]
-
Thread
zahlen aus string ermitteln
Hallo Ich habe folgenden commando string den ich auswerten möchte: char command = "C1_3_15444_54231" Die folgenden variablen sollten die folgenden werte enthalten: char com[2] = C1 int val_1 = 3 int val_2 = 15444 int val_3 = 54321
ich glaube diese "left$" "mid$" "right$" gibts in C nicht. mfg blan
-
Thread
String mit Uart empfangen
empfangen von Integer Zahlen hinzugefügt. //Empfangen int input_int() { int zahl; char zahl_c[100]; zahl=atoi(input_string()); return zahl; } char input_string() { char string[100]; int i=0; char c; do { c=uart_getc_wait(); if (c!='\r')
> char input_string() > { > char string[100]; > int i=0; > char c; > do > { > c=uart_getc_wait(); > if (c!='\r') > { > string[i]=c; > i++; > } > } > while
-
Thread
Variablen auf Waveshare-E-Paper anzeigen lassen
Übersicht hätte, wie die Sachen dargestellt werden. Z.B. funktioniert es nicht, wenn ich eingebe: [c] paint.DrawStringAt(30, 30, wert, &Font12, COLORED);[/c] um eine Variable (wert) auf das E-Paper zu bringen. Manches kann man sich zwar aus den Beispielen zusammenreimen, aber nützlich wäre eine
von Text auf dem Display: [c] paint.DrawStringAt(8, 2, "e-Paper Demo", &Font12, COLORED); [/c] Also ist es /naheliegend/, sich mal die Deklaration der Klasse Paint anzusehen. Am Anfang habe ich auf ein paar #include-Anweisungen
-
Thread
Reset-Problem: Uart dran schuld?
gesetzt Ich steh irgendwie auf dem schlauch. ich habe nun alles auskommentiert, so dass keine string-sachen ausgeführt werden. wenn ich allerdings folgende zeile drin lass, gibt eben diese sporadischen resets. [c]strcpy(SearchCmd,"AT");[/c] Datentyp: char SearchCmd[8]; Ideen?
hier meine main(): [c] do { Diag_SendCmd(SEND_SIGNAL); WaitInMs(50); } while(1); [/c]
-
Thread
Flanken abfragen in C; MSP430 Olimex
kommt der Übersicht immer zugute, wenn man funktionierenden Code thematisch geordnet in einzelne *.c Files auslagert. Dann beschäftigt sich 1 *.c File mit 1 Thema und man wird nicht ständig abgelenkt. [C] void writeString( int Position, char* String ) { while( *String ) writeLetter( Position
woran des liegt. Glaub er nimmt einfach den nächsten Buchstaben nicht an. Hier der Teil aus dem LCD.c File [c] void writeString( int Position, char* String ) { while( *String) writeLetter( Position--, *String++ ); } [/c] Hier der Teil aus dem Main. [c] void Button1 () { konst
-
Thread
float to string
hallo, hat jemand eine code um einen float in eien string umzuwandeln. sprintf unterstützt das leider nicht. Bernd
Hallo Programmers, ich habe eine C-Funktion geschrieben, die ein Float in einem ascii String umwandelt. Bis zu 4 Stellen vor dem Komma und 3 Stellen hinter dem Komma. Kann auf mehrere oder wenigere Stellen angepasst werden, zwecks
-
Thread
ADC-Interrupt und UART keine Übertragung
[c] #include <avr/io.h> #include <util/setbaud.h> #include <avr/interrupt.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <util/delay.h> void adc_init(void) { uint16
*/ void uart_puts (char *s) { while(*s) { // so lange *s != '\0' also ungleich dem "String-Endezeichen(Terminator)" uart_putc(*s); s++; } } [/c]
-
Thread
sscanf : Wie optimiere ich den String?
END sprintf Formatstring ist "%02d%02d%02d,%02d%02d%02d,%.2f,%.2f,%u,%u,END" an, d.h. dieser String erscheint auch auf meinem Handy, wenn ich meine Fritzbox anfunke mit dem Browser. Klar kann man den String auch mühsam zerlegen mit den ganzen String Funktionen, wobei ChatGPT sehr wertvolle Hilfe
ruft dann erst sscanf damit auf. ich weiss nicht was man da stöppeln muss http.begin(serverPath.c_str()); int httpResponseCode = http.GET(); if (httpResponseCode>0) { String payload = http.getString(); holt einfach alles in einen String rein und fertig.
-
Thread
eigene__ ide
. Der makefile wird vom c#-Programm automatisch geändert: makefile_read(path); string text = makefiletext.Substring(0, mkf_src_start + 17)+" "; text += item; text += makefiletext.Substring
Ich hänge ziemlich fest: [c] public static void xMain(string[] args) { // uint SDI = ::RegisterWindowMessage("SciTEDirectorInterface"); uint SDI = RegisterWindowMessage("SciTEDirectorInterface");
-
Thread
DS18B20 Datenformat
Hi dein Problem ist nicht AVR oder DS18B20-Spezifisch sondern ein generelles C-Problem. Ich würde dir daher empfehlen, das was du tun willst, außerhlb des AVR mit einem normalen C-Compiler zu testen. In C sind Strings Null-Terminiert. Hast du also ein Array-of-Char das so
LCD-Funktion erwartet ebenfalls einen String. Ich wandle meine Floatvariable mittels dtostrf() um [c] LCD_String(3,13,dtostrf(Temperature1,3,1,buf)); [/c]
-
Thread
kleines problem mit sizeof
Muss der string im .c-file sein? Im header wenn er ist gehts nämlich. sizeof wird zur compile-Zeit ermittelt und darum muss der string dann auch bekannt sein. Ist er aber nicht, da er nicht im header steht.
muss ich zugeben, dass ich das Problem überhaupt nicht verstehe. > > Ohne das "extern" und dem string in einem header: > Wie muss das aussehen, dass es nicht funktioniert? msg.h [c]const char msg[] = " Hallo";[/c] datei_1.c [c]#include "msg.h[/c] datei_2.c [c]#include "msg.h[/c] =>
-
Thread
AVR,USART,C: String Empfangen und direkt wieder versenden
Hey, kann sich bitte Jemand meinen C-Code ansehen und mir sagen warum das nicht funktioniert ? Ich finde den Fehler einfach nicht....Im Grunde will ich nur einen String über die USART in einem Array speichern und ihn wieder zurückschicken
stopfen. Du musst schon warten, bis da jeweils wieder Platz drin ist. Außerdem: wie wird der String zum µC gesendet? Sicher, dass da eine terminierende Null mitkommt?
-
Thread
UART übergabe eines #defines
, als eine Funktion die Länge des Strings nicht am Pointer festmachen kann, sondern auf andere Hilfen angewiesen ist. Genau aus diesem Grund gibt es in C die Konvention, das alle Strings mit einem \0 Character enden. Und es gibt spezielle
[C] char USART1_get_char() { while ( !(UCSR1A & (1<<RXC1)) ) {;} return UDR1; } void USART1_get_string() { uint8_t i=0; char c; do { c = USART1_get_char();
-
Thread
Beschleunigungssensor
[C] void UART_send(uint8_t data) { while(!(UCSR0A & (1<<UDRE0))); //warten bis abgeschlossen UDR0 = data; // senden } void UART_string(const char* txt) { while( *
label ); UART_string( ": 0x" ); UART_byte( value ); UART_string( "\n" ); } void UART_dbg_int( const char* label, uint16_t value ) { UART_string( label ); UART_string( ": 0x" ); UART_int( value );
-
Thread
ITOA ohne Division/Modulo
Hallo, ist es möglich eine Zahl (egal ob uint8,16,32) in einen ASCII-String zu wandeln ohne Division oder Modulo? Hintergrund, viele uC besitzen keinen dividierer und müssen das durch Zeitaufwendige Tricksereien bereitstellen. LG
} } *s++=j+(uint8_t)zahl; // letzte Stelle immer ausgeben *s = '\0'; // string abschliessen [/pre] weder zeitaufwändig noch getrickst, nur programmieren muss man können hier in C.
-
Thread
Pointer incrementieren schlägt fehl?!
Hallo. Auf nem MEGA32 klappt es, nur auf dem Rechner nicht. Es wird nichts angezeigt. Wieso? [C] #include <stdio.h> #include <stdlib.h> #include <string.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ void ausgabe(char *str){
Für printf und andere String-Fkt. würde ich einen String auch imemr mit '\0' abschliessen. Würde mich wundern wenn genau der Source aufm µC läuft. FEHLER beim Copy&Paste ? ;-) Versuch das: [c] void ausgabe(char *str
-
Thread
Rust als Embedded-Programmiersprache Gesperrt
Vortrag gehalten? Alex G. schrieb im Beitrag #5516502: > Dafür habe ich den Heartbleed Bug in C++ nachprogrammiert Du hast den "Bug" in c programmiert und dann iostream benutzt, damit du es c++ nennen darfst. Für ein echtes c++ Beispiel hättest du zumindest std::string und/oder std::vector nutzen
Kneifzange anfassen... > Alex G. schrieb im Beitrag #5516502: >> Dafür habe ich den Heartbleed Bug in C++ nachprogrammiert > Du hast den "Bug" in c programmiert und dann iostream benutzt, damit du > es c++ nennen darfst. Für ein echtes c++ Beispiel hättest du zumindest > std::string und/oder std::
-
Thread
Arraylänge falsch?
reingeschrieben hat, von was soll der Compiler dann eine auslesbare Stringlänge complilieren? Das Problem an C ist halt die Nullterminierung. Mit einem Stringdeskriptor wäre das wieder ein ganz anderes Verhalten. Bei Strings in C bin ich generell vorsichtig, weil es ja -eigentlich- ein Kette von char ist. Und
zeigt nicht auf ein anonymes Array - sondern auf ein > compound literal Nein, er zeigt auf ein string literal, welches ein anonymes Array darstellt. Ein compound literal wäre so: [C] char* zeiger = (char[]){ 'W', 'e', 'l', 't', '\0'}; [/C] Aber auch das wäre ein anonymes Array.
-
Thread
Attiny85 dht22 oled ssd1306 i2C
[code] oled.printString() [/code] ist nicht der richtige Weg um Daten die kein String sind auszugeben. Entweder hat deine oled library Funktionen um einen Int auszugeben, oder du musst die Umwandlung selber machen.
Glaub hab den richtigen code gefunden"! String stringHum = String(DHT.humidity, DEC); String stringTemp = String(DHT.temperature, DEC); So jetzt hab ich dass problem dass ich zuwenig paltz auf dem attiny85 habe. Hab aber schon fertige projecte
-
Thread
Basic c-frage: const char - Parameterübergabe?
Strings sind in C grundsätzlich automatisch nullterminiert! "Hello World" ist nicht 11, sondern 12 Zeichen lang, weil Du den Nullterminator am Ende vergessen hast. Praktisch alle Funktionen in C, die sich
[c]Debug_MSG("Hello World\0"); //(String dann auf \0 parsen)[/c] ist unnoetig, da C den String automatisch mit '\0' abschliesst. Das duerfte die sicherste Methode sein, wenn du unbedingt nur einen Parameter
-
Thread
ADC-Wert über RS232 übermitteln
uart_putc( *String ); String++; } } [/C] und diese Funktion kannst du jetzt verwenden, wenn du einen String versenden willst [C] ... uart_init(); uart_puts( "Hallo\n" ); char s[7];
/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F
-
Thread
Seltsames Arduino Serial Read verhalten
############################################# void displaypage( int pageselector) { String line0; String line1; String line2; String line3; if(pageselector == 1) { line0 = String("NOW: ") + String(dayOfMonth)+ String("/")+ String(month) + String(
(mids(c_str,6,2)), atoi(mids(c_str,9,2)) ); RTC.setTime(); if(i2c_test_flags&(1<<I2C_RTC_1307)) RTC.startClock(); [/c]
-
Thread
AVR, progmenu array mit strings und unsigned char: will nicht so recht !
[c] const uint8_t mnem[][10] PROGMEM = { { "\x04""mvi a,?" }, { "cmpg a,?" }, { "cdis"} }; [/c] https://godbolt.org/z/1W9K3v \x leitet ein Hex-String-Literal ein, einzelne Strings können
. Das kann man dann in einem String ablegen.
-
Thread
volatile zerschiesst Speicher
dazu: [c] void xprintf(const char* string, ...) { va_list args; char c_cmd; int i_cmd; unsigned int ui_cmd; va_start( args, string ); while(*string) { if(*string == '%') { *string++; if(*string == 'c') { c_cmd = va_arg(args, char); PrintInt(c_cmd); } else if(*string == 'i') { i_cmd = va_arg(args, int); PrintInt(i_cmd);
-
Thread
Umgang mit Volatile Variablen im Code, beispiel "atoi"
==1) { uart_str_complete = 0; uart1_auswerten(); } [/c] in dieser Routine uart1_auswerten wird dann folgendes gemacht : [c] ... clear_off=atoi(part2); clear_on=atoi(part3); [/c] (die Variablen sind jetzt integer und keine Strings, so wie es
Alternative wäre, ein eigenes atoi() zu erfinden (das ein volatile Argument akzeptiert) oder den String umzukopieren, beides eher unpassend. Vielleicht kann ich Gnade erwarten, wenn ich gestehe, daß ich C gelernt habe, bevor die ISO9899 erfunden wurde?
-
Thread
PIC 18 in und aus Sleep modus mit UART Interrupt
Ich würde jetzt gerne noch den kompletten string, der über UART geschickt wird in der ISR in einem Buffer abspeichern. Die geschickten Strigs werden in der Regel mit einem carriage Return abgeschlossen. Hier ist mein bisheriger Code [c]
etwa wie folgt: [c] ... void main(void) { while(1) { if(flag == 1) // Wenn Endekennung oder Buffer voll { // verarbeite UART string irgendwie clean_buffer(); // Lösche Buffer wieder
-
Thread
Variable in String einfügen
4] = (ss); Time[5] = '\0'; // das abschliessende \0 nicht vergessen! Sonst ist das kein String! lcd_print(Time,20,30,0,Weiss,Dunkelblau); [/c] Die Funktion LCD Print übernimmt nur ganze Strings. Ich bin wirklich für jede Hilfe sehr dankbar, da ich mit meinen Kenntnissen
Ein kleines anliegen hätte ich noch bezüglich des Strings. [c] char Time[10]; sprintf(Time,"%2i:%2i:%2i",hh,mm,ss); lcd_print(Time,6,114,1,Schwarz,Gelb); [/c] Meine Zeit wird bei einer einstelligen Zeitangabe wie folgt ausgegeben: 0:12: 4
-
Thread
Ist MoJo hier um zu bleiben? Ersetzt es C,C++, Python etc?
schneller als Python und unfassbar schneller als C / C++ wäre
weitestgehend abwärtskompatibel zu C ist.
-
Thread
AVRGCC nach Keil C166
Servus, ich möchte eine Methode vom AVR (AVRGCC) auf einem C166 (Keil) anpassen. In AVRGCC: Definition: [c]void myfunction(char* PROGMEM string){}[/c] Deklaration: [c]void myfunction(char* PROGMEM);[/c] Aufrufen: [c]myfunction(PSTR("String"));[/c] Meine Anpassung in Keil: Definition: [c]void myfunction(char* string){}[/c] Deklaration: [c]void myfunction(char*);[/c] Aufrufen: [c]myfunction(*("String"));[/c] Stimmt meine Anpassung? Vielen Dank im Voraus. Senmeis
-
Thread
Datum von der RTC in einen String packen
Hi, ich hätte eine Frage zu Strings. Es ist so, dass ich einen String brauche, der so aussieht "04.06.2015". Das Datum erhalte ich von der RTC. Jedoch weiß ich nicht, wie ich ein Datum in einen String mit Punkten wandeln kann, und
Eugen Thorben schrieb im Beitrag #4153451: > Es ist so, dass ich einen String brauche, der so aussieht "04.06.2015". [c] sprintf( buffer, "%02u.%02u.%04u", (int)day, (int)month, year ); [/c]
-
Thread
Platzsparende Byte-Konstanten definition in Strings
Äh... was ist das Problem? Brauchst du sowas? [c] #define MY_CONST 0x42 #define CONST_2_STRING(a) "a" int main () { const char * teststring = "0x42 is stored as " CONST_2_STRING(a) " END"; printf("%s",teststring); return 0; }[/c]
systems - und habe einige Jahre AVR Erfahrung sammeln dürfen. Daher hoffe ich sehr auf Hilfe irgendeines C-Gurus bzw. einfach eines ehrgeizigen Geistes, der sich dieses Problems mal annimmt. In Assembler würde mir dies weniger Kopfzerbrechen bereiten, doch möchte ich die Strings gern effizient in "C" (C+
-
Thread
Digitale Stromzähler auslesen und in DB speichern
1.8.0*98(00000.0*kWh) 1-0:1.8.0*99(00000.0*kWh) 1-0:1.8.0*100(00000.4*kWh) 1-0:0.2.0*255(ver.03,EF8C,20170504) 1-0:96.90.2*255(0C69) 1-0:97.97.0*255(00000000) ! Gruß Peter
Hallo zusammen, was mache ich falsch, beim compilieren kommt immer: [code] warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] 376 | int poi=SearchOBIS("/",0); ^~~ [/code] und das an mehreren Stellen?
-
Thread
LWIP Webserver
Anders gesagt das hier produzierst: [c]ADCStatusCallback({"ain":[{"v":"4095"}, {"v":"4092"}, {"v":"1620"}, {"v":"4000"}], "aout":[{"v":"100"}, {"v":"200"}]});[/c] Das ist ein Json String in dem sich Werte für 4 Analog In und 2 Outs befinden
@Marco H das [c]return snprintf( pcInsert, iInsertLen, "Led: %s", status ? "An" : "Aus" );[/c] Funktioniert nur im ADC_Handler, nur dieser kann Strings returnen wärend der LEDS_CGI_Handler nur Dateipfade aus fsdata