-
Thread
C++ auf Embedded Features
nutze u.a. - std::string - std::ostringstream - Exceptions (sind optional bzw. deaktivierbar) Mir steht aktuell keine C++ Toolchain für Embedded zur Verfügung und daher wollte ich euch fragen, ob eure Toolchain die o.g
idealerweise auch im > Embedded-Umfeld Wenn du von 32 Bit Maschinchen sprichst, stehen dir sowohl string, als auch die iostream Geschichte zur Verfügung .... Bei den 8Bit, z.B. AVR, kannste das erstmal knicken. Die ganze LibC++ ist nicht dabei.
-
Thread
C++ iostream und string
Ich habe ein Verständnisproblem mit C++ iostream. [c] long size; string s1,s2,s3,s; s1="0123456789\nabcdefghij\nabc"; s2="abcdefghij"; ostringstream out; istringstream in; in.str(s1); s1="jk"; out.str(s2
in.tellg()<size) { getline(in, s); out << s << "\n"; out.flush(); } s2=out.str(); [/c] Dieses Beispiel ist zwar nicht besonders sinnvoll, aber was ich eigentich will ist folgendes. In der Zeile in.str(s1); soll der String als input stream verwendet werden. Wie es aussieht, wird dabei
-
Thread
Bestimmte Zeichen aus String entfernen? GCC
[c]#include <iostream> #include <string> #include <algorithm> #include <iterator> int main () { std::string str ("Gutxxen Axxxbend"); std::cout << "Vorher: " << str << std::endl; str.erase
Man muss das auch in C nicht zu Fuß machen: [c] #include <string.h> #include <stdio.h> void removeChars (char * input, const char *unwanted, char * output) { char * substring = strtok(input, unwanted); *output
-
Thread
C Compiler und Entwicklungsumgebung für 80C537
. Im Code sind folgende Dateien verlinkt: #include "reg537.h" #include "\bin\develop\tools.51\c51\stdio.h" #include "\bin\develop\tools.51\c51\stdlib.h" #include "\bin\develop\tools.51\c51\string.h" #include "pjgetkey.h" #include "adu.h" #include "cmt.h" #include "lcd.h" #include "rs232
Die Files sind auch alle beim Quellcode dabei, bis auf die drei: #include "\bin\develop\tools.51\c51\stdio.h" #include "\bin\develop\tools.51\c51\stdlib.h" #include "\bin\develop\tools.51\c51\string.h" Ich denke die Pfadangabe weißt auf die Entwicklung mit dem Keil C51 Compiler hin, oder?
-
Thread
C-Programm Dateinamen übergeben
Dateiname'. Du kannst den auch vom Benutzer einlesen oder was auch immer */ strcpy( Dateiname, "C:\\test.txt" ); /* und jetzt der fopen. */ fopen( Dateiname, "r" ); } Wo liegt denn da das Problem? Du definierst dir einen string (als char Array, wie unter C üblich) und übergibst das
Aus der DSTRING.H (Borland C++ Builder): /-- AnsiString: String class compatible with Delphi's Native 'string' type --/
-
Thread
Probleme mit C#
Ich habe eine Funktion für C# geschrieben. Leider klappt es nicht mit dem Paramter von der Funktion. Wie muss ich den Paramter in C# deklarieren? Ich möchte der Funktion einen String von insgesamt 9 Zeichen übergeben. public
> Wie muss ich den Paramter in C# deklarieren? Jedenfalls nicht als Array. Du willst , sofern ich dich richtig verstehe, nur einen String an die Methode übergeben und nicht gleich einen ganzen Haufen Strings. Das könnte in etwa so
-
Thread
Größe des RS232-Puffers bei Linux in C?
0,15); //////printf ("%s", smsinhalt); //////set_fgcolor(2); log_meld("SMS abgefragt.\n"); } [/c] Programmoutput: �� Detektion: 1. string--> AT+CMGR=0 Wenn ich [c] write(fd_ser, "AT+CMGR=0\r\n",11); [/c] durch [c] write(fd_ser, "AT+COPS?\r\n",11); [/c] ersetze, ist der Output
--> Test0001 Detektion: 7. string--> Detektion: 8. string--> OK Detektion: 9. string--> : Hier noch die RS232-Einstellungen: [c] int open_port(void){ int fd_ser; struct termios terminal; set_fgcolor(3); log_meld
-
Thread
VB2005-DLL einbinden
As String Dim OutputPresent As String Dim DigitalInputState As String Private Declare Sub Version Lib "c:\8055\k8055d.dll" () Private Declare Function SearchDevices Lib "c:\8055\k8055d.dll
System.EventArgs) Handles MyBase.Load ClearAllDigital() Dim CurrentLine As String = "1" Dim Counter As Integer 'Dim TotalCommands As Integer Counter = 1 Dim readerVar As IO.StreamReader readerVar = IO.File.OpenText("c:\8055\default.vel
-
Thread
C#: Daten zwischen Window und View durchreichen
Im obigen Post wird das generierte Beispiel von ChatGPD geziegt. [c] protected virtual void OnMessageSent(string message) { if (MessageSent != null) { if (InvokeRequired) { Invoke
MessageEventHandler Klasse habe ich erstellt. Jetzt habe ich in der anderen Datei Fehlermeldungen: [c] MessageSent += Data_MessageSent; private void Data_MessageSent(object sender, string message) { // Prüfe, ob Invoke erforderlich ist if (InvokeRequired)
-
Thread
Java serielle Schnittstelle mit JSSC
- evtl andere Events abfangen case SerialPortEvent.DATA_AVAILABLE: StringBuilder readBuffer = new StringBuilder(); int c; while ((c = inputStream.read()) != 10) { if (c != 13) { readBuffer.append
vier- oder zehnmal pro Sekunde Protokolle raushauen. Da erfolgt dann die Verarbeitung direkt in [c] private void ausgabeProtokoll(String _tangaString) { ... } [/c] Die Comport-Chooser habe ich abgeschafft. Meine Programme tingeln nahezu zeitgleich alle COM-Ports ab und schauen ob es
-
Thread
Zeiger auf Objekt weitergeben
jeder vernünftige Compiler die nötige Optimierung > implementiert? Nachtrag: schreibt du [c] PrintString( const std::string s ) { ... }; [/c] oder [c] PrintString( const std::string& s ) { ... }; [/c] ist auch nur eine Optimierung.
Peter II schrieb im Beitrag #5136620: > schreibt du > > [c] > PrintString( const std::string s ) { ... }; > [/c] > > oder > > [c] > PrintString( const std::string& s ) { ... }; > [/c] > > ist auch nur eine Optimierung. Peter, genau wegen solcher
-
Thread
AD-Werte auf LCd ausgeben
Hallo, O.K. hast recht. Hier jetzt noch mal von Anfang [c] int main(void) { int16_t adcval0; lcd_init(); lcd_string("Hello World!"); while(1) { } return 0; } [/c] Ausgabe klappt. Also gehe ich davon aus, das das LCD richtig
der Abgeänderte Text: [c] set_cursor(0,1); lcd_string("Tagesachse: "); . . . set_cursor(13,0); lcd_string(Buffer0); [/c] Jetzt ist beim einschalten alles i.O., so wie es sein soll, aber wenn er dann den nächsten Wert
-
Thread
String im Flash
Folgendes gibts in der LCD-Routine von Fleury: lcd.c: [c] void lcd_puts_p(const char *progmem_s) /* print string from program memory on lcd (no auto linefeed) */ { register char c; while ( (c = pgm_read_byte(progmem_s++)) ) { lcd_putc(c); } }/* lcd_puts_p */ [/c] lcd.h: [c] #define lcd_puts_P(__s) lcd_puts_p(PSTR(__s)) [/c] Das benutze ich so: [c] lcd_puts_P("TESTSTRING"); [/c] Bei Fragen nochmal fragen
-
Thread
C: Programm mit Textanzeige für mehrere Sprachen
#4225115: > Wer kann helfen ? Du dir selbst. Was ist der augenfälligste Unterschied zwischne [c] #define TEXT1 Text1_auf_spanisch [/c] und [c] #define Text1 "Text1_auf_deutsch" [/c] Welches ist die richtige Version? Ersetz mal in beiden Fällen in [c] lcd_puts(TEXT1); [/c] das Makro. Das eine mal kommt raus [c] lcd_puts(Text1_auf_spanisch); [/c] und das andere mal kommt raus [c] lcd_puts("Text1_auf_deutsch"); [/c] (Makros sind nur Textersetzungen. Ein Text wird an der verwendenden Stelle durch
-
Thread
avr register ausläsen und umwandeln zu ascii, wie?
kann es auch gar keine Funktion mit dem Namen lcd_string() in C geben!
0] = c; i[1] = '\0'; // weil in C ja jeder String mit einem \0 aufhören muss. [/C] Ist das zu einfach? Wenn natürlich in i schon ein String besteht, dann kannst du das c auch 'hinten drannhängen',
-
Thread
Wie mache ich eine Textausgabe 8Bit auf Display?
Meinst du so was: [c] void LCD_puts (const char *lcd_string) { while (*lcd_string) { Zeichenausgabe (*lcd_string++); // String auslesen -> LCD } } [/c] Wobei ich unterstelle das du eine "Zeichenausgabe
ganze auch mit Array Syntax schreiben. Ev. hilft dir das besser zu verstehen, was da abgeht. [C] void LCD_puts (const char *lcd_string) { int i = 0; while( lcd_string[i] != '\0' ) { Zeichenausgabe( lcd_string[i] ); i++; } } [/C] Mit etwas Glück optimiert der Compiler
-
Thread
Kommazahl auf Display anzeigen
die seite müsste mir helfen oder.? http://www.c-howto.de/tutorial-strings-zeichenketten-stringfunktionen-verketten-strcat.html
drei Schreibweisen für ein und diesselbe Zahl. Jetzt ist es an der Zeit nach Arithmetikoperatoren in C und ASCII zu googeln um das Ganze abzurunden. Hinzu kommt noch die Darstellung von Strings in C ('\0' am Ende). > > und wofür steht > > Frank M. schrieb: >> buffer[0] = tausender + '0'; > >
-
Thread
strcpy mit automatischer Längenprüfung
eventuell schon passiert. Besser strncpy_s (bzw. strcpy_s) verwenden: http://en.cppreference.com/w/c/string/byte/strncpy http://en.cppreference.com/w/c/string/byte/strcpy
Manche programmieren lieber defensiv: get_the_input(*quelle,*ziel) { char c; c = quelle[30]; quelle[30] = NULL; strcpy(ziel,quelle); quelle[30] = c; } /* Entweder wird ziel-String = quelle-String (mit jeweils abschließender NULL), oder
-
Thread
Need help with reading from i2c bus
import smbus import requests import time bus = smbus.SMBus(1) address = 0x0F x = bus.read_i2c_block_data(address, 0xD0,3) voltagein = x[2] <<8 | (x[1]) #print (x[1]) #print (x[2]) voltagein_string = "%i" % voltagein print (voltagein_string) bus.close() del x del bus [/code]
() del x del bus time.sleep(2) bus = smbus.SMBus(1) address = 0x0F x = bus.read_i2c_block_data(address, 0xD1,2) print ("x") print (x) #powerextern = x[0] | (x[1]<<8) powerextern = (x[0] * 256) + x[1] pwerextern_string = "%i" % powerextern print ("powerstring") print (pwerextern_string
-
Thread
Atmega32, Poti, ADC, Poti-am LCD ausgeben
auf Ende der Konversion return(ADC); } [/c] Das Ergebnis / den Aufruf könntest Du (z.B. für ADC-Kanal 1)so gestalten: [c] char outString[10]; ... sprintf(outString, "%u", ReadADC(1)); lcd_print(1,0,outString) [/c]
pfuschen und tricksen K.A., was Du mit "pfuschen und tricksen" meinst - aber das geht ganz normal: [c] #include <stdlib.h> #include <avr/io.h> #include <string.h> #include <stdio.h> #include <util/delay.h> #include "lcd.h" char outString[10]; uint8_t printposy; uint16_t adc0_wert
-
Thread
serielle Schnittstelle Problem nach dem Einschalten
@Mike: Der µC fängt an, korrekte Strings auzugeben, dann nach ca. 1/s kommt ein verstümmelter String, danach kommen nur noch fehlerfreie Strings. @Karl-Heinz: Das ist klar, der letzte String kann u. U. abgewürgt
Ablauf: Der µC gibt laufend korrekt Strings aus. Plötzlich erscheint ein verstümmelter String, danach geht alles normal weiter. Es geht ausschliesslich darum, ob nach einem Neustart die Ausgabe fehlerfrei durchläuft
-
Thread
C# Serielle Schnittstelle - Auswertung der Daten
: private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { string data = serialPort1.ReadExisting(); } So jetzt habe ich die jeweils anliegenden Daten im String "data" gespeichert. Ich möchte jetzt jedes einzelne Byte was im String "data" mit einer switch
für den Beitrag von Dir. So ganz verstehe ich das leider nicht was Du das so vor hast... Ich bin C# Frischling und habe bis jetzt nur in C programmiert! Mfg Georg Franz
-
Thread
UART Sample Programm M16C
0x04; // Enable UART0 receive interrupt, priority level ENABLE_IRQ; // Enable all interrupts u0c1 = 0x05; // UART0 transmit/receive control register 1 } /************************************************************************** Description: The following sends a text string to the
************************************************************/ void text_write ( _far char * msg_string) { char i; for (i=0; msg_string[i]; i++){ // This loop reads in the text string and while(ti_u0c1 == 0); // puts it in the UART 0 transmit buffer u0tb = msg_string[i]; } }
-
Thread
avr-gcc stört sich an uint_8 und uint
die Deklaration sein (ist es aber nicht). > lcd_funktionen.c: In Funktion »float_zu_char«: > lcd_funktionen.c:50: Warnung: Funktion liefert Adresse einer lokalen > Variablen zurück Das wurde schon mal angemäkelt! Die Variable string existiert nicht mehr nach
Funktion »lcd_setcursor« lcd_funktionen.c:26: Warnung: Implizite Deklaration der Funktion »lcd_string« [/code]
-
Thread
Serielle Schnittstelle Visual Studio C#
ByteArray = new byte[count]; serialPort1.Read(ByteArray, 0, count); string data = System.Text.ASCIIEncoding.Default.GetString(ByteArray, 0, 5); float f = float.Parse(data); txtBox1.Text = f.ToString(); } private void
ByteArray = new byte[count]; serialPort1.Read(ByteArray, 0, count); string data = System.Text.ASCIIEncoding.Default.GetString(ByteArray, 0, 10); float f = float.Parse(data); txtBox1.Text = f.ToString(); } private void
-
Thread
double in string Probleme
Hallo, zunächst: Strings in C werden mit '\0' (NUL) terminiert. Um also in einem string eine "200" zu speichern, benötigst du schonmal mindestens 4 byte. Außerdem wenn deine Ausgabe 8 Zeichen lang sein soll, dann muss
brauchen. Es ist immer besser, sich vorher Gedanken über mögliche Puffergrößen für zu erwartende String-Längen zu machen, denn C hat ja keine Stringverarbeitung wie Pascal. W.S.
-
Thread
Keine vollst. Übertragung der Strings über UART
probiert Wozu? [C] while(1) { get_string(); if(uart_string_complete == 1) { strcpy(stringbuffer, uart_rx_buffer); send_string(stringbuffer); uart_string_complete = 0; } } [/C] machs doch nicht komplizierter als notwendig! Jetzt musst du nur noch deine get_string richtig stellen.
-
Thread
Mehrere Prozesse nacheinander in C# ablaufen lassen
Stacktrace könnte schon zur Lösung > beitragen ;) > Ebenso wie du die Klasse aufrufst... Aufruf: [c] string parameter = "-i " + "\"" + GlobalerName + "\"" + " -target dvd -y -b " + Convert.ToString(vbitrate) + "k " + exportpath + "tobeconverted.mpg";
So geht's: [c] private void StartProcess(string ProcName, string Arguments) { ProcessStartInfo psi = new ProcessStartInfo(ProcName, Arguments); psi.RedirectStandardError
-
Thread
Thread Programmierung mit VS2010/C++
Threading::Thread::Sleep(5000); //MessageBox(NULL, L"TESSSSSSSSST.", L"", MB_OK); mciSendString(L"open c:\\sound.mp3 alias mySound wait", NULL, 0, 0); mciSendString(L"play mySound from 0", NULL, 0, 0); Wie gesagt - der Thread wird aufgerufen und wartet brav seine 5 s ab, um den Code anschließend
Threading::Thread::Sleep(5000); > //MessageBox(NULL, L"TESSSSSSSSST.", L"", MB_OK); > mciSendString(L"open c:\\sound.mp3 alias mySound wait", NULL, 0, 0); > mciSendString(L"play mySound from 0", NULL, 0, 0); > > Wie gesagt - der Thread wird aufgerufen und wartet brav seine 5 s ab, um > den
-
Thread
ATmega 8 hängt sich auf
Zeit edit_timestamp = timestamp; if( edit_time ) edit_timestamp = new_timestamp; lcd_string( itoa(edit_timestamp.tday, ASCII, 10) ); lcd_string( itoa(edit_timestamp.nday, ASCII, 10) ); lcd_string( "." ); lcd_string( itoa(edit_timestamp.tmon, ASCII, 10) ); lcd_string( itoa(
[c] ISR(INT_KEYBRD){ keybrd = twi_read( IO_ADDR, 0x00 ); [/c] Oh oh oh ! Wenn dann im Mainprogramm auch I2C gemacht wird, krachts. I2C ist quasi ein Device, wie z.B. das LCD. Ein Transfer
-
Thread
C++ Code in C linken
C aus C++ heraus aufrufen ist problemlos. Andersrum wird interessant. Du kannst in C++ eine Funktion bauen, die per extern "C" { ... } als C-kompatible Funktion den Zwischenhändler mimt.
ist: [c] #ifdef __cplusplus #include <string> std::string meineStringFunktion(); ... #endif [/c] Falls Du noch Fragen dazu hast, lies bitte erst mal die Beschreibungen zum Umgang mit diesem Define
-
Thread
Auswertung eines AT-Befehls in C unter Linux (AT+COPS?)
Quelltext: [code] char string1; netzabfrage(); for(;;){ bytes = read_port(&fd_ser,puffer); if( bytes > 0){ for (i = 0;i< bytes;i++){ //printf("%c",puffer[i]); string1 = puffer
} ptr = strtok(NULL, ","); // printf("%c",string1); // DEBUG } printf ("%s", netzname); } log_meld("Netz abgefragt.\n"); return 0; } [/c] Die grottige Formatierung wird dadurch aber auch nicht besser.
-
Thread
C/Zeichen aus Array vergleichen?
Wenn du einzelne Buchstaben vergleichen willst, dann vergleiche auch nur Buchstaben und keine Strings:[c]if (element == 'A')[/c]
berechnet der Compiler beim Kompilieren, das Programm wird also nicht größer. [c]while (i<sizeof(program)-1)[/c] "sizeof" ist in C mit Vorsicht zu genießen. Hier funktioniert es, aber wie wäre es so: [c]for (uint8_t i = 0; program[i] != '\0'; i++) {[/c] Schließlich wird der String
-
Thread
UART Interrupt
Myster L. schrieb im Beitrag #6434128: > Auch bei einem String mit bis zu 12 Zeichen? Ja weil im Empfangsregister nur 1 zeichen Platz hat. Ein Interrupt Aufruf = 1 Zeichen. Schau ins Datenblatt vom µC. Da gibts kein Platz für nen String, nur 1 Zeichen.
dann ja schon mal alle in dem Array haben. Meine Verarbeitung basiert aber darauf, dass es ein String ist. Da direkt einen String zu verwenden ging nicht so einfach, also brauche ich ja theoretisch nur noch ne möglichkeit das Array jetzt in nen String zu konvertieren, richtig?
-
Thread
MSP430 IAR: String1 in String2 Kopieren??
> Also damit der GCC konstante Strings erzeugt, muss ich doch "const" vor > die Deklaration schreiben. Ein String Literal, wie "Dies ist ein String" ist per C Definition konstant. Dein Programm hat kein Recht da drin irgendwelche
main() { mystrcpy( Text1, Text2 ); } [/C] verbraucht bei -Os 208 Bytes Das hier [C] #include <avr/io.h> #include <string.h> char Text1[] = { "Ein Text1" }; char Text2[] = { "Ein Text2" }; int main() { strcpy( Text1, Text2
-
Thread
5 NTC messen mit arduino
(0, 1); //lcd.print("Bleibt gesund"); } String getTime() { clock.getTime(); // Zeit vom Chip abfragen String t = String(clock.dayOfMonth, DEC); t += String("."); t += String(clock.month); t += String("."); t += String(clock.year
) { } if (millis() - lastWrite > WRITE_INTERVAL) { String line = String(getTime()) + ";" + String(T0) + ";" + String(T1) + ";" + String(T2) + ";" + String(T3) + ";" + String(T4); writeToSD(line); lastWrite = millis(); } } void writeToSD(
-
Thread
C# Problem mit Serial Port Performace
(int i = 0; i < Liste.Count; i = i + 3) { sw.WriteLine(Liste[i].ToString("0000") + " " + Liste[i + 1].ToString("0000") + " " + Liste[i + 2].ToString("0000")); } sw.Flush(); sw.Close(); } private void arbeiterMethode
Enter Taste gedückt habe die eins, zwei und drei werte in eine Datei schreiben (in Methode Stop()): [c] static void Main(string[] args) { UART_c uart = new UART_c(); Console.ReadLine(); uart.Stop(); } [/c] Jetzt zu den ergebnissen:
-
Thread
c++ 11/14/17?
uniform initialisation" nicht der alten Initialisierung gleichwertig ist: Das ist OK: [code] char c('a'); std::string s( 1, c ); assert(s == "a"); [/code] Das nicht: [code] char c{'a'}; std::string s{ 1, c }; // wird als initializer-list betrachtet assert(s == "a");
nicht! Es geht hier ums Prinzip und nicht um dieses konkrete Beispiel. Aber mal ein Beispiel. [C] void testfunc(const char *p, size_t len); ... ... const char *p="Mülleimer"; testfunc(p, strlen(p)); ... std::string s("Mülleimer"); testfunc(s.c_str(), s.length()); ... [/C] wenn ich
-
Thread
C++ Variablen Container?
verschiedenen Datentypen zu speichern. Hier ein Beispiel wie ich mir das im groben vorstelle. [c]container->Set("variable_1", int, 1234); container->Set("variable_2", string, "test"); int a; a = container->variable_1; // a == 1234 string b; b = container->variable_2; // b == test[/c
pardon schon spät .. std::map<std::string, object *> m;
-
Thread
C++ Frage zu Konstruktor
gtkmm-documentation/sec-helloworld.html Aber es funktioniert... Worum handelt es sich denn hierbei? [c] HelloWorld::HelloWorld() : m_button("Hello World") // creates a new button with label "Hello World" {... } [/c] Danke :)
braucht. Die Welt braucht kein C++. Aber C++ braucht diese initialization list. Ohne gehts einfach nicht. Oliver
-
Thread
kann keine Datein in C# erstellen
System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string a = @"C:\test.txt"; FileStream fs = new FileStream(a, FileMode.Create); fs.Close(); } } }[/code] es kommt KEINE Exception
...an die Pfade kommt man in C# übrigens so: [code] string desktopPath=Environment.GetFolderPath(SpecialFolder.DesktopDirectory); string AppData=Environment.GetFolderPath(SpecialFolder.ApplicationData); [/code] msdn - Environment.SpecialFolder-Enumeration
-
Thread
C++/CLI Programmpause
C# aus (sehr generisches Beispiel, in deinem Fall ist das einfacher): [code] public static void SetControlPropertyThreadSafe(Control control, string propertyName, object propertyValue) { if (control.InvokeRequired
Ansonsten erhalte ich keinen Wert. Warum und wieso, keine Ahnung. Timesout habe ich schon. [c] comPort1 = Convert::ToString(totdelport);serialPort1 = gcnew SerialPort(comPort1,9600,Parity::None,8,StopBits::One); serialPort1->ReadTimeout = 1500; serialPort1->Open(); Byte1 = 0x73; Senden
-
Thread
C: sizeof (zeigerinhalt)
Kompilierzeitpunkt ausgewertet. Daher wirst du den niemals zur Fehlerkontrolle einsetzen können. Arrays musst du in C fast immer mit einer Längenangabe ausstatten, sonst ist diese Information verloren. Die Ausnahme sind Strings (char[]), die definitionsgemäss per Nullbyte abgeschlossen werden. Das lässt sich natürlich
op) { something_i<text>::do_something(op); } .... do_something("Hallo Welt"); [/c] Würde in den Beispiel ein strlen einsparen, und trotzdem mit "\000" innerhalb der String-Konstante funktionieren. Aber wenn man eh C++ nimmt, geht das alles sowieso viel besser mit std::vector,
-
Thread
I2C-, USART-, EEPROM-Test für ein Feedback
void init_twi(void); void init_serial_1(void); void init_serial_2(void); void sendChar_1(char c); void sendChar_2(char c); void sendString_1(char *text); void sendString_2(char *text); */ /* Byte */ uint8_t eeFooByte EEMEM = 13; /* Wort */ uint16_t eeFooWord EEMEM = 12345; /* float *
USART_PMODE0_bm | USART_PMODE1_bm | USART_SBMODE_bm); PORTE.DIR = 0x08; } void sendChar_1(char c) { while( !(USARTE0_STATUS & USART_DREIF_bm) ); USARTE0_DATA = c; } void sendString_1(char *text) { while(*text) { sendChar_1(*text++); } //noch CR
-
Thread
Windows Message für COM/USB aktivität in VB
funktionieren die? Ich habe jetzt ein Klassenmodul namens multiclass [pre] Public Event SendString(ByVal MessageString As String) Public Sub pseudoget() Dim thisstring As String thisstring = "Waaaaa" RaiseEvent SendString(thisstring) End Sub [/pre] In einem Modul habe ich dann
So, Nachrichten Werfen geht jetzt: multiclass-Objekt [pre] Public Event SendString(ByVal MessageString As String) Public Sub pseudoget() Dim thisstring As String thisstring = "Waaaaa" RaiseEvent SendString(thisstring) End Sub [/pre] Hauptteil [pre] Dim WithEvents
-
Thread
DotMatrix 16x4 in C ansteuern
Strings an einer bestimmten Cursorposition // String liegt im RAM void lcd_string_xy( uint8_t x, uint8_t y, const char *data ); ///////////////////////////////////////////////////////////////////////
> [c] > #define LCD_PORT PORTC > #define LCD_DDR DDRC > [/c] Auch wäre es gut zu wissen, welcher AVR da am Werk ist. Einige Prominente haben am Port C das JTAG Interface liegen, das per Default ab
-
Thread
[C] Integer in String umwandeln
auskommentiert werden, wenn kein Compiler verwendet wird, der nicht benötigten Code nicht compiliert. [c]char *strRalign(char *str, uint_fast8_t minlenght)[/c] Diese Funktion richtet die erzeigten Strings nach rechts aus. minlenght gibt dabei die Länge des zu erzeugenden Strings an. Ist der String länger als minlenght, so wird der String nicht verändert. Da alle Funktionen den Pointer zum String zurückgeben, kann ein nach rechts ausgerichteter String in einer Zeile erzeugt werden: [c]strRalign(uint16str(str,value),6);[/c]
-
Thread
fstream/string als extern in C++
Erstens brauchst du natürlich ein #include <string>, und zwar vor dem extern..., und zweitens heißt der Typ nicht string, sondern std::string. Evtl hast du die extern-Deklaration vor dem #include oder vor einem using namespace std? Wobei das
using std::string; und gut is ;-)
-
Thread
C Anfänge: User input string, fgets(), max. Arraygröße
Eingabe. Wie löst man das am geschicktesten/elegantesten? Ich habe bin mit Hilfe des Buches (C Primer Plus) auf folgenden Ansatz gekommen, und würde mich über Feedback freuen: [c] #include <stdio.h> #include <stdlib.h> #include <string.h> void getInput(char * myName); #define STLEN
allgemein erstmal scanf_s verwenden - schon mal sicherer z.B. [c] char string[4]; scanf("%3s", string); [/c] oder [c] char string[4]; scanf("%*s", sizeof(string)-1, string); [/c]
-
Thread
ATMEGA UART Empfang mit Verzögerung
ist { } UDR0 = Zeichen; // Zeichen senden. return 0; } void UART0_String_senden (char *String) { while (*String) // Bis String '\0' erreicht. { uart0_putc(*String); String++; _delay_ms(1); } } [/c
recht im RXC-Interrupt wird an der Datenrichtung des Tranceivers NICHT rumgefummelt! Etwa so. [c] void uart0_puts (char *String) { RS485_TX_EN; while (*String) { uart0_putc(*String); // String bis zum '\0' rausschreiben. String++; } UCSR0A = 1<<TCX0;