-
Thread
strDelete und strcpy
zitter_ned_aso schrieb im Beitrag #6175190: > [c] > char* StringDelete(char * dst, const int von, const int Bis){ > > assert(von<=Bis && dst!=NULL); > [/c] Ich würde schon ein bisschen mehr testen, nämlich das "bis" nicht die String-Länge
Beitrag #6175114: > ich komme aus der > Pascal Welt und habe deswegen einen anderen Ansatz bei "C". > Ich suche eine Funktion wie StringDelete(char * dst, int von,int Bis) > die mir aus einem Text Array von, bis herausschneidet Pascal zählt String-Positionen ab 1, C ab 0. Der OP sollte sich
-
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
-
Thread
Funktion, welches je nach Datentype der Eingangsvariablen anders reagiert - geht sowas ?
normaler Funktionsüberladung. Aber man hat den syntaktischen Overhead von Templates. Wenn man eine C++ Lösung haben will, würde man eher das Streams Interface benutzen. Und ganz besonders würde man nicht mit char* Buffern herumhantieren. C-Strings und nackte Pointer haben in einem C++ Programm nichts
Axel S. schrieb im Beitrag #6269562: > Wenn man eine C++ Lösung haben will, würde man eher das Streams > Interface benutzen. Und ganz besonders würde man nicht mit char* Buffern > herumhantieren. C-Strings und nackte Pointer haben in einem C++ Programm
-
Thread
Serielle Schnittstelle C#
mein Signal dataEmpf schon von vornherein um die 4mal das Signal liefert. Kann es sein, dass mein µC (von dem das Signal kommt) zu schnell für mein Programm ist?
vorbereiten und ausgeben... var dt = DateTime.Now; System.Diagnostics.Debug.WriteLine(string.Format("DataReceived: {0}:{1} EventType:{3} Data:'{2}'", dt.ToLongTimeString(), dt.Millisecond, data, e.EventType)); // POST an den MainThread um die RichText Box zu befüllen! // POST
-
Thread
Arduino UNO USART Daten fehlen
kann nicht gehen, denn dein Programm auf dem µC ist nur für Half-Duplex Kommunikation ausgelegt. Half-Duplex bedeutet: Nach dem Empfang eines Strings wird er verarbeitet, das dauert. Während dieser Zeit ist dein µC nicht empfangsbereit. Erst wenn der µC die Verarbeitung beendet hat und die Antwort los geworden ist, kann wird er für den nächsten String bereit. Darauf hat Axel R. bereits hingewiesen. Eine Full-Duplex Kommunikation erfordert einen
-
Thread
Timer genaue Zeit und entprellen
Hi Christoph, >... eine "12". Wenn der String am uC ankomt dann soll die > Sekunde auf 12 gestellt werden und weiterlaufen. Wie ich einen String > mit dem uC empfange weiß ich, aber wie setze ich dann die Zeit? [c] int8_t sekunde; sekunde=atoi(string_mit_Sekundenwert); [/c] Gruß Fred
-
Thread
Int in string
Hi, Wie wnadle ich ein iteger in einen string um?? lg, Stefan
Ziffer in einen char umwandeln willst, kannst du auch einfach '0' hinzuaddieren. int i = ???; char c = i + '0'; Björn
-
Thread
DCF77 weiteres Vorgehen
der int Variable in eine Char Variable lcd_string(buffer1); // Char Variable auf dem LCD ausgeben high = 0; // high Variable zurücksetzen } } } return 0; } [/c] Dieser Code funktioniert einwandfrei
der int Variable in eine Char Variable lcd_string(buffer1); // Char Variable auf dem LCD ausgeben high = 0; // high Variable zurücksetzen low = 0; } } } return 0; } [/c]
-
Thread
C# -> text in Int umwandeln
[c] string eingabe=Console.ReadLine(); int zahl; if (int.TryParse(eingabe, out zahl)) // Versuchen eingabe in einen int32 umzuwandeln... { // ...hat geklappt Console.WriteLine("Das war Ihre
Zur Eingabe einen String nehmen löst den Fehler bestimmt. Damit Du mit sowas kein Problem hast, vergiss doch den Quatsch mit der String-Addiererei ganz und machs mit Concat: String.Concat("Text:", Convert.ToString(num
-
Thread
String versenden über TCP/IP mit Objectiv-C
Hallo Community Ich möchte über TCP/IP einen String an einen Server versenden. Plattform ist MacOS X 10.5, Programmiersprache Objectiv-C. Die Verbindung mit dem Server kann ich aufbauen, der Socket steht also. Nun weiss ich aber nicht ob mit der von
Data: %@",data); } NSString *part = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog (@"Part %p",part); [oStream write:sendData maxLength:strlen(sendData)]; NSLog(@"End"); } } [/c] Gruss Pascal
-
Thread
8bit Pointer bei großen AVR's
der GCC (WINAVR-2010) störrisch reagiert mit einer unklaren Fehlermeldung: ../Main_Flash_Test.c:12: warning: '__progmem__' attribute ignored Das passiert dann wenn man einen Flash String in einer Funktion anlegt: [c] int main (void) { const char __ATTR_PROGMEM__ MyString[] = "Das ist ein String im Flash"; ........ } [/c] .... nicht ganz einleuchtend .... da ja eigentlich const. Das bekommt man ja sonst auch. Legt man dagegen den String im globalen Scope an ist es ok .....
-
Thread
int8_t mittels uart schicken Gesperrt
[c] uint8_t c = 'a'; HAL_USART_Transmit(husart, &c, 1, timeout); [/c]
Bei char* würde ich einen C-String erwarten. Warum nicht void*
-
Thread
Frage zum Verständnis in C
} void funktion(para1, para2) { Wert = para1+para2; } [/c] ? Bei all den pointern und zuweisungen und all dem Lesen über Strings bin ich da grade echt verwirrt...
; } } [/c]
-
Thread
.gx (3D Drucker) Datei kopieren -> c#
Zeichen nicht richtig interpretiert bzw. Encoded.. Das ist mein aktueller Code (nur zum testen..) [c] public sGFormat ParseGXFormat( string sPath ) { sGFormat sFile = new sGFormat(); int iIndex = 0; string sGCode = ""; sFile.sFormat = "gx"; byte[] bFile = new byte[
;D) Verwende besser direkt nur FileStream.Read() / .ReadByte() und lies dir damit relevante* String-Sektionen z.B. jeweils in eigene byte[]-Arrays und konvertiere dir das dann z.B. via string result=Encoding.GetEncoding("ISO-8859-1").GetString(quellByteArray); jeweils in einen String. (*vermutlich
-
Thread
Wlan2Serial Modul für 5 euro
die WI07c bzw. ESP-01 Module.
sich anpassen, "EXTRA_INCDIR" verweist auf "/usr/include", da manche Quellen z.b. ein "#include <string.h>" haben, welche dann von dort kommt. Nun muss man noch die "CC", "AR" und "LD" im Makefile anpassen, fertig. Beim compilieren meckert er irgendwo das "uint32_t" redefiniert wurde in "c_types.h
-
Thread
Allgemine Frage an die Freunde von Atmel
. Ein generelles String oder Char lesen gibt es nicht. Dein Problem ist also nicht das I2C oder der MC, sondern das Protokoll, was Deine Funktionen auf dem I2C übertragen. Oder einfach nur ein C-Problem beim Aufruf dieser
Sebastian schrieb im Beitrag #4054303: > Übrigens, ist ein String der Länge 1 nicht ein char? Ein String der Länge 1 besteht aus zwei Zeichen - zumindest in C oder Pascal. Wie soll der in ein char passen?
-
Thread
c# Oracle Abfrage mit Spaltennamen
reader = cmd.ExecuteReader(); while (reader.Read()){ textBox1.Text = textBox1.Text + reader.GetString(9); } [/c] Mit reader.GetString(9); bekomme ich den Inhalt der 9 Spalte geliefert. Wie kann ich nun etwas in der Form reader.GetString("SPALTENNAME") verwenden? Das würde den Code etwas intuitiver
A. B. schrieb im Beitrag #4295272: > Mit reader.GetString(9); bekomme ich den Inhalt der 9 Spalte geliefert. > Wie kann ich nun etwas in der Form reader.GetString("SPALTENNAME") > verwenden? Das würde den Code etwas intuitiver verständlich machen (string
-
Thread
Atmega16 Speicher bald voll Program / Data Unterschied ?
Dinge in mehrere Anweisungen und Hilfsvariablen auf (der Compiler schmeisst die eh wieder raus) [C] const char* adrOfStringInFlash = pgm_read_word( &MainMenuStrArray[actualMenuPoint] ); lcd_puts_p( adrOfStringInFlash ); [/C] > > Erkennt jemand den Fehler im Quelltext vom Posting oben ?
const char* adrOfStringInFlash = MainMenu[actualMenuPoint].Text; lcd_puts_p( adrOfStringInFlash ); [/C] Da MainMenu nicht als im Flash liegend markiert ist, kann ganz normal auf das Array zugegriffen und daraus gelesen
-
Thread
LCD an T6963C und ATMega323
Na klar hab ich die Aufrufe... void statusCheck1_T6963C(void) { while((statusRead_T6963C()&0x03)!=0x03); } Du willst eine ASCII 2 schreiben? Schau mal in meinem Code unter writeString_T6963C da siehst du was du tun musst um einen ASCII string zu
; //lower bits f.l.: C~D ~Ce ~Rd ~Wr asm volatile ("nop"::); asm volatile ("nop"::); PORTD = 0b11110010; //lower bits f.l.: C~D ~Ce ~Rd ~Wr } Du setzt CE auf L, dann WR auf L und dann??? Ein
-
Thread
Datei auslesen in C#
die ganze Datei einzulesen. Die Stringmethoden sind einfach deutlich mächtiger als das Filezeug. [c] Streamreader sr = new Streamreader("a.txt"); string all = sr.ReadToEnd(); sr.Close(); [/c]
" aus "<PATH>" in "Zeile" char zuLesendesZeichen; string[] fileText = System.IO.File.ReadAllLines(<PATH>); // <PATH> = z.B. C:\test\datei.txt zuLesendesZeichen = fileText[Zeile].Substring(nTesZeichen,1); // Substring ( Startindex , Anzahl der
-
Thread
sprintf mit dynamischen Format
der Funktion sprintf zu übergeben. z.B. [c] char buffer[1024]; // buffer in dem der formatierte String hineingeschrieben werden soll sprintf(buffer, format, sdram); //format: Pointer auf den Format String; sdram: Pointer auf den SDRAM bzw
Tja, beim AVR-GCC http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html#ga4c04da4953607fa5fa4d3908fecde449 will der snprintf einen Zeiger auf einen konstanten String. Mehrere konstante Strings hinterlegen ist kein Problem.
-
Thread
Wie mit Zahlen, die in char- Variable stehen, rechnen?
\0') { if(*zeiger!='.') { z+=((*zeiger)-48)*m; m/=10; } } [/c] in z steht dann der zahlenwert des strings. LG, Björn
Ich hab jetzt mal folgendes gemacht: [c] char kmh_string[4]; double kmh; ... kmh = 15.2569; sprintf(kmh_string,"%f",kmh); lcd_string(kmh_string); [/c] Es wird fehlerfrei erstellt, aber auf dem LCD erscheint nur ein ? Was ist nun
-
Thread
Packet-Decoder, C++ richtig bedienen,
steht eine Zahl, die kann ich so testen und es funktioniert: [c] U32 test = strcmp(number_str, "0x4F"); if (test == 0) { //ss << "Ich bin hier"; letzter_paket = 1; } [/c] Das Hier funktioniert nicht: [c] template<class T> T fromString(const std::string
[c] template<class T> T fromString(const std::string& s) { std::istringstream stream (s); T t; stream >> std::hex >> t; return t; } [/c] https://en.cppreference.com/w/cpp/io
-
Thread
warning: ISO C++ forbids converting a string constant to 'char*'
\src\StatusBar4Time.cpp:5:97: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] lib\ILI_StatusBar4Time\src\StatusBar4Time.cpp:5:97: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings
"}; char cDay[7][10] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; https://www.geeksforgeeks.org/array-strings-c-3-different-ways-create/ Super wieder was gelernt.
-
Thread
Progrmmierung in C
* die C Sprachelemente if, while, do - while, for, switch - case * Funktionen, Argumentpassing, Prototypen * Arrays * Strings * Strukturen * die wichtigsten Dinge mit dem Präprozessor: #include, #define
Operationen, logische Operationen für den Umstieg nicht so wichtig (wenn dann natürlich auch in der C-Weiterbildung notwendig), die schwierigeren Themen * dynamische Allokierungen * komplexere dynamische Datenstrukturen wie Listen, Bäume, Maps, ... * dynamische Strings * Files Wenn der erste
-
Thread
Honeywell Rondostat HR20E per AVR steuern und konfigurieren
Soll Temperatur ändert oder die Regelung den Motor nachstellt, liefert das Modul z.B. folgenden String zurück: D: 27.1.2008 U: 10:36 V: 0 I: 1985 S: 1550 Dabei ist D: Datum DD.MM.YYYY U: Uhrzeit HH:MM V: Ventilposition I: Ist Temperatur in °C x100 S: Soll Temperatur °C x100 Man sieht
Du einen Parser schreiben, der reinkommende Befehle analysiert. void Parser_ReceiverChar( char c) { static string cmd_str; ...... ...... if (bCMDComplete) { // Befehl vollständig eingelesen ParseCmd( string cmd_str); cmd_str=""; }
-
Thread
Extrahieren eines Teil-Strings aus einer Konstanten
[c] #include <stdio.h> #include <string.h> #define SVNVERSION "$Revision: 214 $" int main(int agrc, char**argv) { // Definition ins RAM kopieren char svnversion[] = SVNVERSION;
[c] #define SVNVERSION_NO "214" #define SVNVERSION "$Revision: " SVNVERSION_NO " $" [/c]
-
Thread
Basic-Interpreter auf einem AVR
factor (ubasic.c) [24] singlechar (tokenizer.c) [4] ubasic_run [19] for_statement (ubasic.c) [6] statement (ubasic.c) [31] ubasic_set_variable [2] get_next_token (tokenizer.c) [15] term (ubasic.c) [29]
Hier noch schnell ein vergleich mit C compilierte version ... #include <stdio.h> main() { short a,b,c; for(a=0;a<100;a++) for(b=0;b<100;b++) for(c=0;c<100;c++) printf("%d %d\n",b,c); } gcc -O6 -o test test.c
-
Thread
Zeiger Strings ausgeben?!
Moin Moin. Wieso hängt sich der µC auf, wenn ich die Strings ausgeben will? [C] typedef struct { const char *ProjectName; const char *HardwareVersion; const char *SoftwareVersion; const char *HardwareDate; const
/* enable UDRE interrupt */ UART0_CONTROL |= _BV(UART0_UDRIE); }/* uart_putc */ [/c] [c] /************************************************************************* Function: uart_puts() Purpose: transmit string to UART Input: string to be transmitted Returns: none
-
Thread
folgender code nicht compilierbar
argv =**%s** argc(int)=%d",argv,argc); printf("\r\n\n\n\nhier einzelne ZeicheN:"); printf("\n%c\r",argv[0]); printf("\n%c\r",argv[1]); printf("\n%c\r",argv[2]); printf("\n%c\r",argv[3]); printf("\n%c\r",argv[4]); getchar(); return 0; } ausgabe ist als string was anderes als
Name des EXE inklusive Pfadangabe, von wo aus das EXE gestartet wurde. > printf("\n%c\r",argv[1]); argv[1] ist ein Pointer auf dein erstes Argument. In deinem Fall ein Pointer auf den String "-abc" > printf("\n%c\r",argv[2]); so wie du das EXE aufgerufen hast, ist argv[2] ein
-
Thread
ASCII Verarbeitung optimieren
(100, 2); .... // nächstes Kommando } [/C] Dazu musst du aber C-Strings beim Empfang bilden, also welche die mit einem '\0' Character abgeschlossen sind. http://www.mikrocontroller.net//articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C
[C] uint8_t IsZahl( const char* String ) { // gibt es ein Vorzeichen? if( *String == '+' || *String == '-' ) String++; // ein leerer String wird nicht als Zahl akzeptiert
-
Thread
C Programmieren unter Ubuntu anfänger
www.c-howto.de
Niklas G. schrieb im Beitrag #4707150: > Du musst ja nicht > direkt alle Funktionen von C++ nutzen, aber einige praktische Dinge wie > die string-Klasse helfen einem doch sehr. Jo, und wenn man dann auf Mikrocontroller gehen will, stellt man überrascht fest, daß man die ganzen wirklich
-
Thread
C++ NMEA-checksum
im String mal kein Stern enthalten ist. Dazu kann es Probleme geben, wenn char vorzeichenbehaftet ist. Ich würd's wohl etwa so schreiben: [C] unsigned char Checksum = 0; ++packet; while (*packet != '*' && *packet != '\0') Checksum ^= *(unsigned char*)packet++; return Checksum; [/C] Wobei ich zum Iterieren eigentlich gerne auch eine for-Schleife nehme: [C] for (packet++; *packet != '*' && *packet != '\0'; packet++) Checksum ^= *(unsigned char*)packet; [/C]
-
Thread
Projekt: SerialComMeasurement
Schnittstelle 250000 Baud. Beispiel: #CL Clear und Reset des Befehlspuffer #AI2_C10 Analog Input 2 auf Channel 10 mappen #AI3_C11 Analog Input 3 auf Channel 11 mappen #M*C12_C10_C11 Multiplikation Chan.10 und Chan.C11 nach Chan.C12 #SO_C10 SerialOut Channel 10
Werte, solange die Leistung höher als 500 ist PortB.5 setzen. Serielle Ausgabe aller Kanäle: #CL #C11=AI1M9 #C12=AI2M9 #C15=C11*C12 #C17=V500 #PB5=C15>C17 #SO=C11(Spannung) #SO=C12(Strom) #SO=C15(Leistung) #Start Hex-File für ATMega 328P, incl Uploader sind beigefügt.
-
Thread
Windows Vista und Stapelverarbeitung (BAT-Datei)
Mit dem SDCC-Compiler funktioniert das schon mal prächtig: [pre] cd %~d0%~p0 for %%d in (*.c) do ( echo %%d sdcc %CParmString% %%d if ERRORLEVEL 1 goto ende ) [/pre] Danach sind alle C-Files compiliert. CParmString ist eine Umgebungsvariable, die mehrere Compileroptionen enthält
for %%d in (*.rel) do ( if not %%d==main.rel ( set RelFileString=%RelFileString% %%d ) ) echo RelFileString: %RelFileString% [/pre] RelFileString ist eine Umgebungsvariable, in der als String alle rel-Files nacheinander enthalten sein sollen. Die Namen
-
Thread
Parser einer Grammatik
Die Fehlermeldung kommt übrigens bei folgendem Aufruf: [c] public class haupt { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String s = "aaaaaaaa"; new Parser(s); }
Was bisher immer ignoriert wurde, und sich in C fast von selbst regelt, ist, dass du nach einem Erhöhen von pos auch prüfen musst, ob dadurch nicht das Ende des Strings erreicht wurde. In C erübrigt sich diese Abfrage, da ein C-String immer
-
Thread
c# Daten zwischen zwei Forms austauschen
Globals.global_LV_Zeiger = lvct; Globals.lvi = LVx[lvct].Items[ct]; //string abfr=Globals.lvi.SubItems[1].Text; Form2 dlg = new Form2(); dlg.ShowDialog(); } [/c] hallo, schreibe gerade
für die Antworten. Hilft aber nicht wirklich weiter. Liegt aber vielleicht an meinen beschränkten c#-Kenntnissen. Ich will in form2 eine Referenz auf form1.listview1 um die Daten in form1.listview1 direkt aus form2 heraus zu ändern. In vb geht das. Müsste in c# also auch gehen?
-
Thread
uC UART - libserial unter Linux in C++
LOOP_UPDATE * CLOCKS_PER_SEC/10); serial_uart_1.read(input_buffer, buffersize); tmpBuffer = string(input_buffer); cout << tmpBuffer; } } serial_uart_1.Close(); return(0); } [/c] Ich habe mit UART noch nicht gearbeitet und denke, dass ich noch einige grundlegende Verständnisprobleme
--new loop-- 2358 2359 ... [/c] Was ich eigentlich von dem Programme erwarte ist das hier: [c] --new loop-- 233C --new loop-- 2358 [/c] Kann es an dem Buffertyp liegen? Ich möchte lediglich nur den aktuellen Wert(oder
-
Thread
c# bestimmte anzahl an stellen in ausgabe frei halten
Wenn einem nichts besseres einfällt: [c]string blanks = ""; for(int i=0;i< 3 - id.ToString().Length; i++) { blanks += " "; } xml.WriteLine("/*" + blanks + id + "*/ " + signallist[var] + ";"); [/c]
/ String.ToString oder .WriteLine(Format,Object,....) Die Formatbeschreibung ist allerdings nicht kompatibel mit C's *printf In C funktioniert natürlich für diesen Anwendungsfall der Formatstring "%
-
Thread
Problem mit der sprintf - Funktion
; x = (adcVal[0] * 5) / 1024; sprintf(StringBuf, "%f", x); GLCD_DrawString (0, 2*24, (char*)StringBuf); ... [/c] Wenn ich den berechneten Wert einer float-Variable zuweise und anschließend ausgeben möchte, hört der Timer auf neue Werte
" "); GLCD_DrawString (0, 7*24, " "); GLCD_DrawString (0, 8*24, " "); GLCD_DrawString (0, 9*24, " "); } [/c]
-
Thread
lcd_putint falsche Ausgabe
Einfacher wäre es, tmp mal global zu machen bzw. einen anderen globalen Puffer mitzubenutzen. [C] char tmp[10]; void lcd_putint(int value) { itoa(value, tmp, 10); lcd_string(tmp); } [/C]
arbeiten speziell benennt also hier lcd_string_P(...). Das ist eigentlich die Art wie ich bisher in 80c51 programmiert habe nur wie schreibe ich hier mit C die Daten in das ROM (bin immer noch am Anfang mit C) By Wolfgang
-
Thread
Initialisiertes Char Feld mit Länge 1 und Inhalt '\0'?
$4445 $0041 $4410 $0940 $0444 [/code] ...es gibt da eine Funktion getcount() in general.c: [c] getcount(str,size,strt,err) char *str; /* string with <range> on it */ int size; /* 1,2 or 4; the number of bytes from <size> */ int strt; /* starting address */ char err
Da gibt's übrigens noch ein kleines, aber feines Detail: [c] char string[] = "Stringliteral"; [/c] ist tatsächlich keins. Der Compiler muß das Feld im RAM anlegen, weil es eine Initialisierung eines nichtkonstanten Feldes ist. [c] char *string = "Stringliteral
-
Thread
strings in schleife
. Was mache ich falsch bzw. wie kann ich das ändern? Das C code befindet sich im Anhang Danke im Vorraus! Michael
Außerden setzt Du i nie zurück. In uart_put veränderst Du es zwar, aber nach dem Senden des Strings bleibt es auf dem Stringendindex. Das nächste empfangene Zeichen wird im Interruphandler also an den String angehängt ... Außerdem solltest Du Deinen Quelltext zur besseren Verständlichkeit sinnvoll
-
Thread
Atmel Studio 7 keine Strings??
das Programm einfach nicht kompilieren. String, string, std::string sind alle keine gültigen Datentypen, obwohl ich [c]#include <string.h>[/c] nutze. Ich sitze schon etwas länger an dem Fehler und habe in der Zwischenzeit recht viel aus anderen Foren und Threads probiert. Auch [c]#include <string>[/c] funktioniert nicht. Die Library wird nicht gefunden, was ich erst einmal komisch finde, da string.h ja eigentlich eine c Library ist. Ich habe die alte toolchain auch schon durch
-
Thread
Integer -> Char -> USART -> Char -> Integer (Übertragungsprotokoll)
Einsteiger schrieb im Beitrag #2693182: > z.B. Integer 123 -> Char "0" "1" "2" "3" > > Auf dem uC interpretiere ich die "Zahl" als: > > atoi(0)* 1000 + atoi(1) * 100 + atoi(2) * 10 + 1* atoi(3) = 123 "1" ist ein String. Das Zeichen wäre '1'. Eine String ist ein Nullterminiertes char-Array.
übertragungsprotkolle sind auf den unteren schichten sind meist keine Text Protokolle. > Uc: Sprintf(string,"%d",Zahl); send-uart-s(string); > Pc: get_String(String); atoi(String); schon die verwendung von Sprintf macht es noch schlimmer, es gibt auch itoa! Hast du mal auf einen µC die anzahl der Take
-
Thread
RS232 nach HTTP/HTML Konverter
Ich bin nicht ein grosser Fan von Basic, daher nehme ich lieber C. ;o)
Was meinst du mit Zusammenhang? Flash zugriffe sind in C auch einfach, man muss halt erst wissen wie. ;o)
-
Thread
UART Studienarbeit dringend :D
} else{ PORTA &= ~(1<<PA5); } } if(uart_string[0] == 'b'){ memmove(uart_string, uart_string+1, strlen(uart_string)); Blau = atoi(uart_string); OCR1B = Blau; if(Blau > 50){ PORTA |= (1<<PA6); } else{ PORTA &= ~(1<<PA6); } } if(uart_string[0] == 'c'){ if(uart_string[1] == '1'){ PORTA |= (1<<PA7); } else{ PORTA &= ~ (1<<PA7); } } if(uart_string[0
-
Thread
structs incrementieren?
einzelnen Strings in dieser Struktur via. increment zu kommen? [c] for (uint8_t i = 0 ; i < 3 ; i++) { uart_puts((char*)(uartMsg++)); uart_puts("\r\n"); } [/c]
dann klappts auch mit >> der pointer-arithmetic :-) > > Wie würde das denn dann aussehen? > [c] > union test > { > DevBoard_t Message; > char uartMsg[]; > }; > [/c] > So ungefähr? Wenn die einzelnen C-Strings in DevBoard_t 0-terminated sind (wie es bei C-Strings angenommen wird),
-
Thread
C vs. C#: float Performance
(obwohl ich den auch im gcc angeschalten habe), nutzen. Deshalb frage ich euch, wie kann C# schneller sein? Hier der Code: Performance.c [c] #include <stdio.h> #include <stdlib.h> #include <string.h> #include <CFramework/Types.h> #include <CFramework/Diagnostics.h> #include <CFramework
dann auch marginal ausfallen. Auch bei CallByValue sind die Unterschiede <10%: CallByValue [ms]: C# C++ C 4629 4228 4228 CallByRef [ms]: C# C++ C 2695 2730 2714 Gruß,