-
Thread
PIC18F4680 Probleme mit USart
usart_putc(*s++); } } [/c] mit [c]#define CLOCK 10000000ul void main() { usart_init(9600); while(1) { usart_puts("Hallo Welt\n"); } }[/c] Wenn ich einen String aus einer Variable nehme, zb char string
, mit der ich schon arbeiten kann, aber noch nicht zufrieden bin: Eine Senderoutine für array-strings: [c] //array aus RAM senden void usart_puta(char *s) { while(*s) { usart_putc(*s++); } }[/c] und für feste Strings aus dem ROM wie zb usart_puts("test123"); [c] //string aus ROM
-
Thread
if abfrage von übergebenen string
"A" ist in C ein String, und der besteht aus /zwei/ chars, nämlich einem 'A' und einem Nullterminator '\0'. Was Du vermutlich übergeben und auswerten willst, ist nicht ein "A", sondern ein 'A'. Letzteres wäre nämlich
STOP, mach es wie Jan geschrieben hat mit strcmp()! Die Programmiersprache C kennt keine Strings im eigentlichen Sinne, wenn Du mit mit Zeichenfolgen hantierst, dann steckt da immer ein Array von Chars dahinter. Es wird also wie ein Array behandelt. Machst Du nun einen Vergleich
-
Thread
scanf ("%c%*c",&Antwort)
scanf ("%c%*c",&Antwort); // %c%*c ??? while(Antwort == 'j'); warum wird hier nicht %c alleine genutzt? was genau passiert hier? ich gebe doch als zweiten parameter von scanf ausschließlich &Antwort an.
RW schrieb: > scanf ("%c%*c",&Antwort); // %c%*c ??? > while(Antwort == 'j'); > > warum wird hier nicht %c alleine genutzt? Weiß man nicht. Vermutlich, weil es sich um eine Konsolenanwendung handelt, und der Programmierer
-
Thread
Hangman in C++
benutz mal google!!! hangman c++ da werden sie geholfen!!!! =) http://www.tutorials.de/forum/c-c/202581-hangman-wort-auf-buchstabe-ueberpruefen.html
Für sowas C++ ist Perlen vor die Säue - in Basic hab ich sowas letztens in der halben Mittagspause geschrieben ;-)
-
Thread
LCD-Problem (AVR ATMega644)
mit einer LCD-Steuerung eines Hitachi-kompatiblen LCDs. Im angehängten Code befinden sich in der lcd.c die init(), die send_data() und die send_cmd() Funktion. Wenn ich folgendermaßen einen String aufs Display bringen möchte funktioniert das wunderbar: [c]char hallo[lcd_max_col] = {'H','A','L','L','O','\0'}; lcd_send(hallo); //es erscheint HALLO [/c] Wenn ich jetzt aber mittels [c]lcd_send("Hallo!");[/c] Hallo! schreiben möchte, dann erhalten ich nur schwarze Kästchen. Im Detail ruft die funktion lcd_send() für die größe des Strings die
-
Thread
Umwandlung von Integer auf float und dann in string
Printf der avr C Library kann nur dann Floats ausgeben, wenn man dazu eine spezielle Library einbindet. Füge in das Makefile ein: [code] # Enable floating-point support in printf LDFLAGS += -Wl,-u,vfprintf -lprintf_flt
Moin, Was ist denn mit der Zeile: [c]f1 = f2;[/c] Wozu ist die gut? Gruss WK
-
Thread
Problem durch Optimierung -Os
dabei eher ein Versehen aus Mangel an Erfahrung, da dies auch mein erstes aufwändigeres Projekt in C ist. Was genau meinst du im Bezug auf die Verwendung von 'unsigned char[]' und in welchem Teil genau? Im Hinblick auf das Übergeben des Pointers für den String hätte ich doch bei einer Deklaration
// FALSCH! "Hallo" ist eine Konstante, // f() sichert aber nicht zu, den String // nicht zu ändern! fconst( "Hallo" ); // ok [/c]
-
Thread
Wie: makefile und Leerzeichen im Verzeichnisnamen
in Anführungszeichen! Wie kommt man nur auf so > eine Idee die Anführungszeichen mitten in den String zu setzen. Da würde > ich als Makeprogramm auch "Nöööö" sagen. Ach, Windows kann das. Zumindest je nach Mondphase funktionieren so Dinge wie [code] dir "C:\Program Files"\"Windows"" "Defender
without extension). TARGET = main include mk_target.txt ... mk_target.txt: SRC = $(TARGET).c _i2clcd.c _i2cmaster.c _std_lib_lcd.c Hilfsdatei _i2clcd.c: # include <c:\ra_ide\src\i2clcd.c ></ File > Vielleicht geht so was Ähnliches die Batch-Datei müsste unter Windows Leerzeichen
-
Thread
Probleme beim Schreiben ins EEPROM (C)
der main.c [c] #include <avr/io.h> #include "lcd.h" #include <util/delay.h> #include <stdlib.h> #include <avr/eeprom.h> int main(void) { DDRD = 0b00000000; lcd_init(); uint8_t X = 0;
{} lokal itoa( X, Buffer, 10 ); lcd_clear(); // ... ausgeben lcd_string( Buffer ); eeprom_write_byte(&eeFooByte, X); while(!(PIND & (1<<PD7))) { } } } return 0; } [/c] Ich danke schonmal für eure Hilfe
-
Thread
UART bei Atmega88
Fehlermeldung: avr-gcc.exe -mmcu=atmega128 -Wall -gdwarf-2 -O0 -MD -MP -MT UART.o -MF dep/UART.o.d -c ../UART.c ../UART.c: In function `main': ../UART.c:39: warning: implicit declaration of function `outp' ../UART.c:39: error: `RXCn' undeclared (first use in this function) ../UART.c:39: error: (
Zur Veranschaulichung: // sendet einzelnes Zeichen an PC void USART_transmit (unsigned char c) { // warte bis Senden möglich while (!(UCSR0A & (1<<UDRE0))) {} // sende übergebenes Zeichen UDR0 = c; } // sendet Zeichenkette an PC void USART_transmit_string (unsigned char *string
-
Thread
avr-gcc, Eigenartiges Schleifenverhalten
dann der Fehler wenn ich einfach [c] char mystring[6] = "ABCDEF"; [/c] verwende?
? > > (Wenn das hier zu Off-Topic ist, stelle ich die Frage an anderer Stelle > nochmal.) C-Compiler denken einfach: hätte der eine String gewollt, hätte er keine Länge angegeben.
-
Thread
sprintf() und char*
Hallo, in meinem Programm funktionert das kopieren des strings irgendwie nicht, obwohl der Rückgabe Wert der sprintf() richtig ist, an was könnte das liegen??? [c] char* ar; int tmp = 0; tmp = sprintf(ar,"test"); // tmp ist dann 4 [/c] Gruß
überschreibst dein sprintf Speicherbereiche, die nicht dafür reserviert sind. Besser so (Speicher für den String reservieren und die Adresse des Speicherbereichs dem sprintf geben): [c] char ar [5]; int tmp = 0; tmp = sprintf(&ar[0],"test"); // tmp ist dann 4 oder tmp = sprintf(ar,"test"); // tmp ist
-
Thread
Arduino: OLED Display löscht Kommastelle nicht.
spannung = messung / 204.8; double strom = -45.411 + 44.5642 * spannung; Serial.println(strom, 5); String stromstr = String(strom, 5); settings(); u8g2.drawStr(10, 10, stromstr.c_str()); u8g2.sendBuffer(); delay(100); }[/c] Hoffe der ist noch nicht zu lange. Funktioniert der Link gar nicht
strom/10, abs(strom%10)) settings(); u8g2.drawStr(10, 10, tmp_string); u8g2.sendBuffer(); delay(100); } [/c]
-
Thread
LCD an Atmega8 PortC
sic_c |= (1<<LCD_PIN_RS); // Data: RS = 1 LCDPORT = sic_c; // send high nibble toggle_enable_pin(); // send low nibble sic_c = c; // save original c sic_c = sic_c
Grundlagen C.
-
Thread
Geschwindigkeitsfrage AVR auf SD
auslesen eine .txt Datei brauchte, dachte ich mir die 8bit Daten in ASCII zu formatieren und als String in die .txt zu schreiben. Gibt es eine Funktion die integer in das zugehörige ASCII Zeichen wandelt? Idealerweise schneller wie wenn ich den Integer in einen String wandle und diesen auf die SD
Brunner schrieb im Beitrag #3521071: > OK, eine extreme Variante von Multitasking. Ist das in ASM oder C > gemacht? Weil wenn es denn WIRKLICH SOO zeitkritisch ist, muss es ja > fast ASM sein. 100 Punkte! :-) Ist natürlich Assembler. In C wäre das zu umständlich, weil z.B. das SRAM komplett für den
-
Thread
STM32 USB-MIDI
idProduct : 0x5012 bcdDevice : 0x0000 iManufacturer : 0x01 (String Descriptor 1) Language 0x0409 : "Nuvoton" iProduct : 0x02 (String Descriptor 2) Language 0x0409 : "USB MIDI STM32 " iSerialNumber : 0x03 (String Descriptor
Descriptor ----------------- Error : ERROR_GEN_FAILURE -------------------- String Descriptors ------------------- ------ String Descriptor 0 ------ bLength : 0x04 (4 bytes) bDescriptorType : 0x03 (String Descriptor) Language ID[0]
-
Thread
Variabelnnamen evtl. durcheinander weil Speicher voll?
,Genauigkeit und Resourcenbedarf der µC rechnet.
C-Code nach grenzverletzungen durchsuchen.....
-
Thread
falsches Ergebnis auf Lcd-Display nach Division mit einer Variable.
Es gibt auch die div function in C ...
dazu hinfügen, dass das Problem nur mit der Division auftritt. Auch wenn ich integer Variablen (int c; und int d; ) benutze wie z.b. [code] char out[10]; c = 20; d = (2000/c); itoa(d,out); [/code] und dann lasse ich mir out[0], out[1] und out[2] anzeigen, kriege ich nur falsche Werte ("/",
-
Thread
HTML file auf Mikrocontroller
du am Server erst einmal einen vollständigen String zusammenbaust, denn du dann weggibst. Das brauchst du nicht. Dein Client kann ja sowieso nicht unterscheiden, ob du den String zuerst zusammengesetzt hast oder ob du ihn auf mehrmals weggeschickt
Nullpointer sein? Ein Nullpointer ist ein Pointer auf NULL (in vielen Systemen äquivalent zu 0) [c]int *p = NULL[/c] > Wir haben dem in der Schule immer so gesagt. ... > Oder heisst dieses Zeichen etwa anders? Nullzeichen oder "String-ende-zeichen" aber Nullpointer ist schon belegt...
-
Thread
AVR nach watchdog-Einsatz defekt?
der entsprechenden Register. Wäre das das so in etwa was du gemeint hattest? (Pseudocode) [c] if(eingegengener String == erwarteter String) { watchdog einschalten while(1) { } } [/c] @ Karl M. Danke für den Tipp, der war mir aber nicht neu ;)
der Software zu Implementieren. Leider funktioniert es nicht wie gewünscht. Hier mal mein Code: [c] if (strstr(Received_String, "RST")) { wdt_enable(WDTO_15MS); while(1) { } } [/c] Leider hängt der Controller dann komplett fest und
-
Thread
An alle Arduino freaks ;)
> char inString[5]; // Space for the string > char string2[] = "start\0"; > ... > if (inString==string2) Diese if-Bedingung ist nie wahr. Sollte der C-Compiler aber anmosern. C-Grundlagen lesen. Stringvergleiche
In dem Beispiel wurden die Strings aber auch nicht als "char *", wie sie in C üblich, sondern als C++ "String" Klasse deklariert. Diese Klasse hat dann wahrscheinlich einen Haufen Operatoren wie "=" und "==" überladen, damit Zuweisungen
-
Thread
STM32 Speicherproblem?
char *c) { while(*c) u_putchar(*c++); // send string char by char } #ifdef T_DEBUG uputs("START\r\n"); #endif [/c] Sobald ich alle (oder einige) Debug-Ausgaben ausschalte, funktioniert das Programm
gültig ist. Versuchs entweder mit einer fixen Größe oder einer vernünftigen Endbedingung für den String, z.B. mit (*c == '\r').
-
Thread
Suche ein Word in einer Kette
Das der Code nicht funktioniert liegt an der Zeile: [c]Resultat[i]= MYWord[i];[/c] Wenn das Wort nicht am Anfang los geht, dann steht in Resultat[0] vermutlich eine 0 und der String ist damit beendet.
Nimm zum Einbinden von Code in Zukunft Bitte: [code][c] [/c] [/code] Die Formatierung oben ist furchtbar.
-
Thread
AVR: C++ und Instanzen von Klassen im Flash
(von deiner Klasse "gui_button") diese Klasse greift intern über einen index auf ein Array mit Strings (im Flash) zu. [c] StdButton okbutton(IndexOf_OK); StdButton cancelbutton(IndexOf_CANCEL); [/c] intern die Funktion setText überschreiben! und Sie darf von aussen nicht mehr zugänglich sein!!! [c] ArrayOfFlashStrings[]={"Ok"}, {"Canncel"}; class StdButton: protected gui_button { StdButton(int index); } StdButton::StdButton(int index) { setTextFromFlash(ArrayOfFlashStrings[index
-
Thread
Eclipse und WinAVR
super. Allerdings habe ich noch Probleme beim Einbinden der LCD-Funktionen (2x16 Zeichen LCD, lcd.c von P. Fleury). Wenn ich per lcd_putc ein Zeichen ausgebe kommt es korrekt an, wenn ich aber lcd_puts für einen String benutze steht nur Mist auf dem Display. Ich habe bei jedem Aufruf des avr-gcc noch
z.B. so: #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <avr/io.h> #include <string.h> #include "projekt.h" #include "ft232r.c" #include "systimer8.c" #include "usart1.c" #include "pcf8583.c" #include "i2c.c" #include "t6963c.c" #include "glcdausgabe.c" #include "softwareuhr.c
-
Thread
C++-support
Habe mit C++ auf dem AVR schon ein bisschen gearbeitet. Für meinen Teil habe ich new/delete nicht sehr vermisst. Was mich dazu gebracht hat zu C zu wechseln ist, dass WinAVR das C++ Debugging nicht unterstützt.
Seit wann interessiert sich WinAVR dafür, ob man C oder C++ debuggt? Freilich geht das mit C++.
-
Thread
String sachgerecht tranchieren - how to-
+1]); [/c] in 2 Teile zerlege. Obschon eine Ausgabe zu debuggingzwecken zeigt, das beide Strings enthalten, was sie sollen, klappt die spätere Auswertung nicht. Vermutlich ist das eh alles viel zu kompliziert
auch das hier weiter http://www.mikrocontroller.net/topic/69421#562051 ohne dass ich viel über Strings in C schreiben muss :-)
-
Thread
Problem mit make unter win7
ffunction-sections -fdata-sections -Wundef -MMD -MP -MF .dep/main.o.d main.c -o /main.o main.c: In function 'main': main.c:78: warning: passing argument 2 of 'read_string_flash' discards qualifiers from pointer target type include/project_func.h:101: note: expected 'char
warning: passing argument 2 of 'read_string_flash' discards qualifiers from pointer target type include/project_func.h:101: note: expected 'char *' but argument is of type 'volatile char *' main.c:183: warning: passing argument 2 of 'read_string_flash
-
Thread
Bluetooth LE BLE Daten von Powermeter entschlüsseln
BluetoothGattCharacteristic bluetoothGattCharacteristic = bluetoothGatt.getService(UUID.fromString((String)"0000fff0-0000-1000-8000-00805f9b34fb")).getCharacteristic(UUID.fromString((String)"0000fff2-0000-1000-8000-00805f9b34fb")); bluetoothGattCharacteristic.setValue(arrby);
BluetoothGattCharacteristic bluetoothGattCharacteristic = > bluetoothGatt.getService(UUID.fromString((String)"0000fff0-0000-1000-8000-00805f9b34fb")).getCharacteristic(UUID.fromString((String)"0000fff2-0000-1000-8000-00805f9b34fb")); > bluetoothGattCharacteristic.setValue(arrby); >
-
Thread
strlen() und __flash (Atmel Studio7)
http://www.cplusplus.com/reference/cstring/strlen/ [pre] Returns the length of the C string str. The length of a C string is determined by the terminating null-character: A C string is as long as the number of characters between the beginning of the string and the terminating null
Einfach mal lesen... strlen gibt die Laenge des C-Strings ohne Stringbegrenzer zurueck, sizeof gibt die Groesse des Arrays zurueck. Das sind verschiedene Dinge. [c] #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) {
-
Thread
String als Rückgabewert möglich???
// 1 string[1] = 0x33; // 3 string[2] = 0x35; // 5 string[3] = 0x00; // String-Abschluß Solche Strings habe ich etliche im Programm (auch ein paar größere) die zusammen sehr viel RAM verbraten. Kann man einen lokalen String eines Unterprogramms irgend wie an die aufrufende Funktion übergeben? Oder ist es generell erforderlich, einen globalen String hierfür zu verwenden? Habs schon mal mit return(string), return(*string
-
Thread
1000 er aufteilen & in Array packen
Dass du keinerlei Ahnung vom Umgang mit Strings in C hast.
Wie baue ich meinen "String" (Temperatur :) in "itoa" mit ein.. [c] itoa(temp,"Temperatur : "temperature,10); [/c]
-
Thread
#defin - als Char und String..
Lese dich über C-Strings ein und den String Funktionen aus string.h. [c] /* Angabe fuer 16 Zeichen LCD + '\0' */ #define LCD_ZEILEN_LAENGE 16+1 /* Array fuer den Zusammenbau der LCD-Zeile */ char lcdText[LCD_ZEILEN_LAENGE
Der Preprozessor hat damit an sich erstmal nichts zu tun. Er macht aus dem obigen folgendes: [C] lcdouts ("INIT:"'a'); # Fehler [/C] und das ist nicht zulässig. Man kann zwar zwei Strings konkatenieren, etwa in der Art: [C] lcdouts ("INIT:""a"); [/C] aber nicht einen String und einen int
-
Thread
usart strings senden problem
ralph wrote: > so hier ist der Code Und warum als .txt? Wenn schon C-Code, dann bitte als .c!
[c]UCSRC |= (1<<URSEL) | (1<<UCSZ1) | (1<<UCSZ0);[/c] Das ist eine ganz schlechte Idee. Konkret steht da nämlich im Augenblick: [c]UCSRC = UBRRH | ((1<<URSEL) | (1<<UCSZ1) | (1<<UCSZ0));[/c] Gut, UBRRH
-
Thread
Code funktioniert- Verbesserungsvorschlag?
strcpy(temp_string, ptr); l = atoi(temp_string); ptr = strtok(NULL, ":"); strcpy(temp_string, ptr); receive_value[l] = atoi(ptr); } } [/c]
Ene kleine Fehlerquelle: [c] i = atoi(ein_string_von_aussen); foo[i] = atoi(ein_anderer_string); [/c] verlagert die Verantwortung für das Einhalten der Arraygrenzen auf das Programm, das die Strings sendet. Geht da irgendetwas
-
Thread
Ein Programm, zwei Sprachen
n = 0; while(*(str++)) ++n; C_return(n);")) [/pre] Zugriff auf eine C-Variable my_version_string [pre] (print (foreign-value "my_version_string" c-string)) [/pre] Direkter Aufruf von Funktionen in Libraries [pre]
Du linkst das Chicken-Runtimesystem inklusiv deiner Scheme/Lisp-Applikation zu deinem C-Programm hinzu. Mit der Funktion [pre] CHICKEN_eval_string (char *str, C_word *result) [/pre] wertest du dann einen übergebenen String aus und bekommst das Ergebnis in result zurück.
-
Thread
UART empangen
//... gets(Line, 4); // jetzt steht in 'Line' dein String [/c] hth, Jörg
zugreift, die nicht existieren. http://www.mikrocontroller.net/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F
-
Thread
Arduino Nano Problem (Int to Char)
Wire.begin(); } void loop() { Wire.beginTransmission(I2C_ADDRESS); char trasmit_c[1]; String transmit_s = serialNumber + ";" + encoderPos; transmit_s.toCharArray(trasmit_c, 17); Wire.write(trasmit_c); } das komische ist, dass
encoder Pos ist weder string noch char... serialNumber + ";" + encoderPos Das funktioniert in C(++) nicht...
-
Thread
Vcc und andere Spannungen mit Atmega messen
_delay_ms(500); } return 0; } void showWelcomeMessage() { set_cursor(0, 1); lcd_string("FPV-Power-Watch "); set_cursor(0, 2); lcd_string("(c) jjk 09"); } void showVoltageFrame() { set_cursor(0, 1); lcd_string("Input --,--V"); set_cursor(0, 2); lcd_string
+frac); i++) lcd_data(string[i]); } [/c] Nun wollte ich eigentlich die Funktion [c] uint16_t convert2Voltage(uint16_t adc, uint16_t maxvoltage) { return (adc * maxvoltage) / 1024L; } [/c] benutzen und dann, z.B
-
Thread
AVR ATtiny824 on-chip temperature sensor
USART0_sendString("ADC: "); USART0_sendString(chst); sprintf(chst, "%d", temperature_C); // integer to string USART0_sendString(" temperature: "); USART0_sendString(chst); USART0_sendString(" °C"); USART0_sendString("\r\n"); _delay_ms(2000); } } [/c]
-
Thread
Suche: USB Audio Chip mit editierbaren (String)Deskriptoren
Die Anforderung USB-Audio mit konfigurierbaren Stringdescriptoren sollte vom C-Media CM6307A erfüllt werden: [pre] * Serial EEPROM programming interface supports customized VID/PID/Product string/ Manufacture string for device name changed and configuration * 2CH
Dynamic Range: 96db, THD+N: -89~96db [/pre] http://www.cmedia.com.tw/ProductsDetail.aspx?page=p&C1Serno=25&C2Serno=26&C3Serno=0&PSerno=1 Datenblatt im Anhang
-
Thread
Alter Code mit prog_char und neue avr-libc
[c]const prog_char * String_im_Flash __attribute__((__progmem__))[/c] Ist das so richtig?
Ich meinte so: [c]const char *String_im_Flash __attribute__((__progmem__))[/c]
-
Thread
string aus integer
Hi Kurze Frage: Ich möchte einige Variablen die Integer sind zu einem String zusammenfügen. Muss ich für jede Variable folgendes machen, oder geht das auch einfacher wie bei Printf [c] char String[80]; char hilf_s[3]; //2 Zeichen + Nullbyte strcpy(String,"Testtext "); strcat(String,itoa(x,hilf_s,10)); strcat(String,itoa(y,hilf_s,10)); strcat(String,itoa(z,hilf_s,10)); [/c] oder gibts sowas wie bei Printf: printf("Testtext %i %i %i" ,x,y,z); Danke für die Hilfe mfg
-
Thread
Arduino DMX 256 Kanäle als Paket senden
Der Index ist der erste Index in deinem Musterarray. Zudem spar dir die unötige Multiplikation [c] DmxSimple.write(d, (revo_array[i+d])*255);[/c] indem du direkt im Array 0 bzw 255 verwendest. Gruß JackFrost
delayMicroseconds(8); *dmxPort |= dmxBit; delayMicroseconds(12); dmxSendByte(0); [/c] [c] } else { // Now send a channel which takes 11 bit periods if (bitsLeft < 11) break; bitsLeft-=11; dmxSendByte(dmxBuffer[dmxState-1]); } [/c] Er sendet
-
Thread
EEPROM wird nicht korrekt ausgelesen
\0 Terminierung. Da du den String so in den Speicher schreibst: [c] eeprom_write_block (&uart_string, &eeFooNummer,sizeof(uart_string)); // Nummer ins EEPROM abspeichern [/C] steht die \0-Terminierung sowieso im EEPROM (sofern das Ausgangsmaterial im Array korrekt war). Du könntest daher den String entweder so zurücklesen [c] eeprom_read_block( &uart_string, eeFooNummer, sizeof(uart_string)); // Nummer aus dem EEPROM lesen [/c] oder so [c] eeprom_read_block( &EepromNummerAusgelesen
-
Thread
UART String empfangen
Hallo Forum, ich möchte mit dem Handy einen SMS versenden (funktioniert auch schon) und das zurückkommende OK vom Handy auswerten. Dazu habe ich folgende Standardfunktion verwendet. uint8_t Usart_Rx(void) { while (!(UCSRA & (1<<RXC))); return UDR; } Im Main mache ich dann folgende Abfrage while( Usart_Rx() != 'O'); while( Usart_Rx() != 'K'); Zum Testen nehm ich den Hyperterm. Da funktionierts auch richtig, nur wenn ich das Handy anschließe und der Controller die SMS-Sendung veranlaßt bleibt der Controller hängen. Irgendwelche Ideen?? Denke
-
Thread
Problem mit atol()
long int atol ( const char * str ); Convert string to long integer Parses the C-string str interpreting its content as an integral number, which is returned as a value of type long int. The function first discards as many whitespace characters
unterschiedlich behandelt werden soll: nämlich ob bei data[0] oder bei data[1] begonnen werden soll. [c] integerDigits = atol( data + (_signNumber == NEGATIVE) ? 1 : 0 ); [/c] oder [c] integerDigits = atol( &data[ (_signNumber == NEGATIVE) ? 1 : 0 ] ); [/c] da hätte dir der ternäre Operator
-
Thread
2 Fragen zu MPLAB C18 (Strings)
== 1 && input_buffer[0} == 2) { ... } Wie aber kann man mit dem C18 komplette Strings abfragen, etwa so: if(input_buffer[] == "Hallo Welt") { ... } Falls es da eine Möglichkeit gibt würde mich auch noch interessieren ob man auch trunkierte Abfragen machen kann,
Hallo Matze, Es gibt unter C sehr viele String-Funktionen, auch Stringvergleichsfunktionen. Heißen meist str.... Du würdest die Funktion "strcmp" oder "strncmp" (Vergleich) benötigen. Nimm entweder ein "C-Sprachbuch" in die Hand
-
Thread
interruptgesteuerte UART, string empfangen ATMEGA
Wenn ich strings empfangen möchte, muss ich wohl entweder die Stringlänge kennen oder ein stringende-Zeichen benutzen. Irgendwo auf Mikrocontroller.net habe ich sowohl \0 für einen standard C-string als auch \n
eines Zeichens die Übertragung von Zeichen abgeschlossen ist und die Summe all dieser Zeichen als String zu werten ist. Damit aus einer Sequenz von Zeichen in C ein String wird, muss hinten an die Zeichen ein '\0' Character drann. Ab diesem Zeitpunkt hast du in deinem char-Array einen gültigen C-String
-
Thread
Atmega8 Bascom "Sound"-Befehl
ist also so schlecht dass man ein extra Java Programm braucht um Code zu generieren? (nicht nur) in C könnte man deinen Eingabe-String einfach direkt auf den Controller speichern und dort interpretieren; in C++ könnte man den Compiler den String auch noch automatisch "komprimieren"(packen) lassen. Und
tempDuration = tempDuration * 10000; this.duration = (int) tempDuration; } public String convert(){ String uC_Command = "Sound Speaker , "; //'=============================================================================== //' C1 | 261,63 | 2548 | 523 | 262