-
Thread
Macro: compiler warning sizeof(any data type)
Speichergröße von komplexenn Strukturen zu kennen war Impuls in stackoverflow, ... zu suchen. [c] //get warning at compile time about sizeof(any data tpye) enum {_VAL_=-4242} _cv_; #define mSizeOfWarning(type) void type##size(){switch(_cv_){case sizeof(type):break;}} [/c] example string fw
[E2END+1-sizeof(ee_data_t)-1]; ee_data_t ee_data; } ee_t;[/c]
-
Thread
FreeRTOS hängt nach vTaskDelete
Betriebsmodus wechselt. Zum Wechsel des Betriebsmodus wird ein Task gelöscht und ein anderer gestartet. [c] bool compare_entry_maybe_switch_task(std::string_view entry, std::string_view str, void (*create_task)()) { auto const
Speichers hängen. [c] void vPortFree( void * pv ) { ... configASSERT( heapBLOCK_IS_ALLOCATED( pxLink ) != 0 ); ... } [/c] Ich nutze die "Heap4" Implementierung fürs Memory Management, dementsprechend
-
Thread
FTDI zu TTL USB Adapter ges.
stm32serial_triple_usb-to-serial_adapter_using_stm32_blue_pill.html http://dangerousprototypes.com/blog/2017/06/21/how-to-stm32f103c8t6-as-an-usb-device-virtual-serial-port-cdc/ https://medium.com/@pasindusandima/stm32-usb-virtual-com-port-vcp-bc7cb1bd5f5
nicht defekt gegangen sondern war ein fake der per update absichtlich zerstört wurde. WCH CH340c wäre eine Alternative. Etwas robuster CP2102. Höhre baud als der Ch340C hat z.B. der CH343G.
-
Thread
UART zwei mal ausgelöst nach Interrupt?
erhalten. Das sehe ich auch an der Ausgabe von "est" und "t"... hier setze ich den handler: [c] MSS_UART_set_rx_handler(&g_mss_uart0, uart3_rx_handler, MSS_UART_FIFO_SINGLE_BYTE); [/c] Hier ist der interrupt handler: [c] g_rx_buff = buffer this_uart = mein gewählter UART port [
einlesen, bis du (d)ein Terminierungszeichen erkennst (z.B. CR/LF), und kannst dann den empfangenen String parsen. Allein mit "ich will" kommst du nicht ans Ziel. C.K. schrieb im Beitrag #7090805: > Was für einen Microcontroller benutzt du, was für eine API ist das Ein SmartFusion FPGA (aka Actel
-
Thread
STM32 DMA Buffer kopieren
Inhalten abfragen kann. DMA-Empgangspuffer: [c] #define RxBuf_SIZE 100 uint8_t RxBuffer[RxBuffer_SIZE]={0}; [/c] Puffer, indem ich Daten sortiere: [c] #define MessageBuffer_SIZE 30 char Rx [MessageBuffer_SIZE]; [/c] Sortierfunktion
), str , pos_A); } } [/c] Die Callback und Einstellungen sind nach dieser Vorlage https://controllerstech.com/uart-dma-with-idle-line-detection/
-
Thread
Waveshare E-Paper 1.54: Refresh-Probleme
AZ delivery #include "epdpaint.h" #define COLORED 0 #define UNCOLORED 1 int cnt = 0; String tstr = ""; unsigned char image[1000]; Paint paint(image, 32, 32); Epd epd(33, 25, 26, 27); //pins festlegen void setup() { epd.LDirInit(); epd.Clear(); } void loop() { cnt++; tstr = String(cnt); paint.SetWidth(32); paint.SetHeight(32); paint.Clear(UNCOLORED); paint.DrawStringAt(0,0, tstr.c_str(), &Font24, COLORED); epd.SetFrameMemory(paint.GetImage(), 0, 0, 32
-
Thread
STM32 UART transmit gibt kein signal aus
#7087154: > MX_DMA_Init() muss vor die UART Init in der main() aufgerufen werden. Wird sie doch: [c] ... MX_TIM15_Init(); MX_DMA_Init(); <-- MX_UART5_Init();<-- MX_TIM17_Init(); ... [/c] Wurde so von der IDE erzeugt.
Wäre es nicht besser für ein großes Projekt separate .h/.c Dateien zu nutzen?
-
Thread
C/CPP void* in array speichern
wert) aufrufen kann). Ich habe bisher folgendes versucht. Für die Initialisierung des Arrays: [c] static void* openPorts[25] = { 0 }; static HANDLE openPorts[25] = { 0 }; static HANDLE* openPorts[25] = { 0 }; [/c] Zum speichern eines HANDELs hab ich versucht: [c] openPorts[i] = CreateFile
kommentieren von Codeblöcken lösen können, es war ein einfacher Fehler wo ich versehentlich ein wchar_t string in einen char string schreiben wollte.
-
Thread
Mehrere Messdaten von Arduinos über Ethernet auf den PC bringen
c-hater schrieb im Beitrag #7089240: > Dummheit der Benutzer Oh Mann, du kannst es nicht lassen!
C hater braucht dringend etwas platonische Liebe
-
Thread
ATmega328PB macht was er will
> Schrittmotoren, ein Display und ein paar Taster angesteuert werden. > Geschrieben ist alles in C++ mit Atmel Studio Wahrscheinlich eher C, aber das ist nebensächlich. > Jetzt ist das Programm soweit fertig und ich bin ausgiebig am Testen. > Dabei ist mir aufgefallen, dass manchmal einfach
> Schrittmotoren, ein Display und ein paar Taster angesteuert werden. > Geschrieben ist alles in C++ mit Atmel Studio Wird im Programm viel mit der String Klasse gemacht, oder mit "new" Objekte erzeugt und wieder gelöscht? Dann kann auch der Heap Bereich fragmentieren bzw. den Stack überschreiben
-
Thread
Löten eines Solarzellenstrings
string = Strang?
Martin L. schrieb im Beitrag #7084894: > string = Strang? Ja halt einfach Zellen in Reihe geschalten
-
Thread
WinForms C# System.IO.Ports
sender, System.IO.Ports.SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; string indata = sp.ReadExisting(); this.Invoke((MethodInvoker)delegate() { rtb_RecvData.Text += indata; }); } [/c]
Empfang über einen RecieveHandler realisiert. Damit bekomme ich nun mal die empfangenen Daten. [c] private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; string rxdata = sp.ReadExisting(); StringBuilder myBuilder
-
Thread
Convert textbox data to byte array
data [2] = 4; data [3] = 5; data [4] = 6; string str = Encoding.Default.GetString(data); [/c] data Anzeige: "\u0002\u0003\u0004\u0005\u0006"
Äh, wie rum denn nu ? Vom µC zur Textbox also. [code] for (int i=data.Length-1; i >= 0; i--) { if (data[i] < 10) { data[i] += 0x30; } else { data[i] = 0x3f; } } textBox1.Text = Encoding.ASCII.GetString
-
Thread
sprintf funktioniert nicht in ESP-IDF
Hauptprogramm. [c] #include "ssd1306.h" #include <stdio.h> void app_main() { ssd1306_setup(); char string[100]; int i=12; sprintf(string,"test %d",i); // ssd_1306_print(string, 7); ssd
Hast du mal versucht den string mit newline (\n) zu beenden?
-
Thread
Energieflussrichting ermitteln
INTEGER32 value SML_Value Async Serial data 4.19014576 0.00098944 0xFF 0xFFFFF8C4 -> -1852 W? Async Serial data 4.1911872 0.00098944 0xFF Async Serial data 4.19222832 0.00098944 0xF8 Async Serial data 4.19326944 0.00098944 0xC4 Async Serial data 4.1943104
null. Sieht bei mir so aus. {"obis": "1.7.0", "scale": 0, "value": 2729, "unit": "W", "valueString": "0002729" }, {"obis": "2.7.0", "scale": 0, "value": 0, "unit": "W", "valueString": "0000000" }, Grüße Jürgen
-
Thread
CSS PICOLO DOCU im Flash
String-Literal im Quelltext.
@Stefan: Das ist schon mal sehr konstruktiv. Das nach c) mache ich schon lange. a) und b) schaue ich mal, ob ich das hinkriege.
-
Thread
cvs Datenzeile in 10 Zeilen verteilt, wieder in 1 Zeile mergen?
1 erhöht wird. Dabei mit Modulo 10 abfragen. Solange Zähler MOD 10 größer 0 ist, den gelesenen String an den bestehenden String anhängen. Wenn Zähler Mod 10 gleich 0 ist, den eingelesenen String auch noch anhängen und dann in eine 2. Datei wegschreiben. Dann den 2. String aber mit = "" löschen.
vertikale(!) Verkettung aus 10 > Original-Zeilen ergibt. Viel zu viel arbeit und Quatsch. in C8 steht : 23.05.2022 05:59:00;1;;;;;;;;; in C9 steht : 23.05.2022 05:59:00;;2;;;;;;;; in C10 steht : 23.05.2022 05:59:00;;;3;;;;;;; in D8 = 8 in e8 steht = =VERKETTEN(INDIREKT("c"&D8)&
-
Thread
68020 will nicht laufen
-File, aber wenn ich das Programm in ein EEPROM lade tut sich nix. Batchdatei: [code] as68 m68c0.asm -e _INT32_=1 -e _PIC_=0 -e _ROM_=1 -y -ue -VCPU=68020 -i C:\cadul\src\csu cc68 -VDB -I. -VFULLANSI main.c cc68 -VASM -VFULLANSI main.c ld68 @Linker.cl BTOS -3 rom.bd rom.s3 [/code] Linker.cl
OPTIMIZER : CSEQ,-,DCOD,-,LOOP,-,PEEP,-,-,XJMP * SECTION USAGE : CODE= 0 [C],DATA= 5 [D],BSS=10 [D],STRING= 6 [D] * : CONST= 2 [C],INIT= 3 [C],PROFILE=11 [D],POOL= 1 [C] * RESERVED REGISTER : NONE * ROMABLE CODE : OFF * CODE GROUP
-
Thread
Linux ist endlich vom C89 Standard weg
davon aber in der Standardbibliothek ziemlich häufig abgewichen. Wahlfrei rausgegriffenes Beispiel: [c] std::string& std::string::insert(size_t, const string&, size_t, size_t); [/c]
> abgewichen. Wahlfrei rausgegriffenes Beispiel: > [c] > std::string& std::string::insert(size_t, const string&, size_t, size_t); > [/c] Ja, leider. Auch in der cppstdlib gibt es (Jugend)-Sünden. Das betrifft auch die Schnittstelle von std::vector<
-
Thread
3 Interrupts am Arduino Nano
(adr_vl_b); tv_C = sensors.getTempC(adr_vl_c); tr_A = sensors.getTempC(adr_rl_a); tr_B = sensors.getTempC(adr_rl_b); tr_C = sensors.getTempC(adr_rl_c); UpdateScreen(); //Stellt die Werte auf einem OLED Display dar Serial.println("A: " + String(total_A) + " B: " + String(total_B) + " C: " + String(total_C)); } [/c] Erstaunlicherweise, haben die Zähler "total_A,B,C" auch plausibel gezählt obwohl ich mit den Bits um eins verschoben war
-
Thread
R&S/Hameg HMOxxxx mit SCPI Steuern
: C:\WINDOWS\inf\oem60.inf [/code]
**********************************/ QString SerialHandler::ReadScreen(void) { QString MyString; QString Antwort; volatile int counter; serial->clear(); ScreenData.clear(); MyString = "HCOP:DATA?"; sendString(MyString); //Sieht umstaendlich aus, ist aber notwendig
-
Thread
beep-debugging
Ich hatte das mal so gemacht: [c] constexpr note c_ii_1 {Pitch{Letter::c}, Length{Base::whole}}; constexpr note c_s_ii_1 {Pitch{Letter::c, Octave::ii, Accidential::sharp}, Length{Base::whole}}; constexpr note d_ii_1 {
Letter::pause}, Length{Base::whole}}; constexpr auto startMelody = AVR::Pgm::Array<note, c_ii_1, d_ii_1, e_ii_1, f_ii_1, g_ii_1, a_ii_1, h_ii_1, c_iii_1>{}; // C-Dur up // ... [/c]
-
Thread
RA2E2 Options Function Select Register in Assembler setzen
das IAR Embedded Workbench gefunden. In der Linker Datei *.icf muss die Region definiert werden: [c]define region OSF1_REGION = mem:[from 0x00000404 to 0x00000407]; place in OSF1_REGION { section OSF1_SECTION };[/c] Dann muss im Code noch eine C-Datei mit der Definition des Wertes erfolgen: [c]#include <stdint.h> #pragma location="OSF1_SECTION" __root const uint32_t OFS1_VALUE = 0xFFFFAFFF;[/c] Vielen Dank nochmal für die Unterstützung! Gruß, Ernie
-
Thread
[c] atoi mit 2d-Array bei uC
= `\0` setzt (`\0` ist das Sentinel, was bei NTBS erwartet wird). Besser wäre natürlich ein [c] std::array<std::array<char, 8>, 10> ucInputData; [/c] und ein [c] template<auto N> int atoi(const std::array<char, N>&); [/c] Ansonsten hat atoi() das große Problem, das atoi() `0` liefert
> Umwandlung stoppt. Stimmt nicht ganz: - error wir benutzt, wenn ein range-error auftritt (C99 konform) - bei anderen Fehlern wie nach wie vor `0` zurück gegeben. Nur bei nicht C99-konformen Implementierungen wird errno == EINVAL gesetzt: https://en.cppreference.com/w/c/string/byte/strtol
-
Thread
Variable von einer anderen Klasse verwenden
__fastcall Y::Y(s* sender) { b = 0; } void __fastcall MachWas() { y->WertTransfer(b); String line; line.sprintf(String("Ausgabe, %d").w_str(),b); ShowMessage(line); } [/code] Zeile 8 bei ClassY.cpp funktioniert nicht was mache ich falsch? :/ kann mir jemand bitte helfen :)
deklariert, aber nicht definiert. Definiert hast Du stattdessen eine freie Funktion. Und ja: nimm ein C++ Buch und lass diesen M$ __fastcall Scheiß weg.
-
Thread
STM32, printf und fflush
hier eine Lösung um auf das fflush verzichten zu können? Du könntest das Buffering abschalten: [c](void) setvbuf(stdout, NULL, _IONBF, 0);[/c]
Lösung um auf das fflush verzichten zu können? > > Du könntest das Buffering abschalten: > > [c](void) setvbuf(stdout, NULL, _IONBF, 0);[/c] Ganz herzlichen Dank, genau das war die Lösung, nach der ich gesucht hatte !
-
Thread
Google Mail mit ZIP Frage
Dateinamen noch irgendwo im Archiv. Du könntest es mal in einen Hex Editor deiner Wahl laden oder mit Strings über die Datei suchen
noch irgendwo im Archiv. Du könntest es > mal > in einen Hex Editor deiner Wahl laden oder mit Strings über die Datei > suchen Gute Idee. Werde ich machen.
-
Thread
Warum benutzen immer weniger Leute Firefox?
c-hater schrieb im Beitrag #7065819: > Das einzige, was mich davon abhält, dem FF endgültig den Rücken zu > kehren, ist die Tatsache, dass ich dann auf hilfreiche Plugins wie > insbesondere NoScript
da fällt mir nur noch eins ein: https://www.youtube.com/watch?v=C2oxTqAScz4 Gruß an all die Schleumeiers, MaWins und Konsorten ...
-
Thread
Solar Blitzschutzsicherung an geerdete Anlage anschließen
Wechselrichter korrekt funktionieren kann. Es ist schon richtig, das im normalen Betrieb zwischen String und Erde keine Verbindung besteht, aber es können ja durch Äußere Einflüsse entsprechende Fehler auftreten und diese sollten dann auch detektiert werden können.
so spannend, wie heisst das Teil? Bei Fronius fragt die Wallbox den WR ab. In der App kan man SoC Grenzen für den Akku einstellen.
-
Thread
STM32G0: UART DMA empfängt nach Sleep nicht mehr
kommuniziert mit einem LTE Modem via AT Kommandos auf UART2. Wenn ich den MCU in den Sleep schicke: [c] HAL_PWREx_EnableFlashPowerDown(PWR_FLASHPD_LPSLEEP); HAL_SuspendTick(); HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFE);[/c] Wacht mir der MCU sofort wieder auf. Wenn ich vorher den UART noch de-Initialisiere mit: [c] HAL_UART_DeInit(&huart2); [/c] funktioniert der Sleep-Mode wie gewünscht und ich wach sogar wieder auf. Leider funktioniert danach der UART nicht mehr. Ich habe verschiedene Methoden probiert, den