-
Thread
USART tx-timing Problem
{ uart_string[uart_str_count] = c; uart_str_count++; } else { uart_string[uart_str_count] = '\0'; uart_str_count = 0; uart_str_complete = 1; led1_blink; lcd_goto(3,7);// lcd_int(c);// lcd_int(uart_string[0]); lcd_int(uart_string[1]); lcd_int(uart_string[2]); lcd_int(uart_string[3]); lcd_int(uart_string[4]); wait; wait; wait; wait;
-
Thread
-
Thread
Templates (auch) für yt-dlp - was bedeuten die Formatierungszeichen, Klammern usw.?
dass ich da irgendwo in deren Code nachgeschaut hätte. Mein Gefühl sagt mir, dass das "s" für eine String-Konvertierung steht – eine numerische Konvertierung (vermutlich sowas wie "d" für dezimal oder "x" für hexadezimal) wird ja eher nicht das sein, was du brauchst. ;-)
%(title)s.%(ext)s Sieht für mich nach einer Formatierung ähnlich der Formatierung für printf in C aus.
-
Thread
NodeRed: Frage zu String filtern
Der String ist etwa 1 kB lang und enthält dann irgendwo z.B. folgendes: ....."humidity:0":{"id": 0,"rh":36.3},..... ....."temperature:0":{"id": 0,"tC":23.1,"tF":73.6},...... Ich möchte z.B. gerne nur den
Bot N. schrieb im Beitrag #7771896: > Reicht das ? Sicher, dass du die Daten als String behandeln möchtest und nicht als das JSON-Objekt, das deine Daten eigentlich sind? Dann hättest du sie in msg.payload.[...].humidity.rh und in msg.payload.[...].temperature.tC
-
Thread
Zugriff auf systemd private tmp
, habe damit aber meine Probleme: Der erste 'Unique'-Teil (827e6bef8aa646c894eb69b1796ebad1) ist die Boot ID, die ich einfach über /proc/sys/kernel/random/boot_id bekomen kann. Der zweite 'Unique'-Teil (UOoiem) wird aber wirklich bei jedem Dienststart gewürfelt und ist offensichtlich
Ahnung hat. Für das cgi script existiert nur /tmp, das es unter /tmp/systemd-private-827e6bef8aa646c894eb69b1796ebad1-apache2.service-UOoiem/tmp liegt, kann es nicht wissen.
-
Thread
Sumd (Graupner) mit Micropython auswerten
. Wenn Du mit den Werten etwas anfangen will, solltest Du wohl die Bytes erst einmal in einen String mit den Hex-Werten umbauen, bevor Du es mit dem String davor zusammenpfropst.
#!/python import struct a,b = 0x33,0x44 # Konvertiert zwei unsigned 8bit in ein unsigned 16bit c = struct.unpack('H', struct.pack('2B', a,b))[0] # c=17459 [/code] Ausgabe noch vergessen: [code]#!/python print(f'{c:05} {a:02x} {b:02x}') [/code]
-
Thread
Könnte mir jemand diesen C++ Code in eine class Bibliothek umschreiben
*page, uint8_t *buffer, int32_t length); int32_t pngSeek(PNGFILE *page, int32_t position); String readFile(fs::FS &fs, const char * path); void pngDraw(PNGDRAW *pDraw); }; #endif mein C++ File #include "MyPngLib.h" void PngClass::InitPngLib(TFT_eSPI tft ) { _tft = tft; //SPIClass
->y, pDraw->iWidth, 1, lineBuffer, dmaBuffer); } void PngClass::DrawPng(int x, int y,const String PngName) { xpos = x; ypos = y; int16_t rc = _png.open(PngName.c_str(), pngOpen, pngClose, pngRead, pngSeek, pngDraw); if (rc == PNG_SUCCESS) { _tft->startWrite
-
Thread
Linux: Nach Start von MPlayer hat Chromium keine Soundausgabe mehr
] main.c: Compiled with Valgrind support: no D: [pulseaudio] main.c: Running in valgrind mode: no D: [pulseaudio] main.c: Running in VM: no D: [pulseaudio] main.c: Running from build tree: no D: [pulseaudio] main.c: Optimized build: yes D: [pulseaudio] main.c: All asserts enabled. I: [pulseaudio] main.c: Machine ID is 7bd6478ecf2641bebc989892f835cf85. I: [pulseaudio] main.c: Session ID is c1. I: [pulseaudio
-
Thread
avrdude bauen, libusb?
Handy geguckt und nicht alles so überblickt). Damit hätte es aber genügen sollen, diesen error-String auf 4096 aufzuweiten. Besser wäre es ohnehin, die Größe dynamisch zu machen, aber das ist 'n anderer Punkt.
geguckt und nicht alles so > überblickt). > > Damit hätte es aber genügen sollen, diesen error-String auf 4096 > aufzuweiten. Kleiner Nachtrag: bei den diversen Pfadnamen wäre es auch völlig legitim, snprintf() zu benutzen, um so den sich ergebenden String zu limitieren.
-
Thread
__attribute__ ((format (printf, 2, 3)))
In C++ kann man den Compiler Strings beliebig prüfen lassen: https://github.com/fmtlib/fmt
-
Thread
Grundlagen: CUDA
CUDA-Programmierung? Folgendes einfaches Beispiel lässt sich bei mir problemlos compilieren (Ubunut 20.04): [c] // This is the REAL "hello world" for CUDA! // It takes the string "Hello ", prints it, then passes it to CUDA with an array // of offsets. Then the offsets are added in parallel to produce the string
); cudaFree( ad ); cudaFree( bd ); printf("%s\n", a); return EXIT_SUCCESS; } [/c] Laufen tut es auch, aber die Frage ist: Wie kann man feststellen, dass es auf der GPU und nicht auf dem Prozessor läuft?
-
Thread
Akku-Kompressor = = Lidl lohnt nich
andere hatte reichlich da. Auspacken, Einschalten geht nicht. Es liegt ein Kabel USB-A nach USB-C bei, laut Anleitung laden mit 5 Volt / 1 Ampere. Das Display geht an, 29 mA Ladestrom und eine Weile später dann noch 2 mA. Anzeige "Err" mit blinkendem Akkusymbol. Laut Anleitung wird Laden blockiert
Ultimate Speed ist eine Marke von Lidl: https://register.dpma.de/DPMAregister/marke/experte?queryString=(inh%3D%22Lidl%22%20oder%20anm%3D%22Lidl%22)%20and%20(marke%3D%22ultimate%22%20and%20marke%3D%22speed%22)&lang=de Genau wie Parkside: https://register.dpma.de/DPMAregister/marke/experte?queryString
-
Thread
AVR PSTR mit gegebenem String nutzen
Ich versteh die Frage nicht. Im Code gibt es überhaupt kein PSTR: > void lcd_writeProgString(const char *string) { > char c; > while ((c = (char)pgm_read_byte(string++))) { > lcd_writeChar(c); > } > }
sah so aus, als wolle er Daten aus dem > Flash ans LCD schicken. Mit avr-gcc dann einfach do: [c] void lcd_writeProgString (const __flash char *string) { char c; while ((c = *string++)) { lcd_writeChar (c); } }[/c] oder [c]void lcd_writeProgString (const __flash
-
Thread
Fehler beim Auslesen von 2 I2C-Sensoren
#define I2C1 bus ROWS = 2 COLS = 16 lcd_address = 0x27 i2c1 = I2C(1, sda=Pin(2), scl=Pin(3), freq=100000) # lcd lcd = I2cLcd(i2c1, lcd_address, ROWS, COLS) # Define I2C0 bus using SoftI2C i2c0 = SoftI2C
#Blank screen lcd.clear() def read_temp(sensor_address): time.sleep_ms(500) data = i2c0.readfrom(sensor_address, 2) t = (data[0] << 3 | data[1] >> 5) * 0.125 return t while True: try: lcd.clear() lcd.move_to(0,0) string_out = "RPi Pico W"
-
Thread
section `.data' is not within region `data'
von version.h anzeigen lassen: [c] $ cat /usr/local/avr/include/avr/version.h /* Copyright (c) 2005, Joerg Wunsch -*- c -*- All rights reserved. … /** \ingroup avr_version String literal representation of the current library version. */ #define __AVR_LIBC_VERSION_STRING__ "2.3.0git" [/c] (In meinem Falle ist es also eine Entwicklerversion direkt aus dem Git, die ich installiert habe.) > Das habe ich nicht verstanden. Ich das avr-size nicht schlecht, wenn es
-
Thread
"Intelligenter" Textdisplayadapter mit Padauk PFS154
Zeilen ideal als Anzeige für einen "Headless"-Server: Raspi, NAS & Co. Ich habe dafür bisher ein ESP32-C3 mit Micropython und lcd_i2c genutzt https://github.com/brainelectronics/micropython-i2c-lcd
darum nicht kümmern. Evtl. via I2C einstellbaren Kontrast und Hintergrundbeleuchtung.
-
Thread
PV Module testweise belasten
Michael B. schrieb im Beitrag #7757506: > Dann musst du sie eh einzeln vermessen. Möchte den String aus vier Modulen komplett testen, habe noch keinen WR.
Und Vorsicht mit hohen DC-Spannungen an PV-Strings. Da kann beim Auftrennen einer Verbindung unter Last ein ordentlicher Lichtbogen stehenbleiben und das ist alles andere als ungefährlich.
-
Thread
Datenübertragung über serielle Schnittstelle
Also entweder sendest du ASCII oder HEX. Aber du sendest die HEX Werte als ASCII String, dass ist nicht das gleiche. Bsp.: ASCII String "abc" wäre in HEX [0x61, 0x62, 0x63] Jedoch musst du dann die HEX Werte "binär" übertragen und nicht als String "616263".
Teste es mal so: [c] Dim bytes() As Byte = { &H1B, &H73 } SerialPort1.Write(bytes, 0, bytes.Length) [/c]
-
Thread
Digitale Wasserwaage mit Arduino / Embedded
kurzen Leitungen an das IC > angebunden werden, das damit abgeblockt wird. So besser? Habe jetzt C4, C14, C3, C7, C5 und C15 etwas näher gerückt. > Schau im Datenblatt des Transistors, wie viel Spannung Vgs der > Transistor verträgt. Die Diode muss darunter liegen. Danke für den Tipp, da läge
möglichst kurzen Leitungen an das IC > angebunden werden, das damit abgeblockt wird. So besser? Habe C4, C14, C3, C7, C5 und C15 etwas näher gerückt. > Schau im Datenblatt des Transistors, wie viel Spannung Vgs der > Transistor verträgt. Die Diode muss darunter liegen. Danke für den Tipp, da läge
-
Thread
Welche Programmiersprache für numerische Rechnungen Gesperrt
Nimm C/C++ und math.h
Sheeva P. schrieb im Beitrag #7763458: > Das würde ja dem Überladen von Methoden aus C++ ähneln, > oder bin ich auf dem Holzweg? Sehe ich auch so. ein sehr einfaches Beispiel: [code] show wird immer aufgerufen wenn ich "MeineDaten" anzeigen will struct MeineDaten a::String
-
Thread
Einfache CPU, einfacher Rechner, nur zum Lernen, Erfahrung?
andere häufig gebrauchte Direktive ist "DB" ("data byte"). Die kann man benutzen, um Daten wie z.B. Strings in den Maschinencode zu schreiben. Beipiel: DB "Hello World", 13H, 10H, 0 erzeugt die Bytes 48 65 6c 6c 6f 20 57 6f 72 6c 64 0d 0a 00. Für einen gebrauchsfähigen nullterminierten String mit
"Out of Memory" angezeigt wurde. Verschaerft wurde das nur noch durch die Speicherverwaltung von Strings, z.B. [c]A = ""[/c] legte den String an einem Punkt x ab, wenn Du spaeter [c]A = A + "jetzt geht es los" + A [/c] ausfuehrst, musste der Rechner schon 1975 eine Garbage-Collection durchfuehren
-
Thread
Micropython und Esp32 statt Arduino ?
ich verstehe den Sinn von Micropython nicht. Wozu so etwas nutzen, wenn man nativ in C/C++ programmieren und debuggen kann? C/C++ für Mikrocontroller ist sehr schnell erlernt. Debuggen mit Breakpoints kann man vermutlich gar nicht oder habe ich da etwas übersehen?
ein äquivalentes >> C++-Programm. > > Aber doch nicht auf einem µC. Ich verstehe gerade nicht, was Sie damit meinen: Warum sollte es auf einem µC anders sein?
-
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
RS232 ASCII Signal zu Modbus RTU RS485 umwandeln
blockiert wird, also > zeichenweise lesen, damit modbus.poll(); nicht verhungert... also in etwa: [c] String buffer; void loop() { if (Serial2.available()) { int zeichen=Serial2.read(); if (zeichen=='\r') { wert = buffer.trim().toFloat(); buffer = String();
. Und es kann sein, dass "String.toInt()" bei Arduino keine negativen Zahlen kennt... Insofern ist der weg über toFloat vielleicht einfacher. Für ungenutzten Flash-Speicher & Rechenzeit gibt's ja kein Geld zurück.
-
Thread
eHZ Stromzähler von EHM metering auslesen
Photovoltaikanlage in Betrieb. Jetzt habe ich von Westnetz einen eHZ Zähler für Wärmepumpenstrom bekommen. [c]Hersteller: EMH metering GmbH & Co. KG Typ : eHZB, Elektronischer Basiszähler[/c] Ich lese die Zähler mittels IR-Lesekopf und RS232 Verbindung aus. Die Verarbeitung erfolgt mit VB.NET. Ich
folgen zur Zeit 7 x 00 und an der achten Stelle ein Hex Wert für den Zählerstand. [c]'1.8.0 i = BytesSuchen(bData, b_1_8_0, 0) If i = -1 Then If blnAllesProtokollieren Then cText = "1.8.0 nicht gefunden" WrProtokoll(cText) End If Else If Convert.ToInt64
-
Thread
Coroutinen für microController
} ISR(TIMER1_OVF_vect) { enqueue(M_Time); } [/c]
. Das ist auf keinen Fall besser wie Coroutinen. Was man nicht aus dem Bick verlieren darf. Die C++ Entwicklung wird nicht primär für µC gemacht.
-
Thread
AT89C2051 und das UART Rätsel
Bei 12MHz sind nur max 2400 Bd erreichbar, mehr geht nur mit einem Baudratenquarz (11.059MHz). Der 89C2051 hat keinem Timer2.
an dieser Stelle zum µC ankommen.
-
Thread
Diamex EXA-Prog mit avrdude unter Linux
17 using xhci_hcd Okt 02 22:32:03 infinitypro kernel: usb 3-3.2: New USB device found, idVendor=16c0, idProduct=2a9b, bcdDevice=45.80 Okt 02 22:32:03 infinitypro kernel: usb 3-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Okt 02 22:32:03 infinitypro kernel: usb 3-3.2: Product: EXA-PROG
21 using xhci_hcd Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: New USB device found, idVendor=16c0, idProduct=2a9b, bcdDevice=45.80 Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Okt 02 22:37:37 infinitypro kernel: usb 3-3.2: Product: EXA-PROG
-
Thread
Suche Erklärung für C++ Code
in C, sondern lediglich in GNU-C. Dafür zunächst mal ein Beispiel für lokale Funktionen in GNU-C: [c] #include <stdio.h> void run (void (*f)(void)) { f (); } int main (int argc, char *argv
Elementinitialisierung angeben). S. auch folgendes Beispiel aus dem oben verlinkten Artikel: [c] std::vector<std::string> strings{2}; // A vector of two empty strings. std::vector<int> ints{2}; // A vector containing only the integer 2. [/c] Beide Vektoren werden syntaktisch exakt
-
Thread
Linux: Verdächtige pdf-Datei untersuchen
Martin M. schrieb im Beitrag #7743266: > cat abc.pdf | strings | more Ein weiterer Kandidat für usesless use of cat.
Ziemlich am Ende finden sich diese Strings: /Producer (SECnvtToPDF V1.0) /CreationDate (D:20240926121534+01'00') /Creator (OKI ES7170 MFP)
-
Thread
Debian, glibc, basename(3) -- das ist doch ein Scherz?
wenn du es doch merkst, dann bist du vielleicht sogar froh wenn basename() nicht einen neuen malloc String liefert sondern einen Pointer in den übergebenen Dateiname.
Mac OS definiert ein [c]basename_r(const char *path, char *bname)[/c] wobei der Aufrufer in bname mindestens MAXPATHLEN Bytes bereitstellen muss. Das lässt sich mit der GNU version leicht auch für Linux nachrüsten.
-
Thread
Einzelne Bit in Bitfeld in for Schleife ansprechen
[c] #include <stdlib.h> #include <stdio.h> #include <stdint.h> #include <stdbool.h> #include <string.h> #include <ctype.h> union { uint16_t allbits; struct { uint16_t bit0:1; uint16
sind damit obsolete & ersetzt. Der C Standard ist also immer der neuste. Ich persönlich bevorzuge aber C11/C17 gegenüber C23.
-
Thread
KI Code Generatoren
Marci W. schrieb im Beitrag #7741609: > ein HalloWelt-Programm für einen Microcontroller [c] #define F_CPU 3333333 #include <avr/io.h> #include <util/delay.h> #include <string.h> void USART0_sendString(const char *str) { for(size_t i = 0; i < strlen(str); i++) { while(!(USART0
3.33MHz USART0.CTRLB = USART_TXEN_bm; // enable Transmitter while(1) { USART0_sendString("Hello World!\r\n"); _delay_ms(1000); } } [/c]
-
Thread
ATMega Auslaufmodell?
sondern der 1000ste Versuch, einen Flamewar lostzutreten mit der Hypothese vom Sterben der 8-Bit µC?
! Jetzt liege ich zerschmettert und zerstört am Boden! Ich glaube, ich gebe es besser auf, das uC Werkeln...