-
Thread
Degeneration von Fotovoltaikzellen
#7502777: > Es ist normal, dass an heissen Tagen bei heissen Modulen weniger > Spannung aus dem String kommt Steht im Datenblatt: Temperaturkoeffizient von Pmax (%/0C) -0,44 Voc (%/0C) -0,37 Isc (%/0C) +0,08 85 Grad zu 25 Grad im Datenblatt sin 60 Grad. 60 * 0,37% sind 22,2 % 240 Volt mal 67,8
schrieb: >> Es ist normal, dass an heissen Tagen bei heissen Modulen weniger >> Spannung aus dem String kommt > > Steht im Datenblatt: > Temperaturkoeffizient von Pmax (%/0C) -0,44 > Voc (%/0C) -0,37 > Isc (%/0C) +0,08 > 85 Grad zu 25 Grad im Datenblatt sin 60 Grad. > 60 * 0,37% sind 22,2 %
-
Thread
Edision Proton T265 LED - No Boot after Firmware update fail
ElC schrieb im Beitrag #7503454: > > Ob es möglich sein wird zu flashen ohne den Chip auszulöten, z.B. mit > Leitungen an den Lötpads? Ist das zu naiv gedacht? Kommt darauf an was der SoC/Mikrocontroller
. Der SoC im Edision Proton T265 sollte ein SPHE8600 sein (mit MIPS CPU).
-
Thread
Transferschalter für jede enzelne Last für Autarkie im EFH
oder man lässt den SLS und Zähler ausbauen, dann war's das für das EVU. Die Anlage kann weiter als TN-C-S oder TN-S System betrieben werden, geerdet ist sie ja über den Anlagenerder weiterhin und PEN sollte erst in der Verteilung auf PE und N aufgetrennt werden.
über normale > Einspeise-WR direkt in die Insel. Versteh ich net. Müssten doch 7 isolierte Strings mit isolierten Ladegeräten sein, oder? Was soll der Einspeise-WR beim Laden machen?
-
Thread
Drehgeber und Tastenentprellung für Arduino
kompilieren. Wir müssen das aber nicht weiter ausufern > lassen. / und gut ist. ich kann es auch [c] if(strlen_P(MainName)) { uint16_t c_count2=strlen_P(MainName); String Ausgabe_pfad_String=""; Ausgabe_pfad_String.reserve(c_count2+2); char *c_home2=(char*)MainName; Serial.println(c_count2); Serial.println(c_count2+2); c_home2=(char*)MainName; while(pgm_read_byte(c_home2)) Ausgabe_pfad_String += (char)pgm_read_byte(c_home2++); if( (Ausgabe_pfad_String.lastIndexOf
-
Thread
C Printf 2 Zahlen links- und rechtsbündig ausgeben mit 0er dazwischen
Soll also am Ende z.B. so aussehen: 12345670000987654321 Gibt es eine einfache Möglichkeit, einen String am Ende mit beliebigen Zeichen (hier halt 0) auf eine fixe Länge aufzublasen? In C# gibts dafür StringPadRight()?
Danke, das ist für mich aber etwas zu viel Adress-magic in C.
-
Thread
Ist MoJo hier um zu bleiben? Ersetzt es C,C++, Python etc?
schneller als Python und unfassbar schneller als C / C++ wäre
weitestgehend abwärtskompatibel zu C ist.
-
Thread
SMA Home-Manager Multicast-Messages Auswertung
mit 4 Byte angegeben. https://www.mikrocontroller.net/topic/559129#7495510 Dann also ein [c] } if (index==144) { // Optional: Versionsnummer auslesen... aber interessiert die? offset += 4; [/c] vor dem [c] } else { // Strange [/c] ergänzen... dann sollte auch das "2:13.6.82"
grouplen; } } while (grouplen > 0 && offset + 4 < buffer + rSize); } } [/c]
-
Thread
Diode, heil oder defekt?
Andi schrieb im Beitrag #7497665: > 43 05C VN GSOT05C von Vishay.
IsUserConnectable : yes PortIsDebugCapable : no PortHasMultiCompanions : no PortConnectorIsTypeC : no ConnectionIndex : 0x05 (Port 5) CompanionIndex : 0 CompanionHubSymLnk : USB#ROOT_HUB30#4&36898853&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8} CompanionPortNumber
-
Thread
Echtzeit für Socket Receive und TCP/IP Pakete
das Problem nachvollziehen und hättet Ideen oder Vorschläge, wie man das Problem elegant auf nicht-uC angeht? Auf einem uC würde ich natürlich direkt in der IRQ Routine das antriggern können ... Danke! PS: Die Entscheidung für XML über TPC/IP socket ist nicht von mir, sondern vom Hersteller des
Sprache (*hust*) klappt es nicht. Mit Wireshark bin ich da bei ca. 15 bis 20msec gelandet. Bevor ich auf C / C++ / Rust / whatever anfange, habe ich dann einmal angefangen über das eigentliche Problem nachzudenken. Ich darf tatsächlich 1% (Sample size 1000) der Antworten verspätet abliefern, daher eine "weiche
-
Thread
Vermisse Warnung in C++ Code
#include <iostream> int main (void) { std::string bar = "bar"; bar = "foo bar baz:"; // <-- Dieses Semikolon ist zuviel "foo" + bar + "baz"; std::cout << bar << std::endl; } [/c] Eigentlich war hier eine String-Concatenation
"foo" + bar + "baz"; | ^ In file included from /usr/include/c++/13.2.0/string:54, from a.cc:1: /usr/include/c++/13.2.0/bits/basic_string.h:3676:5: note: declared here 3676 | operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
-
Thread
ESP8266 - WiFi "stoppt" seinen Betrieb - kein Crash - keine Funktion mehr
aus meinen Code raus: [c] String SSEWrapper::toStringIp(IPAddress ip) { String res = ""; for (int i = 0; i < 3; i++){ res += String((ip >> (8 * i)) & 0xFF) + "."; } res += String(((ip >> 8 * 3)) & 0xFF);
Speicherverwaltung besser unter Kontrolle. Denn die Standard C Funktionen für char[] allokieren nicht im Hintergrund Speicher, wie es die String Klasse tut. Ohne die String Klasse kannst du allerdings nicht mehr ganz so einfach einen String (bzw eine Zeichenkette
-
Thread
Wie bekomme ich eine .eep Datei auf meinen ATmega32
avrdude -p atmega32 -c atmelice_isp -U eeprom:w:<filename> ?
on output. b binary; each value will get the string 0b prepended. Only valid on output. [/code]
-
Thread
Serial RX Buffer Arduino
setzen, kam dann aber angesichts des [c]#if !defined(SERIAL_RX_BUFFER_SIZE)[/c] auf die glorreiche Idee, ein #define direkt im Source zu machen. Es kommt zwar eine Warnung beim Compilieren: [code]C:\Users\Chregu\Documents\Arduino\Laufschrift
können in der Zwischenzeit max. 48 Zeichen reingekommen sein, und reicht zum Weiterverarbeiten mit [c]Serial.readStringUntil('\n')[/c] Ich hoffe nur, dass Damit die Zeichen (schnell genug / überhaupt) aus dem Buffer abgeholt werden! Jetzt muss ich nur noch das Delay (jaaaa ich weiss) und eine Funktion
-
Thread
Peter Dannegger´s ( PeDa ) Entprellroutine in ein Arduino Sketch einbinden
sinnvoll einsetzen kann und was nicht. Soweit muss man da gar nicht schauen. Das fängt schon mit der String Lib an, ohne zu wissen was man tut kann die nach hinten losgehen. Das Problem mit dem Speicher ist auch nicht zwingend auf AVR begrenzt. Alle die µC programmieren und die libstdc++ verwenden müssen
Addition drin. [c]val += val +100; [/c] Das macht zum testen eher Sinn. 'DEC' kannste übrigens weglassen. [c] void loop() { if( enc_delta == 4 || enc_delta == -4 ) { val += encode_read(4); /
-
Thread
Größe einer beliebigen Reihe, auch unterschiedlich viele Elemente, berechnen.
Stringendezeichen '\0' als sentinel in einem Array von char bzw. byte. Das ist die Konvention (!) für C-Strings. Kannst Du aber nicht in einem Array von byte anwenden, wenn das numerische Bedeutung (wie bei Arduino als uint8_t) hat. nullptr oder (void*)0 (aka NULL in C) passt doch vom Dt nur in eine
im letzten Jahrtausend, sorry. Und so etwas gibst Du einem Anfänger mir. Fahrlässig. Die durch C-Strings motivierte Ausnahme mit '\0' als Sentinel ist schon schlimm genug. Sie wäre nur dann gerechtfertigt, wenn der DT char definitiv nur für (ASCII)-Zeichen reserviert wäre. Aber er ist ein normaler
-
Thread
ESP01S: TCP Server und UDP Multicast
an SMA packet?"); return; } Serial.print("First 3 Bytes: "); Serial.println(String(buffer,3)); } else { delay(1000); Serial.println("."); } } [/c] Ausgabe auf der Seriellen: [code] RECEIVED: 600 bytes First 3 Bytes: SMA [/code] Ich kompilier das gleich nochmal für ESP8266. Nachtrag: Läuft am ESP8266 genauso, kleine Code-Änderung: [c] #ifdef ESP8266 Udp.beginMulticast(WiFi.localIP(), multicastIP, multicastPort); #else Udp.beginMulticast(multicastIP, multicastPort); #endif [/c] und es gibt dort scheinbar keinen String-Konstruktor
-
Artikel
AVR-Tutorial: ADC
Spannungen zu messen, wird der Analog-Digital-Wandler (kurz: A/D-Wandler) oder englisch A nalog D igital C onverter (ADC) benutzt. Er konvertiert eine elektrische Spannung in eine Digitalzahl. Prinzipiell wird dabei die Messspannung mit einer Referenzspannung verglichen. Die Zahl drückt daher das Verhältnis
Vergleich zur Vorgängerversion geändert. Die Multiplikation sowie die Umwandlung der Zahl in einen ASCII-String sind als Unterprogramme geschrieben, dadurch erhält man wesentlich mehr Überblick im Hauptprogramm und die Wiederverwendung in anderen Programmen vereinfacht sich. Außerdem wird der String im RAM gespeichert
-
Thread
Datamatrix Encoder Source für kleinen Speicher
Hallo Forum, ich suche einen Sourcecode in C um eine Datamatrix-2D Code auf einem µC zu berechnen. Leider habe ich bislang nur recht speicherhungrige Implementationen gefunden. Ich habe leider nur begrenzt RAM frei, etwa 10k bis 15k. Flash ist genügend vorhanden. Im Code von Adrian Kennard, Andrews & Arnold Ltd (iec16022ecc200.c) finde ich: [c] struct { short s; /* 2 Byte */ short t; /* 2 Byte */ } enc[MAXBARCODE][E_MAX]; /* 3116 * 6 * 2 * 2 = 74784 Bytes */ [/c] Was würdet ihr empfehlen
-
Thread
Bauteil-Parameter wie geht ihr vor? - Wertestring, streng tabellarisch, etc.
irgendwelche Templates? Oder seht ihr das ganz locker und knallt bei Standard Teilen einfach nen String mit den Werten alà "100k, 1/16W, 0805, 30V" in ein Parameter Feld? Grüsse, Georg
von konkreten Bestellnummern von Herstellern, über Artikelnummern und Distributor bis hin zu Werte Strings als Kommentar. Wenn es mir egal ist wer den 100K Widerling liefert, dann schreibt man meist "Any (RoHS)" dazu und nutze einen Werte String für die Parameter.
-
Thread
Alte IDE Platte kopieren
sdc zu sein und da gibt es ein Problem was wohl auch Clonezilla hat und weshalb W10 nix macht: [c] jv@JamesWebb:~$ blkid /dev/sda1: UUID="1ac71602-89cf-4c83-9a0a-99762e13e79c" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="7f4322d5-01" jv@JamesWebb:~$ jv@JamesWebb:~$ lsblk -f NAME FSTYPE FSVER LABEL
sudo] password for jv: mount: /media/jv: can't read superblock on /dev/sdc. jv@JamesWebb:~$ [/c]
-
Thread
Firmware entschlüsseln, Updateprogramm als Hilfe?
sogar die interne Menüstruktur des Funkgerät! Laut den leuten in der Gruppe suchen wir nach dem String "404B4C00" innerhalb der Firmware. Angeblich könnten die Jungs dann eine Firmware schreiben die RTX von 18-1300MHz schafft, natürlich trotzdem mit der Lücke bei 600-850MHz. Nochmal vielen lieben
aneignen! Rein theoretisch, laut dem was bei der K5 Firmware bekannt ist, suche ich nach dem String 404B4C00 in der Firmware. Der muss zum ändern der Frequenzbereiche editiert werden. Da dieser für beide Geräte theoretisch gleich sein soll/muss... So wird's behauptet.
-
Thread
Zugriff auf drahtloses Wifi Microscope (Ohrwachsentferner)
existierendes Protokoll erkannt. 0000 45 00 00 20 cf 68 40 00 40 11 49 e2 0a d7 ad 01 0010 c0 a8 a9 01 bf fe 22 60 00 0c 08 f4 ef 00 04 00 Per RTP oder RTSP mit VLC auf Port 8800 zuzugreifen funktioniert leider auch nicht.
····(· 00A0 a0 02 80 0a 00 28 00 a0 02 80 0a 00 28 11 97 74 ·····(·· ····(··t 00B0 31 3b 55 c8 68 ae e3 22 a0 b2 a4 83 0d 4d 10 c8 1;U·h··" ·····M·· 00C0 cd 02 12 98 05 00 28 a4 04 8b 48 b4 3c 0a 92 85 ······(· ··H·<··· [/code] Ich werde mal schauen, ob sich die Python-Scripte aus
-
Thread
Einfachst speicher für BalkonPV
C. D. schrieb im Beitrag #7484724: > Stell Dir einfach vor, die willst Dein Haus neu streichen lassen. Und > statt eines Handwerkers bestellst Du Dir hundert. C. D. schrieb im Beitrag #7484744: >
esp32 erlaubt eine grössere feiner aufgelöste graphik. Nicht die daten sind das problem sondern der string für das svg format.
-
Thread
PIC16F1509/Sansmart LCD2004/I2C , benötige etwas Hilfe
LCD_Write_4Bit(Data & 0xF0); LCD_Write_4Bit((Data << 4) & 0xF0); } /* void LiquidCrystal_I2C::send(uint8_t value, uint8_t mode) { uint8_t highnib=value&0xf0; uint8_t lownib=(value<<4)&0xf0; write4bits((highnib)|mode); write4bits((lownib)|mode); } * */ void LCD_Write_String
print(c); } [/c] In den Examples findet man ein HelloWorld (leicht gekürzt): [c] #include <LiquidCrystal_I2C.h> // Set the LCD address to 0x27 for a 16 chars and 2 line display LiquidCrystal_I2C lcd
-
Thread
for-Schleife - Bit verschieben
[/c] tut?
Sprache, die versuchen, etwas Sicherheit (oder auch Ausdrucksstärke) zu bringen, unnützt sind. Bei C/C++ würde das dann bedeuten, dass etwa `const` oder Zusicherungen oder sager das ganze Typsystem abschafft. Dann gehörst Du also zu der Fraktion: alles ist ein `int`, und wenn nicht, dann ein String?
-
Thread
STM32F4 SWO Ausgabe sporadisch falsch
originale Funktion hier: https://github.com/sfyip/STM32F103_MSD_BOOTLOADER/blob/master/Src/ihex_parser.c): [c] bool ihex_parser(const uint8_t *steambuf, uint32_t size) { uint32_t i; uint8_t c, hc; for (i = 0; i<size; i++) { c = steambuf[i]; ITM_SendChar(c
dein Code ggf wartet, bis wieder Platz frei ist. Meine Funktion für diesen Zweck sieht so aus: [c] // Output a trace message void ITM_SendString(char *ptr) { while (*ptr) { ITM_SendChar(*ptr); ptr++; } } [/c] Ich benutze darin die von ST bereit gestellte ITM_SendChar
-
Thread
Mein Programm nach dem Update von Visual Studio läuft nicht mehr
B. P. schrieb im Beitrag #7998959: > Du kannst selber ein Projekt (VS22 oder VS26) > in C++ mit nur einem leeren Form anlegen Form? Du meinst kein C++, sondern die .Net-Variante "Managed C++" bzw. "C++/CLI". > 1.#include "Windows.h" Üblich ist hier die Verwendung von Spitzklammern
Harald K. schrieb im Beitrag #7998965: > Form? Du meinst kein C++, sondern die .Net-Variante "Managed C++" bzw. > "C++/CLI Sehe das Projekt.
-
Thread
Ohmmeter mit Arduino
int resistance = REF_R2 * (voltageR1 / (V_IN - voltageR1)); Serial.println("Resistor R1: " + String(resistance) + " Ω\n\n"); } [/c]
Beitrag #7475477: > Nein, die Verorgungsspannung des Arduinos! 5V Nein die Versorgungsspannung des µC ist 3,3V.
-
Thread
for(;;){} Schleife
Frank M. schrieb im Beitrag #7474651: > Auf den ersten Blick ein schöner Hack, allerdings wird [c]while ("never") { }[/c] > leider nicht den gewünschten Effekt haben. War auch nicht die Intention. Jedes Stringarray steht an einer Adresse != 0. Der Inhalt des Strings ist also immer egal.
fest im Compiler eingebaut sein müssen. Mit string.h kommen bei C23 zum ersten Mal echte Bibliotheksfunktionen dazu. Bisher musste man für uC-Programme nur den gcc installieren, keine libc. Damit das so bleibt, müsste der gcc die string-Funktionen
-
Thread
Bluetooth LE Verständnissproblem ATT, GATT usw.
C. L. schrieb im Beitrag #7472186: > Wie genau abonniere ich denn? ist das sowas hier? UUID usw. ist klar... > [c] > if(l_BLERemoteChar->canNotify()) > l_BLERemoteChar->registerForNotify(notifyCallback
* BatLvLDes = pRemoteChar_Bat->getDescriptor(charUUID_BatLvLDes); std::string BatLvLDesc = pRemoteChar_Bat->readValue(); [/c] In den Sektionen passiert natürlich das Wesentliche. Service suchen, prüfen ob da... Char suchen, prüfen ob Read oder Notify geht und dann lesen
-
Thread
Nicht Kompilieren bei einem bestimmten Wert in einem const array
Hallo, ich denke einmal laut für alle vor mich hin. :-) Wäre es für den TO denkbar die Lib als C++ Lib anzulegen, alles im C Syntax zu belassen und nur diesen zu prüfenden Teil im C++ Syntax zu schreiben? Wenn ich so weiter denke befürchte ich allerdings, dass das restliche C Programm mit der C+
Makro Funktion habe ich umbenannt in STATIC_ASSERT_CONST. Die Fehlermeldung kann jetzt auch als String genutzt werden, eine Schreibweise als Identifier ist nicht mehr notwendig. [c] #include <stdio.h> /*! Erzwingt unter gcc eine Fehlermeldung */ __attribute__((__error__("STATIC_ASSERT_CONST
-
Thread
Statische 2D Char Arrays mit verschiedenen Größen
schrieb im Beitrag #7467794: > Kann ich jetzt die ersten 2 Char Arrays mit 100 Bytes deklarieren ? [c] char a1[100],a2[100],a3[10],a4[10],a5[10]; char (*a)[5]={a1,a2,a3,a4,a5}; [/c] Zugriff mit [c] a[x][y] [/c] und nicht [c] a[x,y] [/c]
In C ist dies nicht möglich. Aber normalerweise braucht man sowas auch nicht. Dann packt man hat 2 Arrays in ein Struct. [c] struct { char a[5][10]; char b[2][100]; } x; [/c] Oder man macht sich
-
Thread
System friert beim Schreiben auf SD-Karte ein
Hintergrund: Ich will GRBL mit einem FPGA beschleunigen. Dazu habe ich ein Board gebaut, wo der µC, SD Karte, USB und ein Spartan-6 drauf sind. Das ist im Moment mein eigenes Bastelboard, mit dem ich alles mache. Das ganze ich Hobby. Für den Anfang habe ich GRBL auf den µC portiert (XMega128) und
während der ISR auf SD Karte schreiben will. Da friert das System ein. Ich vermute dass das RAM vom µC nicht reicht und er Stack überläuft. Das Board kann man ausschließen, das habe ich für andere Sachen schon verwendet. Das funktioniert tadellos und auch zusammen mit dem FPGA, da gibt es kein Thema
-
Thread
Verkabelung SolarPanel Wechselrichter kupfer sparen
Rubble C. schrieb im Beitrag #7468777: > Ein verschattetes Panel in einem String "reisst" die anderen Panels > nicht runter Nochmal für geistig beschränkte: x Module die jeweils an einem eigenen MPPT
Rubble C. schrieb im Beitrag #7468960: > Wo hab ich anderweitiges geschrieben? Hier: Rubble C. schrieb im Beitrag #7468777: > Ein verschattetes Panel in einem String "reisst" die anderen Panels > nicht
-
Thread
PV-Inselanlage für Warmwasser
> Ist halt blöd schattig da oben. Dann vergiss es. PV-Anlagen mögen keine Verschattung, in Strings schon gar nicht.
>> Ist halt blöd schattig da oben. > Dann vergiss es. PV-Anlagen mögen keine Verschattung, in Strings schon > gar nicht. Erwin D. schrieb im Beitrag #7466088: > Auf dem Bild ist die Spiegelung des Giebels sichtbar. > Keine Verschattung den ganzen Tag über.
-
Thread
Programmiersprache mit Zukunft
das beste Aufwand/Nutzen Verhältnis bietet. Eine csv Datei einlesen? Braucht 6 Zeilen. Aus einem String ein Zeichen entfernen? Eine Zeile. f-strings lassen sich fast wie Fließtext schreiben, nicht so Cryptorechtes Zeug, wie in C Norbert schrieb im Beitrag #7465248: > Ein guter C-Programmierer kann
Doppelpunkte und "def"s. Aber lassen wir das. > Eine csv Datei einlesen? Braucht 6 Zeilen. Aus einem > String ein Zeichen entfernen? Eine Zeile. f-strings > lassen sich fast wie Fließtext schreiben... Sinnloser Vergleich, da beide Sprachen für völlig andere Anwendungsbereiche gedacht sind (C könnte das
-
Thread
Akkus für Fotovoltaik
vor dem Lichtbogen bei einem 10kWh Hochvoltakku noch mehr Respekt hätte als vor dem eines z.B 7kW Strings. Der Akku ist bestimmt noch niederohmiger.
geeignet, Wetter- und UV beständig isoliert?. Verträgt die 8A, wenn sie am Dach schon ohne Strom 80°C hat? Gibt es MC4 die 1qmm sicher crimpen, korrekt abdichten und sicher verspannen? Ich kenne nur Ausführungen für 2,5 4 und 6qmm. Ein Modul mehr geht nur, wenn noch Platz ist.