-
Thread
Programm Temperaturfühler
[c]// 2 Temperaturfühler public class Gartenhaus1 { public static void main (String[] args){ char GPIO12=D6; // GPIO12 D6 Pin für Temperatursensoren char GPIO13=D7; // GPIO13
die denkbar schlechteste Wahl. Was Du da als Java titulierst, scheint Arduino-Code zu sein, also C++. Ich glaub nicht, daß man das mit Tasmota verheiraten kann. Allgemein ist C/C++ auf MCs recht weit verbreitet. Arduino/C++ sind für Anfänger erheblich besser geeignet, als Deine exotische Wahl Java
-
Thread
UART output in Atmel Studio Simulation anzeigen lassen
Hatte da mal was im Internet gefunden, siehe main.c Der String in printf() muss mit \n oder \r abgeschlossen werden. Und bei ptr = 0; muss ein Breakpoint hinzugefügt werden, siehe Sim_output.PNG. {debug, s} muss händisch eingetragen werden.
c-hater schrieb im Beitrag #6894618: > Da gab es eine nette Spielerei, die an die DLL des Simulators angedockt > hat und dann ihrerseits Tasten, LEDs, ein serielles Terminal und sogar > ein HD44780-
-
Thread
Websocket, .send geht, wie funktioniert ".receive"?
: Zahlen können ohne Anführungsstriche geschrieben werden, Text immer mit. Ein einfacher JSON-String mit Key, Value pärchen sieht so aus: {"Volume": 22, "Treble": 8, "Bass": 8} Im onmessage event musst du den Json string als erstes in ein Objekt parsen: JSONobj = JSON.parse(event.data); dann
vereinfacht. Ich habe auf Variablen im Javascript verzichtet. So ungefähr sieht das Script jetzt aus [c] var power; var connection = new WebSocket('ws://'+location.hostname+':81/', ['arduino']); // ------------------------- // functions // ------------------------- connection.onopen = function
-
Thread
STM32 C was passiert da?
Nein hat er nicht. Allerdings funktioniert die String Funktion auch nicht: void display_putstring(char *string,uint8_t color, uint8_t x, uint8_t y) { uint8_t i=0; char c = string[0]; while(c != 0) { if(c == '\n'){} //New Line no Support else display_write_char(c,color,xpos,ypos); c = string[++i]; } } display_putstring("Hallo Welt",xpos,ypos,0x04); Das müsste doch funktionieren?
-
Thread
Benchmark: C/C++ Effiziente Methoden zum Suchen
Programmieren zu bringen: In den angehängten Bildern findet ihr Benchmarks für verschiedene gängige C/C++ Suchmethoden. Im Prinzip nichts Neues, aber es sind aktuelle gemessene Daten, die euch als Entscheidungsgrundlage für eure Programme dienen können. OS ist Win10, Compiler ist VS2019, System
udok schrieb im Beitrag #6890466: > Wie macht man in C++ eine binäre Suche, wo man nicht nur gefunden oder > nicht gefunden zurückbekommt, sondern den Index des gefundenen Elements > (bzw. wer hat sich die kranke std::binary_search einfallen lassen...)
-
Thread
RS232 String per Taste auslösen
AITRIP-Digispark-Kickstarter-Allgemeine-Micro-USB-Entwicklungsplatine/dp/B08H7VVFYZ/ref=sr_1_3?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=digispark&qid=1637767013&qsid=257-6183033-8676741&sr=8-3&sres=B08H7VVFYZ%2CB08LKCSCFY%2CB019JSRWMW%2CB08B3N57ZP%2CB07B2DMZ2P%2CB096M6W3DN%2CB075CZM8LF%2CB08DR5T897%
www.amazon.de/AZDelivery-UART-TTL-Konverter-Jumperkabel-inklusive/dp/B08T24NML9/ref=sr_1_3?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=uart%2Busb%2Badapter%2Bcp210&qid=1637767233&qsid=257-6183033-8676741&sr=8-3&sres=B08T24NML9%2CB07WX2DSVB%2CB0753GY7FR%2CB07CQTC8P2%2CB07RG77VWD%2CB07TXVRQ7V%2CB08L6BSYZN
-
Thread
[C++]2D String-Array und Funktionen
Meine Frage ist warum, außderdem was genau diese Zeilen machen: [code]FelderSchwarz = new std::string* [8]; FelderSchwarz[y] = new std::string [4];[/code] Ich danke euch schonmal für eure Hilfe ^^ P.S. Ich lerne C++ in Eigenarbeit
DesNachbarsKleinesKätzchen schrieb im Beitrag #6885932: > std::string** FelderSchwarz; So bitte auf keinen Fall in C++! Du kannst [c]std::vector FelderSchwarz (8, std::vector<std::string> (4));[/c] verwenden, dadurch entfällt das "new" und "delete" komplett (das
-
Thread
[c] woher kommen die Standardlibs
interessiert mich aber wirklich. Meine frage bezieht sich eigentlich auf die Standard Librarys wie z.B. string.h oder stdlib.h. Hierbei egal ob von AVR-GCC oder GNU-GCC. Die Funktion strlen() gibt die länge eines Strings zurück. Die Deklaration in string.h dabei sieht wie Folgt aus: [c]extern size_t strlen
/wiki/C-Standard-Bibliothek
-
Thread
Umstieg von Windows 10 nach Windows 11 sinnvoll?
support.microsoft.com/de-de/windows/häufig-gestellte-fragen-zu-windows-10-und-windows-11-im-s-modus-851057d6-1ee9-b9e5-c30b-93baebeebc85
https://www.heise.de/news/c-t-3003-Fuenf-Dinge-die-bei-Windows-11-wirklich-bloed-sind-6278000.html
-
Thread
ESP32 WiFi begin
password als variablen haben möchte, habe ich bei meheren Foren gelesen dass es so gehen könnte. String ssid = "FRITZ!Box 7490"; String password = "123456789"; WiFi.config(local_IP, gateway, subnet); WiFi.begin(ssid.c_str(), pw.c_str()); --------- funktioniert aber nicht, was mach ich falsch
String.c_str() liefert einen nullterminierten C-String zurück, das müsste also gleich sein. Liegt es eventuell an der Codierung von Sonderzeichen? Oder ist das PW länger als 32 Zeichen? Edit: habe es
-
Thread
Anschluss PV-Wechselrichter - PE-N Verbindung
der neue FI fliegen, oder? Im Handbuch des Wechselrichters sind die Netzformen "IT, Delta-IT, TN-C, TN-S, TN-C-S, TT (wenn U N_PE<20 V)" erlaubt mit dem Hinweis zu "IT, Delta-IT": "Beim Einsatz in diesen Netzen muss die Schutzleiter-Überwachung deaktiviert und eine zusätzliche Erdung an den Wechselrichter
ankommt weiß ich nicht, jedoch ist dieser mit einem Erdungsband außen verbunden. Daher könnte es TN-C-S, TT oder IT sein, oder? Danke schon mal für jeden Gedanken zur Behebung des Problems und schönen Sonntag :D
-
Thread
Passwort Klartext oder Hash
Zuerst also PW A, dann B, dann wieder A, dann wieder B usw. Will man das verhindern, so dass es zu C kommt, muss der Server somit A im Klartext verschlüsselt durch B speichern. Ist dann das PW auf C geändert, wird A und B im Klartext bzw. verschlüsselt durch C gespeichert und das aktuellste liegt dann
Klartext speichert. > > Nein. Diese Annahme ist falsch. Dann erkläre mir, wie er bspw. den String "Xrw7#" wiedererkennt und neue Passwörter mit diesem String ablehnt, wenn dieser String in einem PW vor 5 Generationen vorkam? Solltest du das "PW im Klartext speichern" meinen, dann sollte dir
-
Thread
Java lernen?
zu viele Programmiersprachen den Überblick verliert und irgendwann durcheinander kommt. Will nicht C mit Java, Java mit Python, C mit Python usw. verwechseln, wenn es mal drauf ankommt.. Finde Objektorientiertes Programmieren aber im Vergleich zu prozeduralen Programmiersprachen wie C aber durchaus
Anwendungsgebiet eher C oder Python.
-
Thread
VDHL - real zu signed für x > 2**31-1 bzw. x < -2**31
die Tabelle auch für größere Bitbreiten in VHDL zu berechnen oder komme ich um eine in MATLAB/Python/C berechnete Tabelle die ich hard codiere nicht herum? Da ich kein Freund von "Magic Numbers" bin, wäre es schön wenn der Inhalt der Tabelle dort berechnet wird, sodass man beim Lesen des Codes die Zusammenhänge
math_real ist schlicht komplett kaputt (bzw. von gruseliger Präzision): [vhdl] report "2**32=" & to_string(2.0 ** 32.0, "%20.15f") severity note; report "2**31-1=" & to_string(2.0 ** 31.0 - 1.0, "%20.15f") severity note; [/vhdl] [code] tst022.vhd:140:9:@0ms:(report note): 2**32=4294967295.999997615814209
-
Thread
AT90USB162 Endpoint Interrupts funktionieren nicht
diverse Typen wie String oder StringBuilder, aber in C auf einem AVR hab ich sowas noch nie benutzt.
) + sizeof(USB_VENDOR_NAME) - sizeof(wchar_t), .bDescriptorType = STRING_DESC, .bString = USB_VENDOR_NAME }; [/c] mit USB_VENDOR_NAME [c] #define URACOLI_USB_VENDOR_NAME L"URACOLI" [/c] Beim AVR-GCC sind wide strings standardmäßig 16 bit breit, daher
-
Thread
RTC DS3231 Frage zu Code
hat die Uhr eine feste Adresse von 0x68. Dieser Wert ist aber nirges zu finden, also nicht in der c++ oder header Datei. Er scheint auch nirgends gelesen zu werden. Bin kein C++ provi, ist lange her zudem kenne den Umgang mit der DS3231 kaum, ich hätte erwartet dass man sie mit der Adresse ansprechen
beim Konstruktor seinen Inhalt bekommt. Hast du in deiner "Haupt Source Datei" nicht sowas wie [c] MyDS3231 RTC(0x68); [/c] stehen? Siehe dort *Beispiel 1* https://arduino-projekte.webnode.at/meine-libraries/rtc-ds3231/
-
Thread
Sende/Empfangsvorgang mittels nur 1St. µC
__delay_cycles(900); } } [/c]
ausgeben, wenn gleich hier in dezimal. Man kann auch deine Funktion auf 16 Bit umstellen. [c] void Dx_ausgeben(unsigned int data) { lcd_set_cursor(0, 4); sprintf(tmp_string, "%04X", data); lcd_print_string(tmp_string); } [/c]
-
Thread
C++/placement new: irgendein Grund warum std::string problematisch sein sollte?
=("hallo"); b->operator=("bert"); delete b; } { char buffer[sizeof(std::string)]{}; std::string* c = new (buffer) std::string(); c->operator=("hallo"); c->operator=("bert"); c->assign(std::string("uwe")); c->~basic_string(); } { char buffer[sizeof(std::string)]{}; std::string* c = new (buffer) std::string(); std::string& rc = *c; rc = "hallo"; rc = "bert"; rc = std::string("uwe"); rc.assign(std::string("uwe"));
-
Thread
TASM/DOS 16Bit: Symbol-Inhalt zur Assemblierungszeit ausgeben
Variablen/Symbolen in DSIPLAY oder %OUT es wird irgendeinen Weg geben um aus dem Symbol-Inhalt einen String zu machen - aber ich finde gar nichts dazu
cppbert schrieb im Beitrag #6872911: > es wird irgendeinen Weg geben um aus dem Symbol-Inhalt einen String zu > machen - aber ich finde gar nichts dazu es gibt da noch ECHO hab ich aber nie benutzt
-
Thread
Beim Byte die Bits am schnellsten umsetzen.
die dann doch nehmen, und das Optimieren dem Compiler überlassen: https://godbolt.org/z/dP6T837nq [c] #include <stdint.h> #include <string.h> #include <assert.h> static inline uint8_t bit8_reverse(const uint8_t u8){ struct __attribute__((packed)) b8 { unsigned b0 : 1; unsigned b1
Doch, wenn man selbst die 3 Zeilen Assembler als inline hintippt, spart > man sich die 30 zeilen C-Code Spätestens beim Port auf einen anderen µC bist Du aufgeschmissen. Der C-Code jedoch funktioniert mit allen µCs. Und dort wird er möglichst optimal übersetzt. Als C-Programmierer machst Du
-
Thread
Compiler-Toolchain in Firmware-Image erkennen
hinterlässt, nachdem das Zielimage statisch gebunden und gestripped wurde? In dem Beispielimage "7M2T-14C025-AA_PBL_0x00000000-0x000006CC.bin" (SBL Updater für ein Kombiinstrument von Valeo aus den 2007ern) ist z.B. der String "G0G8ARM7CFMPE301" zu finden. Der Prozessor der das ausführt ist ein Mikrocontroller mit einem ARM Core drin. In dem "7M2T-14C026_PBL_0x00001000_0x00004FFF.bin" (ist der PBL, von gleichem Modul) findet man u.a. diese Fehlermeldung "C++ library exception". Wenn man die verwendete Toolchain heraus bekäme könnte man ggf. die
-
Thread
USB-Stringdeskriptor ohne Abzählen
Flash funktioniert so, hier für den Langing-Page-Url-Deskriptor, wie man ihn für WebUsb braucht: [c] template<size_t N>struct landingpageurldesc_t{ byte l,t,h,s[N]; // length, type, http/https switch, url-string operator const byte*() const {return &l;} }; template<int N>constexpr auto landingpageurldesc_f
www.tu-chemnitz.de/~heha/app.htm"); // "1" means "https://", "0" means "http://" prefix #undef LP [/c] Das funktioniert hier mit dem älteren gcc 5.30 und -std=C++14. Und, nein, es geht nicht darum sich in C++ auszutoben sondern les- und wartbaren Kode zu schreiben, der zudem kürzestmöglichen Maschinenkode
-
Thread
TeraTerm & Unicode/UTF-8
TeraTerm über eine serielle Verbindung Unicode/UTF-8 Zeichen darstellen. Die Gegenseite ist ein PSoC 5LP (ARM Cortex-M3). Leider klappt es nicht, es werden nur Fragezeichen für die Zeichen dargestellt. Normaler Text funktioniert einwandfrei. Compiler ist GCC. Zur Ausgabe wird printf() verwendet,
65001 (UTF-8), aber > leider keine Änderung. Und was sagt 1208? Oder das Ding will wirklich den String "UTF-8" dort sehen ...
-
Thread
Straßenpreis Altium Designer
Suchstring "10k*1%*0603" liefert ziemlich genau den Widerstand, der im Descriptionparameter den gesuchten String "10kΩ, 1%, 0603" hat, aber auch den mit "10kΩ, 0,1%, 0603". Anders gesagt: Wildcardsuche ist so eine Neuerung die ich ebenfalls schätze, ich meine daß sie seit V20 drin ist.
Also ich hab mal mit 2 Kollegen zusammen ein 14-Lagen-Design mit nem fetten FPGA, DSP, SoC, mehreren Speicherkanälen (DDR2 und DDR3) und noch weiteren Schnickschnack gemacht. Da haben wir 3 Monate in Vollzeit drangesessen. Benutzt haben wir Expedition mit der TeamPCB Funktion, da konnte
-
Thread
Array - Summe berechnen in C
ist: %d", iSumme); } [/c]
deiner Unkenntnis des Laufzeitsystems. Es ist nämlich technisch schlicht kein Unterschied, ob du [c] int c; [/c] oder [c] int c = 0; [/c] schreibst. Beides erzeugt den gleichen Code, und man *muss* sich zwangsläufig auf den Startup-Code verlassen, dass er daraus das korrekte tut. Wer sollte
-
Thread
Xmega CDC Example mit Seriennummerprefix?
uns aus (ASF 3.50.0.108) [c] //xxxxx,xx: DYNAMIC serialNumber callback #if defined USB_DEVICE_SERIAL_NAME || defined USB_DEVICE_GET_SERIAL_NAME_POINTER #pragma message("UDC:DYNAMIC serialNumber callback") case 3: str_length = udc_callback_get_serialnumberLen(); str = udc_get_string_serial_name(); break; #endif [/c] udc_callback_get_serialnumberLen() (falls benötigt) und udc_get_string_serial_name() müssen natürlich ausimplementiert werden... Deklaration in conf_usb.h
-
Thread
C: Was bedeutet das?
die originale Notation nach K&R beziehen, die > ist so etwa gleichaltrig. Der Unterschied: bei C gab es seitdem weitere ISO-Standards wie C99 und C11.
Variante, daß jemand so etwas schreibt: [c] MyBool = NeVariable; [/c] und damit meint: [c] MyBool = NeVariable != 0; [/c] Naja, das hängt eben alles an der C-eigenen Definition von Boolean. W.S.
-
Thread
AVR Problem mit -nostartfiles
dem Attiny2313 und ATmega32 aufgefallen. Erstelle ich mir eine eigene __do_copy_data werden die Strings korrekt ausgegeben. Eine Vermutung von mir wäre, dass ich mit dem falschen Sektor arbeite, allerdings habe ich dazu nicht viel gefunden. [c]__attribute__((section(".ctors"))) void boot(void
Apollo M. schrieb im Beitrag #6863042: > Kann man (wenn ja wie) in gcc eine C-Funktion schreiben, die vor main() > als eigene Init-Funktion aufgerufen wird? Grundsätzlich so: [c]__attribute__((section(".init2"))) void boot(void)[/c] Hier wird das ganze recht schön beschrieben
-
Thread
C: Kann man mittels #define einen Wert zurück geben?
: [c] p_myarray = static unsigned myArray[256]; myFoo(myArray, 256) [/c] Wenn DU etwas zurück haben willst, brauchst Du schon eine Funktion.
Nachdem der gcc ja auch C++ kann, wäre es zumindest eine Überlegung > wert? In C++ gibt es dafür std::array
-
Thread
UART läuft nicht auf einem AVR
PORTB &= ~(1 << PINB5); uart_init(MYUBRR); sei(); while(1) { uart_sendStringWait("Test"); PORTB ^= (1 << PINB5); _delay_ms(1000); } } [/c] uart.c: [c] void uart_init(unsigned int ubrr) { /* Set baud rate */ UBRR0H = ubrr >> 8; UBRR0L
Schritt: [c] while(1) { uart_sendStringWait("z"); PORTB ^= (1 << PINB5); _delay_ms(1000); } [/c]
-
Thread
Gesucht: Bus-System um mehrere uC zu vernetzen
keinen LAN Anschluss, weil der uC STM32F4xx nicht genug Ressourcen hat. SPI, I2C, LIN, ModBus, und weitere, auch ältere Bussysteme sind mir bekannt, aber ich müsste einen recht umfangreichen Protokollstack schreiben, damit man die
c-hater schrieb im Beitrag #6862343: > Dann kann man auch gleich die Adresse mit im EEPROM speichern... Bzw einen Hash Code des Strings zur Adresse machen.
-
Thread
Ratlos mit MAX3051 am ESP32 (hängt sich beim Senden auf)
informationen) Hat jemand eine Idee für mich, was ich falsch mache? sandeepmistry/CAN@^0.3.1 [c]void setup() { CAN.setPins(4, 5); if (!CAN.begin(125E3)) { Serial.println("Starting CAN failed!"); while (1); } CAN.onReceive(onReceive); void loop() { if( millis() - rsmTmp > rsmTime
onReceive(int packetSize) { uint64_t id = CAN.packetId(); //erhalte Nachrichtenstring String msg = ""; while (CAN.available()) { msg += (char)CAN.read(); } int16_t value = atol(msg.c_str()); Serial.println(id); Serial.println(value); } [/c]