-
Thread
Keine GPS Datenanzeige auf GLCD Display (Navilock 552ettl)
Die Punkte von dummy und Dieter Frohnapfel hab ich nun umgesetzt. Nun steht [c] while(NextChar != '$'); // Warte auf erstes Zeichen [/C] und [c] while((NextChar != '*') && (StringLen < MaxLen - 1)){ [/C] im Code. Anbei nun noch die Funktion lcd_puts. Die Microcontrollerei find ich echt geil und spannend aber solche Fehler kosten auch den letzten Nerv. [c] // --------------------------------- // put string to screen (from ram) // --------------------------------- void lcd_puts(uint8_t* font,char* string) {while(*string)lcd_putc(font,*string++);}
-
Thread
VB6 auf C# umstellen
Hallo an alle C# Spezialisten Ich habe gerade begonnen meine VB6 Applikationen auf C# umzustellen bzw. neu zu machen. Ich versuche verzweifelt folgendes VB6 Construkt halbwegs vernünftig auf C# zu implementieren
kannst aber auch C (mit GCC) oder C-like in C++ programmieren, ganz wie es dir am besten gefällt. > Das C++ von MS ist der gleiche "Sch.." wie das C# Wieso das? Das ist doch ganz normales C++ wie auch beim Borland-Compiler
-
Thread
Attiny25 serielle Kommunikation
<< PB1); // PB1 auf Low }; else { return;} } else{ return;} }} [/c] Die Länge des Strings wurde so gewählt, da das Protokol am Ende eines Strings immer das Abbruch-Krit. <CR> hat. Am schnluss muss eigentlich nur der string pwrc0000 bzw pwrc0001 aus dem Protokoll
<util/delay.h> > > #include "avr305.h" > > #include <string.h> > > int main() { > > char c; > while(c=readc()){ > > if(readc()='p') Das Zeichen wird in der while-Schleife bereits eingelesen, daher reicht ein Vergleich mit c. Außerdem musst
-
Thread
Program ROM R8C25
Der M16C sollte laut Renesas von der Struktur her mit der R8C/Tiny Familie gleich sein. Angeblich macht es keinen Unterschied, ob man im HEW den M16C oder R8C auswählt. Die Dateien, die angelegt werden sind die
> Der M16C sollte laut Renesas von der Struktur her mit der R8C/Tiny > Familie gleich sein. Angeblich macht es keinen Unterschied, ob man im > HEW den M16C oder R8C auswählt. Die Dateien, die angelegt werden
-
Thread
DLL in LabView einbinden
const ProcName: WideString = ''); stdcall; function ReadByte(Flags: TCRCFlags = []; const ProcName: WideString = ''): Byte; stdcall; function ReadChar(Flags: TCRCFlags = []; const ProcName: WideString = ''): Char
: TSysCharSet) : Boolean; begin Result := C in CharSet; end; function CharInSet(C : WideChar; const CharSet : TSysCharSet) : Boolean; begin Result := (C < #$0100) and (AnsiChar(C) in CharSet); end; [/code]
-
Thread
String vergleichen
verstehen, was du da überhaupt machst. Ich denke (und rate) mal: * Du holst dir vom Handy einen String. * In diesem String ist die Prozentzahl in irgendeiner Form codiert. * Du weist wie die Strings aussehen muessen, und hast alle vom Handy benutzten Strings im EEprom abgelegt. * Die Aufgabe ist es jetzt aus dem String abzuleiten ob du die Ladung anstossen musst oder nicht. Nein. Ich verstehs immer noch nicht. Warum musst du alle möglichen Strings abklappern um zu entscheiden ob du jetzt laden musst oder
-
Thread
C: große datenmenge in array
rein ins project-dir da drinnen machst dann <<<<<<<<<<<<<snip>>>>>>>> liebe_exe_die_aus_dem_string_ein_c_array_macht.exe make.exe %1 <<<<<<<<<<<<snip>>>>>>>>> die exe legt einfach eine cpp-file an wo dann das array definiert und geladen wird..in welcher form is ja egal... schaut dann ca
das auch auf mehrere zeilen aufsplitten... char meinarray[]="+CMGR: 1,,20\n069134660405F1040C9845631792580\ 5000040703871906280012D\nOK"; damit gehts... und wenn du beim string der vom handy kommt noch alle \r\n durch \n ersetzt (also einfach \r am uart ignorieren ;) ) dann hast 0 probs..
-
Thread
C-Code übersichtlich?
15CAlarm30:OFF\r\n"; while(1) { while (!(UCSRA & (1<<RXC))); //warten auf RXC = 1 c=UDR; for(c=0;c<255;c++) {while (!(UCSRA & (1<<UDRE))); UDR=alarm1[c];} for(c=0;c<255;c++) {while (!(UCSRA & (1<<UDRE))); UDR=alarm2[c];} } return 0; }
Spaltenposition x / 10 * irgendeine_Konstante beträgt. #define ESC "\x1B" void Transmit( char* String ) { while( *String ) { while( !(UCSRA & (1<<UDRE)) ) ; UDR = *String++; } } int main() { char Buffer[20]; int i; ... Transmit( ESC "1B[2J" ); for
-
Thread
Linux C: Serielle Daten loggen und verlorene Zeichen
FD_ISSET(fd1, &readfs)) { res = read(fd1,buf,254); buf[res]=0; // set end of string, so we can printf printf("data:%sbytes:%d\n", buf, res); write(fh, buf, res); if (write < 1) { perror("Fehler bei write"); } } } } [/c]
denke also das es an irgendeiner Einstellung für den Port selbst liegt. Gibt es eine Möglichkeit in C oder per Shell den Hardware-Puffer zu leeren, sobald ein (oder 5) vollständiger String ausgelesen und geschrieben wurde? Oder ist das rein vom Timing her nicht machbar? Folgende Idee: Hans
-
Thread
USB IR Remote Receiver (V-USB + IRMP)
Hauptgründe warum ich vom Igor USB weg bin! Derzeit bin ich daran: Irmp-Version besser als "String" zu übertragen, neueste Irmp Version einfügen... @Frank M.: wenn ich alle Prokolle in irmp.c aktiviere werden ja alle Protokolle mit kompeliert. Dann kann man aber nicht mehr verschiedene Protokolle
falschen Bootloader hochgeladen. Delphi Source ist nun auch 1.0.0.1 wegen Änderung Irmp Version auf C-String. mfg
-
Thread
C, ist die abschliessende Null bei Strings automatisch dabei?
aber vielleicht weiss jemand die Antwort auf die eigentlich triviale Frage auf Anhieb. Wenn ich in C einen String wie im Beispiel gleich beim Anlegen initialisiere, ist die abschliessende Null dann automatisch mit dabei, oder muss ich die selber irgendwie hinten dranfrickeln? [c]uint8_t msg = "Liebe
der Italienischen Oper!"; Die ist automatisch dabei. Allerdings solltest Du es so schreiben: [c]char msg[] = "Liebe Freunde der Italienischen Oper!";[/c] Das erzeugt eine Array, in das der String mit abschließender Null passt. Für Zeichenketten ist char der richtige Datentyp und nicht uint8_t.
-
Thread
The Siemens S65 132x176, 65536 color display with AVR
0xA6, 0x00, 0xA7, 0x00, 0xA8, 0x00, 0xA9, 0x00, 0xAD, 0x00, 0xAE, 0x00, 0xB0, 0x00, 0xB1, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC2, 0x00, 0xC3, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0xCA, 0x00, 0xCD, 0x00, 0xD1, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xE2, 0x00, 0xE7, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xEA
byval Lx As Byte , Byval Ly As Byte , Byval Bcol As Word , Byval Fcol As Word , Byval Lcd_text As String * 1) Local R As Integer Local A As Byte Local B As Byte Local C As Long Local D As Byte Local E As Byte Local F As Byte Local G As Long Local Xpos As Byte Local Ypos As Byte Local Zeichen
-
Thread
C# und LINQ Anweisung
left kleiner right -> negativer Wert left gleich right -> 0 left größer right -> positiver Wert [c]static void Main(string[] args) { var hallo = new[] { new { message = "Hallo", number = 1 } , new { message = "Welt" , number = 3 } , new { message
Moin, da wirst du nicht drumrum kommen, noch einmal separat drüber zu iterieren. [c] var query = XMLWDatenDataSet.Tables[0].AsEnumerable() .GroupBy(x => x.Field<string>("S-Nummer")); foreach(var one in query){ one.OrderByDescending(x => x.Field<string>("Zahl")) }
-
Thread
C Verständnissfrage Pointer (ja wieder mal ;-) )
gefunden wurde! Alles andere ist nämlich ein Spiel mit dem Feuer [C] // replace EOL to 0x00 (use as string) vline = strchr(sline, 0x0D); if( vline != NULL ) *vline = 0x00; [/C] Die
Danke für die Tips. Ich gehe das jetzt mal alles durch. Ich habe vor einigen Jahren mal etwas in C programmiert. Mir fehlt da einfach die Übung. Das Ende des Strings habe ich nicht beachtet, da der String ja aus einer Datei ausgelesen wird. Spätestes beim EOF ist ja das Ende des Strings. Aber Du
-
Thread
suggest parentheses around assignment used as truth value
errors src/string/strcat.c: In function 'strcat': src/string/strcat.c:7: error: suggest parentheses around assignment used as truth value[/c] Deine Meldung sieht aber ein wenig anders aus... Mein Compiler ist gcc
> Warum nimmst du für dein Programm nicht die string.h (die gehört doch > AFAIK zum C-Standard)? string.h gehört in die C-Lib, was aber meines Wissens entweder standard oder "nahezu-standard" ist. Ich nehme die nicht, weil ich die nicht verfügbar
-
Thread
LCD an PortC
uint8_t x, uint8_t y); /** @brief Display character at current cursor position @param c character to be displayed @return none */ extern void lcd_putc(char c); /** @brief Display string without auto linefeed @param s string to
none */ extern void lcd_data(uint8_t data); /** @brief macros for automatically storing string constant in program memory */ #define lcd_puts_P(__s) lcd_puts_p(PSTR(__s)) /*@}*/ #endif //LCD_H [/c] die avr-includes sind in der main.h
-
Thread
Zahl in String umwandeln
Der ganze Code schreit danach, weggeworfen zu werden (falls er für einen 8-Bit µC gedacht ist)
Udo Schmitt schrieb im Beitrag #2506856: > Lernen was die C API bietet macht aber auch Sinn. > @Judgin F.: > Gibt es einen besonderen Grund warum du nicht itoa() benutzt? itoa() gehört aber eben gerade *nicht* zum C Standard ;-)
-
Thread
Z180-Stamp Modul
| ..0 ..0 ..0 ..0| 0060 0c 94 b3 30 0c 94 d4 63 0c 94 fe 63 0c 94 b3 30 | ..0 ..c ..c ..0| 0070 0c 94 b3 30 0c 94 b3 30 0c 94 b3 30 0c 94 b3 30 | ..0 ..0 ..0 ..0| 0080 0c 94 32 63 0c 94 b3 30 0c 94 b3 30 0c 94 b3 30 | .2c ..0 ..0 ..0| 0090 0c 94 b3 30 0c 94 b3 30 0c 94 b3 30 0c 94 c0 64 | ..0 ..0 ..0 ..d| 00a0 0c 94 b3 30 0c 94 b3 30 0c 94 ce 71 0c 94 b3 30 | ..0 ..0 ..q ..0| 00b0 0c 94 b3 30 0c 94 b3 30 0c
-
Thread
C#: Enum und ComboBox
(FormatType)comboBox_format.SelectedItem); } [/c]
nächste Schritt, mal in folgender Zeile einen Haltepunkt zu setzen und den Debugger anzuwerfen: [c] Format(textBox_input.Text, (FormatType)comboBox_format.SelectedItem); [/c] Im Debugger schaust Du Dir dann mal an, welchen Typ das Objekt hat, das das Property SelectedItem zurückliefert. Ich
-
Thread
Parameter an Funktion
wieso ich Müll rauskriege, wenn ich eine Funktion habe: int sendstring(char *s) { unsigned char c = 0; while(s[c] != 0) if( USR & 0x20 ) UDR = s[c++]; return(0); } int main(void) { sendString("Hallo, Du da!\n\r\0"); return(0); } ich auf dem Terminal nur Müll angezeigt
----------------------------------------------- // send a ProgMem string to UART0 Transmit-buffer //--------------------------------------------------- { char c=pgm_read_byte(str); // get first char from ProgMem while (c) // while not string-end
-
Thread
16-Bit Zahl auf LCD
. > [C] char Buffer[8]; uint16_t Wert; Wert = TCCR1; utoa( Wert, Buffer, 10 ); lcd_string( Wert ); [/C] Wobei lcd_string eine Funktion ist, die einen Textstring auf einem LCD ausgeben können
, 10 ); lcd_string( Buffer ); [/c]
-
Thread
Mehrere Werte über RS485 versenden
gibt das Programm die Werte seriell in einer Zeile aus. Diese > Werte müsste ich jetzt in einen String bekommen? Deine Zeile ist doch schon ein lesbarer Text-String. Aber "Human-Readable" macht halt die Empfangsseite nicht unbedingt einfacher. Wenn ich von Maschine zu Maschine (µC zu µC) kommuniziere
gibt das Programm die Werte seriell in einer Zeile aus. Diese >> Werte müsste ich jetzt in einen String bekommen? > > Deine Zeile ist doch schon ein lesbarer Text-String. Aber > "Human-Readable" macht halt die Empfangsseite nicht unbedingt einfacher. > > Wenn ich von Maschine zu Maschine (µC
-
Thread
UART String senden
vor? Code: [c] #include <avr/io.h> #include <string.h> #define OSCSPEED 8000000 /*OSC in Hz*/ void InitUART(uint32_t baud) { uint16_t baudrate=(OSCSPEED/(16*baud))-1; /*Set baud rate*/ UBRRH
...... [/code] Seltsam finde ich außerdem das strlen() für den String "TEST" den Wert 6 zurückgibt: [code] 4C 45 4E 47 54 48 3A 06 - LENGTH:. [/code] Habe leider kaum Erfahrung mit µC deshalb kann ich mir darauf einfach keinen Reim machen
-
Thread
String binär auslesen?!
[3]cHWY1[3]cAmp[3] Nun möchte ich auf meine Benutzerpanel entsprechend den gedrückten Tasteneinen binären String ausgeben. D. h. ich möchte die aktuellen Werte aus dem Array auslesen und binär anzeigen
> Ich habe ein Array: > > cuPP[1]cM1[4]cM2[4]cHWY1[3]cHWY1[3]cAmp[3] EIN array ??? poste mal den code.
-
Thread
UART empfängt nur 2 zeichen
_puts(char *s, unsigned int len){ while (*s) { /* so lange *s != '\0' also ungleich dem "String-Endezeichen(Terminator)" */ rs485_putc(*s); s++; } } [/c] Empfangen tue ich mit einem zweiten mega328 [c] if((UCSR0A & (1<<RXC0))){ uart_gets(uart_string, sizeof(uart_string
Oder besser: [c] uart_string_dup = uart_string; uart_str_complete = 0; lcd_gotoxy(0,0); lcd_puts(uart_string_dup); [/c]
-
Thread
Visual C# SerialPort Event Handler
saveReceivedData(this,uartInput); } void saveReceivedData(object sender, string input) { MessageBox.Show(input); this.uartMessageBox.Text = input; } [/c]
Eine kompakte Variante wäre: [c] void saveReceivedData(object sender, string input) { this.uartMessageBox.Invoke(() => { MessageBox.Show(input); this.uartMessageBox.Text = input; }); } [/c] ...durch das
-
Thread
Casten macht Probleme
> txt ist doch ein String und kein Pointer. Strings sind(tm) Pointer. Letztenendes kommt es drauf welchen Zeigertyp man wie und wie oft braucht. uint8_t* txt = (uint8_t*)"C9"; [..] dez = (uint8_t)Hex2Dez(txt, 2);
Karl Heinz Buchegger schrieb im Beitrag #3228193: > char* c = "Hallo"; [pre]warning: initialization discards 'const' qualifier from pointer target type[/pre] Hier ist wohl gemeint [c]const char *c = "Hallo";[/c] Ab GCC 4.0 wird kein -fwritable-strings
-
Thread
Serielle Kommunikation zwischen PC(Windows) und µC (STM32)
; SerialBuffer = ""; // Reset string } [/c]
increment; hvAntwort = transmit_apd(channelNumber, 0b1000, incrementValue); RS485_SendString(COM2, itoa(incrementValue, ausgangsBuffer, 10), CRLF); buf[0] = '\0'; //Inhalt des Buffers löschen } } } [/c]
-
Thread
Inzwischen C++ sinnvoll auf einem AVR?
ersetzt, was auch die Länge der Funktionsnamen verkürzt und die Datenkapselung begünstigt. Statt [c]DisplayWrite(Display, String);[/c] schreibe ich nun [c]Display.Write(String);[/c] was meiner Meinung nach angenehmer und übersichtlicher ist. Hardwarenahe Dinge sind nahezu idetisch wie in C und
hat die das gleiche machen, aber > mit unterschiedlichen Parametertüpen aufrufen möchte. > Z. B.:[c]void send(const char c) { > ... > } > > void send(const char* s) { > while(*s) { > send(*s++); > } > }[/c] Und wie sendest du einen String, der im Flash steht?
-
Thread
Problem mit 'String st'
Ich nehme an du benutzt C++? Dort gibt es keine Klasse die String heißt sondern höchstens std::string. Gibts im Header <string>.
das grad' > nix... Was ist dein Problem? was sagt der Compiler? Noch mal zum verständnis: In C++ gibt es *keine* Standardklasse die "String" heisst. Es gibt aber die Klasse "string", im Namensraum "std". [c] #include <string> void foo(std::string st ... [/c]
-
Thread
Datenlogger 10Kanal
dataString = ""; int analogPin; // read seven sensors and append to the string: for (analogPin = 0; analogPin < 6; analogPin++) { dataString += String(analogRead(analogPin)) + ","; } dataString += String(analogRead(analogPin)); // the last data without komma if (myFile) { myFile.println(dataString); } else { DEBUG_PRINTLN("error opening filestring")
-
Thread
Funktion funktioniert nur einmal
Ich hab eine Lösung gefunden: Ich dachte immer, dass ich mit dem Befehl: [c] strcpy(string,""); [/c] den String leere. Aber anscheinend hat das bei mir nicht geklappt. Jetzt hab ich folgendes gemacht: [c]laenge = strlen(string); for(i=0;i<=laenge;i++) { string[i]
memset(string,0, sizeof(string)) dauert etwas länger und schreibt über die komplette länge ein 0 rein. Ein String in C ist nicht wie in Pascal definiert. In C endet der String wenn eine 0 kommt, in Pascal wird
-
Thread
string-Objekte auf dem Heap
Holger S. schrieb im Beitrag #3093614: > http://www.cplusplus.com/reference/string/string/compare/ Eben, seit wann vergleicht man Strings mit == und != ? Ah so, mit C++ verwechselt. Wenn == und != korrekt überladen sind, dann geht das so.
meiner Bibliothek gemacht wird: [c] inline bool operator==(const string& _Left, const string& _Right) { // test for string equality return (_Left.compare(_Right) == 0); } [/c] Oha na sie mal an, ist ja dasselbe. Vielleicht
-
Thread
integer Variable als Kommazahl
. Aus deinem Code: [c]result /= 102,3; //10V anzeigen[/c] Dies wird nicht das tun, was du dir erhoffst. Du benutzt hier den Kommaoperator und result wird durch 102 geteilt. 102.3 wäre richtig, falls du Fliesskommazahlen
[c] result += ADCW; } // ADC wieder deaktivieren ADCSRA &= ~(1<<ADEN); result /= 3; // result /= 102,3; //10V anzeigen return result; } [/c] Und dann in main() [c] uint8
-
Thread
Per UART empfangenen String weiterverarbeiten
Hallo @ all. Ich fange gerade an mit C zu programmieren und habe ein paar Fragen zu folgender Situation : Ich möchte eine per UART empfangenen String (GCC-Tutorial) weiterverarbeiten, der bzw. die Strings sind wie folgt aufgebaut :
// Noch ein '\0' anhängen um einen Standard // C-String daraus zu machen *Buffer = '\0'; } [/c] Ich dachte mir jetzt nach der Zeile '*Buffer='\0' ' zunächst via [c]switch(buffer[1]) case('1'):....; break; case('2'):....; break; ....
-
Thread
C# Serial Port funktioniert nicht richtig
funktion verwendest: Nein, ich verwende eine andere. Eigentlich ist der Name rs232_getint falsch: [c]signed int rs232_getint(void) { char string[2]; char c; unsigned int laenge = 0, i = 0, a = 0; do { a++; c = rs232_getc(); //Einzelnes Zeichen empfangen string[laenge] = c; //Empfangenes Zeichen in String ablegen laenge++; } while (a < 2); //Bis 2 Zeichen empfangen wurden i = atoi(string); return i; } [/c] > 2. "funktioniert
-
Thread
#define in einen String eintragen
Moin, wie kann ich mehrere #defines nacheinander in einen String oder ein Array eintragen? [c] #define expr_1 'A', 'B', 'C', 'D' #define expr_2 'E', 'F', 'G', 'H', 'I', 'J' #define expr_3 'K', 'L', 'M' char *string_1; string_1 = "ABCD"; char *string_2; string_2 = expr_1; printf("\r%s", string_1); //geht printf("\r%s", string_2); //geht nicht [/c]
-
Thread
Faktensammlung Buderus EMS
3c 00 00 00 2e Wieder Faktor 2: 23: min: 17,5°C 2a: ???: 21,0°C? 3c: max: 30,0°C 2e: value: 23,0°C Abfrage auf dem KM200: /heatingCircuits/hc1/fastHeatupFactor Antwort: 10 f9 00 ff 01
, data: ff 01 b9 02 0f 00 00 00 23 00 00 00 2a 00 00 00 3c 00 00 00 2e Wieder Faktor 2: 23: min: 17,5°C 2a: ???: 21,0°C? 3c: max: 30,0°C 2e: value: 23,0°C Abfrage auf dem KM200: /heatingCircuits/hc1/fastHeatupFactor Antwort: MESSAGE[...]: source
-
Thread
String ein ausgeben
hallo, Viellecht kann mir einer von euch helfen, ich habe ein Temperatur-Modul mit einem ATmega8 mit 16 DS18S20 Sensoren. Dieses Temp-Modul sendet die Daten über eine Uart in ascii, 1.Sensornummer 2stellig 2.Temperatur 2stellig vorm Komma 3.Vorzeichen Plus oder Minus je nach Temperatur draußen 4.Nachkommastelle 1stellig Diese Daten wollte ich nun mit einen Atmega128 mit der UART-Lib von Peter Fleury einlesen und umwandeln und dann wieder Ausgeben,aber leider bekomme ich das so nicht hin. vielleicht kann mir jemand weiterhelfen. danke mfg [c] char Eingabe[7]; int Count
-
Thread
Hilfestellung zu C-Code für Mikrocontroller
>Funktioniert aich nicht. Sind jetzt ja auch Strings in chars. In Hochkommas darf nur ein Zeichen, Zeichenketten kommen in ". strings müssen mit strcmp verglichen werden. Einfach "==" geht nicht. also in main [c] int main(){ read_port("P98
AUch wenn ich nicht glaube, dass du da eigentlich mit Strings arbeiten willst: http://www.mikrocontroller.net/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F
-
Thread
RXTX Java AT89C5131
, vom Controller, die 4 Portzustände als hex-Wert direkt zu empfangen, dann jeweils int to binaryString auf 8 Bits formatiert! Jetzt meine Frage: WIE (evt diesmal mit Sourcecode) kann ich das binaryString Muster auf 8 Boolean aufteilen und zuordnen? Komme ich da mit BitSet weiter? Wenn ja, WIE?
leider kein Sourcecode zur Hand ;-) Kann nur das bieten: 8 Boolean deklariert: pin00 bis pin07 String inBin = "00000000" String inByte="" mySerial.Read(inByte); ;kommt zB ne "FF" inByte = Byte.toStringBinary(inByte); Syntaxfehler ausgeklammert steht dann in inBin "11111111" Wie bekomme
-
Thread
Scheduler für AVR
lpm r18, Z > while (tmp != 0) { > 9a: 21 11 cpse r18, r1 > 9c: 01 c0 rjmp .+2 ; 0xa0 <lcd_string_P+0xa> > } > } > 9e: 08 95 ret > tmp = pgm_read_byte(++data); > a0: 01 96 adiw r24, 0x01 ; 1 > a2: f9 cf rjmp .-14 ; 0x96 <lcd_string_P> Lieber Herr Apollo M., das ist nicht mein Code! Mein ist etwas anders: [c] tmp = pgm_read_byte(++data); [/c] gibt es in meinem Code nicht! So kleine Unterschiede machen schon große Unterschiede
-
Thread
MSP430 F5529 Wobbel-Generator
nachwievor fliegt mir der string mist um die Ohren. Hatten im Unterricht diese als extern void eingeführt, liegen die Sachen in der Header-Datei oder in einer anderen Quelldatei, z.B. ein seperates C-Programm?
Antonowan225 schrieb im Beitrag #6098701: > nachwievor fliegt mir der string mist um die Ohren. > > Hatten im Unterricht diese als extern void eingeführt, liegen die Sachen > in der Header-Datei oder in einer anderen Quelldatei, z.B. ein seperates > C-Programm? Es wird
-
Thread
Pointer in ISRs
/Fehler: Bereits am Senden } else { TXBUF=Ausgang; //zu übertragenden String in Puffer schreiben UCSRB |= (1 << UDRIE); //Interrupt einschalten zum Sendestart return 0; //TX beginnt fehlerfrei } } [/c] ...und wenn ich den Inhalt aus der ISR unverändert
[c]volatile unsigned char *TXBUF;[/c] Nicht der Inhalt deines Puffers muss volatile sein, sondern der Pointer. Also: [c]unsigned char * volatile TXBUF;[/c]
-
Thread
C# Regex String mit "[" finden
Hallo, ich parse mir ein LogFile mit Regex und suche auch damit nach einer exakten Stringfolge [KEY]. Ich kann nicht nur nach KEY suchen, weil damit ein anderer Prozess gemeint ist. Wenn ich nun [ in das Pattern eintragen will krieg ich eine Exception. Wie kann solche Zeichen mit in die Suche aufnehmen?
-
Thread
String Splitten in C (WinAvr)
Hallo ! Ist es möglich mit C einen String, den man vom PC per UART geschickt bekommt, nach einem bestimmten Delimiter zu splitten ? Ich benutze WinAvr und finde einfach keine Funktion dafür. Gruß, G.
wirklich nicht schwer eine solche Funktion selber zu realisieren. Ansonsten schau mal in die string.h
-
Thread
Visual c# String to int
Schnittstelle aus. Es handelt sich dabei um einen Messwert. Jetzt habe ich den Messwert in einem String. Wie bekomme ich das nun in eine int Variable damit ich damit rechnen kann? Danke schon mal Andreas
Hat dieses tolle C# keine Dokumentation? meinint = System.Convert.ToInt32(meinstring, 10);
-
Thread
Probleme bei Programm! Verkettete Listen
du nur eine Variable, die 1 (in Worten: ein) Character aufnehmen kann. 1 Character ist aber kein String! [c] char name[20]; scanf( "%s", name ); [/c] jetzt hast du einen String! Und denn kann man kopieren. Zb in ein anderes char Array [c] char tmp[20]; strcpy( tmp, name
); ... } [/c] Ehrlich. C-Buch. Durcharbeiten. Dringend! String-Handling ist in C der erste Stolperstein von ca. 986 weiteren, die noch auf dich warten. Und es ist bei weitem der einfachste zu verstehen. Gegenüber
-
Thread
HTML mit charset=iso-8859-1
schrieb im Beitrag #7577191: > Aus > Mikrocontrollern kommt aber freiwillig kein utf-8, Auch bei String-Literalen ist das schon lange kein Problem mehr: [c]const char* myText = u8"bla öäüß° 貓🐈µ";[/c] Wenn du dann myText ausgibst ist es ganz normales UTF-8. Der C-Sourcecode sollte UTF-8 kodiert sein
Harald K. schrieb im Beitrag #7577749: > Schon mal strlen auf > einen utf-8-String losgelassen und die Länge eines Textes z.B. für die > Cursorpositionierung auf einem Terminal verwendet? Dafür gibt es Libraries. Moderne Sprachen wie Java haben das integriert, bei C und C++ muss
-
Thread
Einfacher Interpreter in C++
nicht viel mehr als eine Übung in der Stringverarbeitung. Die Hauptfunktion sieht ungefähr so aus [c] #define numSym 1 #define plusSym 2 #define minusSym 3 #define timesSym 4 #define divideSym 5 #define eofSym 99 .... char InputString[80]; int nextChar; .... strcpy(
Ziffern sind und setzt die Zahl dabei zusammen, während die Ziffern auftauchen. Getreu der Vorschrift [c] Zahl = 10*Zahl + Ziffer - '0'; [/c] also ca so [c] int nextSym( int* number ) { while( InputString[nextChar] == ' ' ) nextChar++; nChar = InputString[nextChar++]; switch(