-
Thread
ATMega32 erzeugt in C über UART Graphik-Ausgaben in Linux auf einem Fenster über den X-Server
von einem C-Programm ein Fenster auf dem X-Server öffnen, das über TCP einem anderen Rechner erlaubt, Graphik-Ausgaben auf dem eigenen Rechner machen zu lassen. Und es gibt die Möglichkeit, in C ein Programm
auf der Server-Seite schon fertig und musst nur noch den Client-Teil auf dem µC schreiben.
-
Thread
Executables funktionieren nach Crosscompiler Update nicht mehr
code] Tatsächlich ist GLIBC_2.34 in der Lib libc.so.6 auf dem Target nicht enthalten: [code] strings /lib/arm-linux-gnueabi/libc.so.6 | grep GLIB GLIBC_2.4
GLIBC_2.15 GLIBC_2.16 GLIBC_2.17 GLIBC_2.18 GLIBC_2.22 GLIBC_2.23 GLIBC_2.24 GLIBC_PRIVATE GNU C Library (Debian GLIBC 2.24-11+deb9u3) stable release version 2.24, by Roland McGrath et al. [/code] Dann habe ich versucht die libc.so.6 vom Buildsystem auf das Target zu kopieren, in den gleichen
-
Thread
ESP32 BLE Server mit mehrere Service
include <BLEUtils.h> #include <BLEServer.h> #define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b" #define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8" BLEServer *pServer; BLEService *pService; BLECharacteristic *pCharacteristic; void setup() { Serial.begin
pAdvertising->setMinPreferred(0x12); BLEDevice::startAdvertising(); } void loop() { std::string value = pCharacteristic->getValue(); Serial.print("The new characteristic value is: "); Serial.println(value.c_str()); delay(2000); } ``` Ich hoffe es kann mir jemand weiter helfen.
-
Thread
STM32 USART1 IT Bytes verlust
Fall ist, dann setze ich darauf einen Breakpoint. Der Inhalt des Buffers muss dann entsprechend A,B,C etc. sein -> ister meistens auch -> nur hin und wieder fehlt einer der Buchstaben (z.b. A, C, D ...) (und da ein Byte weniger empfange ist in dem fall das alte 0xFF noch nicht überschrieben) Marc
ich nutze ein STM32H745XI auf dem STM32H745I-DISCO und davon nur der CM7 core (ist ein multicore uC).
-
Thread
oledssd1306 mit OLED-DISPLAY-MASTER zum Laufen bringen
#7350807: > Ich führe ein Cursor Goto 0,0 und ein schreiben mit 0x00 vor jedem > Bildwechsel aus. [c] //****main.c****// #include "lcd.h" int main(void) { lcd_init(LCD_DISP_ON); // init lcd and turn on lcd_gotoxy(0, 0); lcd_puts("Test???????"); // put string from RAM to display (TEXTMODE
lcd_gotoxy(0, 4); // set cursor to first column at line 3 lcd_puts("Test???????"); // put string from RAM to display (TEXTMODE) or for (;;) { // main loop } return 0; } [/c]
-
Thread
Audioeinsatz von Digitalpotis
Hallo, über den Einsatz des X9C-ICs von Xicor, aber auch anderer Digitalpotis, konnte man hier auch schon Beiträge lesen. Was mich allerdings wundert, ist die Tatsache, dass es mir bei diesen ICs nicht gelungen ist, Applikationsbeispiele
Audio-ICs, z.B. den R2A15218FP von Renesas. Der macht Quellenumschaltung, Klang, Lautstärke über I2C gesteuert. https://www.digikey.de/de/products/detail/rochester-electronics-llc/R2A15218FP-U00R/12129144?s=N4IgTCBcDaIEpgIIEYCsZkA4BiAFEAugL5A
-
Thread
Letzte Stelle einer Ausgabe herausfinden
Eva T. schrieb im Beitrag #7350008: > Gibt es eine andere Möglichkeit? Falls du von C oder einer ähnlichen Sprache sprichst, ist das Ende des Strings, wie schon geschrieben, durch ein 0-Byte gekennzeichnet, falls es sich um eine Ausgabe mit irgendeiner Funktion handelt, möglicherweise
-
Thread
ESP32 sethostname klappt nicht
aus einem Struct an einen Client zu schicken, wenn ich meinen Struct Element für Element als JSON String zusammenbaue wie dargestellt? Die Laenge scheint ja unbegrenzt zu sein. Also Name des Elementes + String(Data.xyz). [c] //First request will return 0 results unless you start scan from somewhere
(true); } } json += "]"; request->send(200, "application/json", json); json = String(); }); [/c]
-
Thread
avr AvrAssembler2, ich bräuchte ein bisschen Hilfe
möchte, der probiere mal die großgeschriebene Variante (unter 'Syntax') zusammen mit der Option '-c'.
c-hater schrieb im Beitrag #7349790: > Es sei denn, man war so wahnsinnig, irgendwelche exotischen Optionen zu > aktivieren, wie z.B. das von S.Landolt erwähnte -c. Stellt sich die Frage, wofür es
-
Thread
KiCAD 7.0 verfügbar – Fokus auf Verbesserung der Usability
. Neben dem in der Release-Ankündigung gezeigten und aus chinesischen Schriftzeichen bestehenden String ist dies auch zur Integration der verschiedenen Symbol-Schriftarten nützlich.  Bildquelle: KiCAD. Eine weitere Erweiterung betrifft die Möglichkeit zum Einfügen
containers) Boost: 1.80.0 OCC: 7.6.2 Curl: 7.83.1-DEV ngspice: 39 Compiler: Visual C++ 1934 without C++ ABI Build settings: KICAD_SPICE=ON
-
Thread
Webserver ESP8266 soll mehrere KB an Daten an Browser senden
. Kombinier das damit, dass die Nachricht auch noch mehrfach im Speicher gehalten wird (JSON->String->c_str...) und schon ist der ganze RAM verbraucht. Nachdem du die Events sowieso nicht millisekunden-genau sendest, sondern per Timer in deiner loop(): Du *brauchst* die Events überhaupt nicht,
getReadings,5000); [/c] in der "plotTemperatur"-Funktion muss die "for"-Loop angepasst werden, weil jetzt nicht immer exakt 25 Zeilen zurückkommen: [c] function plotTemperature(jsonValue) { // Lese Temperatur
-
Thread
1000v DC Trennschalter zieht funken.
Passt für einen String, wenn man mehrere Strings parallelschaltet (wohl nur bei wirklich großen Anlagen), dann werden die einzelnen Strings gegeneinander mit Sicherungen geschützt. Heißt bei einem Kurzschluss an einem String werden seine Leitungen vor dem Strom der anderen (intakten) Strings geschützt.
-
Thread
[STM32/HAL] simples U(S)ART-Library
kopiert man einfach in Core/SRC Für einen ersten Test habe ich ein simples Demo angehängt. (uart_demo.c, und uart_demo.h) Um das zu nutzen muß man in der generierten main.c die Datei uart_demo.h zu den Includes hinzufügen: [c] /* Private includes -------------------------------------------------
**********************************/ void uart_puts(UART_com_t *Serial_COM, char *s); [/c]
-
Thread
allgemeine PicoMite Anfängerfragen
Weiter mit I²C: Es lag nicht an den externen Pullups sondern an der falschen Version des LM73 (I²C Temperatursensor). Ich habe deshalb mal einen I²C-Scanner gebastelt: [code] izs: SetPin gp20,gp21,i2c I2C open 100,1000 For adr = &H00 To &Hff I2C read adr,0,1,reg If MM.I2C = 0 Then Print "Adresse: "Hex$(adr)" = "Bin$(adr)" Wert: "Hex$(reg)" = "Bin$(reg) EndIf Next adr I2C close [/code] Der LM73 hat laut Datenblatt die Adresse &B1001
-
Thread
STM32 empfängt keine SPDIF-Daten
aktiviert. Trotzdem wird nichts empfangen, die Receive-Interruptfunktion wird nie aufgerufen: [c]void HAL_SPDIFRX_RxCpltCallback(SPDIFRX_HandleTypeDef *hspdif) { spdifRecvComplete=1; }[/c] Die Initialisierung von CubeMX sieht inklusive des Pinmappings so aus (zumindest die relevanten Teile
(&hspdif); /* USER CODE BEGIN SPDIF_RX_IRQn 1 */ /* USER CODE END SPDIF_RX_IRQn 1 */ } [/c]
-
Thread
BASH -Code auf Linux Mint ausführen, brauche bitte Hilfe
Moin, - ich habe eine aktuelle Debian-Maschine aufgesetzt, xmllint und strings installiert. Dann all_set.FR4 in ALL_SET.FR4 umgenannt. [c] BASH_VERSION='5.1.4(1)-release' [/c] Einmal ausprobieren: [c] tom@xml:/tmp/abc/prg$ ./FR_extract_sets_from_set_all.sh -:2:
Moin, - wenn man das Programm anguckt, ist ein Magic-String einprogrammiert: [c] SET_BINARY_HEADER="\\xEF\\xBB\\xBF\\x00\\x00\\x03\\x28" [/c] Wenn man die set_all.fr4-Datei anguckt: [c] 000000 ef bb bf 00 00 08 2f 3c 3f 78 6d 6c 20 76 65 72 >......
-
Thread
Mit VB.NET in AVR EEPROM schreiben
bin nicht neu hier aber schon seit 6 Jahren zum ersten mal wieder. Gibt es eine Möglichkeit, mit C# oder VB.NET einen String in AVR Eprom zu schreiben? Bin für jede Hilfe sehr dankbar Johannes
Johannes Kreller schrieb im Beitrag #7345619: > Gibt es eine Möglichkeit, mit C# oder VB.NET einen String in AVR Eprom > zu schreiben? Mit AVR910 und AVR911 hat Atmel einen einfachen Programmieradapter zum Nachbauen samt Kommunikationsprotokoll beschrieben: http://ww1.microchip.com
-
Thread
Keine Verbindung zu mySmartUSB light in Arduino IDE
full-speed USB device number 66 using xhci_hcd [48426.073838] usb 1-2.2: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 2.04 [48426.073843] usb 1-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [48426.073845] usb 1-2.2: Product: myAVR - mySmartUSB light [48426.073846] usb
1-2.3: cp210x converter now attached to ttyUSB1 [ 4735.857783] usb 1-9.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=220 [ 4735.857785] usb 1-9.3.1: Manufacturer: Arduino (www.arduino.cc) [ 4735.857786] usb 1-9.3.1: SerialNumber: 7583434363935190C261 [ 4735.891873] cdc_acm 1-9.3.1
-
Thread
ESP32 von heltec mit Display
Thomas H. schrieb im Beitrag #7344035: > I2C Adresse Lade mal den I2C Scanner aufs Board, der sollte die Adresse finden, falls es daran liegen sollte.
/u8g2/wiki #define OLED_RESET 16 U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, OLED_RESET, OLED_CLOCK, OLED_DATA); [/c] und [c] void setup() { // Setup OLED Display u8g2.begin(); } [/c] Das sollte zumindest die Pins klären.
-
Thread
UART Übertragungsfehler bei bestimmten Zahlenwerten
Übertragungsbuffers bereit ist USART1->TDR = data; // Daten in Übertragungsbuffer schreiben }[/c] C# Consolen Anwendung zum Auswerten der Daten: [c] SerialPort port = new SerialPort("COM8", 115200, Parity.Odd, 8, StopBits.One); port.Open(); UInt16 value = '0';
nicht an falschen werten die übermittelt wurden, der einzige Fehler war die Verwendung der Funktion [c]rx_value = Convert.ToByte(port.ReadChar())[/c] in meinem C# Programm. Wenn ich [c]Convert.ToByte(ReadChar())[/c] durch [c]Convert.ToByte(ReadByte())[/c] ersetze funktionert es einwandfrei. Anscheinend
-
Thread
Alternative Sprache für ESP32
Nicht vergessen, aus "21st Century C": C is Punk Rock! :))
loeti2 schrieb im Beitrag #7341483: > Nicht vergessen, aus "21st Century C": > C is Punk Rock! :)) Genau!! In der "main" kann man nun return(0) weglassen! Und mit asprintf() sind die Zeiger in der String- verarbeitung "keine Gefahr" mehr! :-P mfg
-
Thread
CCS: MSP430: Information memory write
Hallo, ich versuche, bisher vergeblich, auf einfache Weise einen String im Informationmemory mittes CCS zu platzieren. Integerweise klappt das mit z.B. #pragma DATA_SECTION(im_xyz, ".infoD") #pragma RETAIN(im_xyz) .... Ich könnte den String damit natürlich umständlich
würde gerne was mit irgendwie z.B. typedef union _un_i2cval { u_int iVal; u_char cVal[2]; }un_i2cval; machen. Das geht mit Varaiblen im RAM ganz gut. Könnte mir da bitte jemand helfen, oder geht das gar nicht? Danke
-
Thread
HEX Datei bearbeiten und dann flashen
schrieb im Beitrag #7341428: > die zweite Datei mit der Seriennummer: 2302070102 > :10010000 4C0034005F0038004100160332003300 19 > :10011000 30003200300037003000310030003200 53 [c] :10010000 4C0034005F0038004100160332003300 19 2 3 :10011000 30003200300037003000310030003200
Kette berechnet auf der Seite von Wikipedia https://de.wikipedia.org/wiki/Intel_HEX#Berechnung_der_Pr%C3%BCfsumme kommt 3C0 -> C0 = 40 wie ist das bitte zu verstehen?
-
Thread
ISR Aussetzer durch Volatile-Variablen-Polling ?
Speicherzellen benötigt. Sie wird nie benötigt und ist auch falsch für normale Speicherzellen im Sinne des C/C++-Speichermodells: also auch nicht für Variablen mit nebenläufigem Zugriff. Alle Howtos und Tutorials, die derartiges behaupten, sind schlicht falsch. In C/C++ ist es grundsätzlich UB, wenn
Registern lagern. > Volatile nur auf die "eine". Du kannst ja mal einen Vergleich konstruieren. [c] __asm__ __volatile__ ("" : : : "memory"); [/c] macht die Optimization Barrier auf alles im RAM, [c] uint8_t flag; ... __asm__ __volatile__ ("" : "=m"(flag) ); [/c] macht das nur für eine
-
Artikel
AVR-Tutorial: LCD
SP ! " # $ % & ' ( ) * + , - . / 3x 0 1 2 3 4 5 6 7 8 9 : ; = ? 4x @ A B C D E F G H I J K L M N O 5x P Q R S T U V W X Y Z [ \ ] ^ _ 6x ` a b c d e f g h i j k l m n o 7x p q r s t u v w x y z { } ~ DEL Die ersten beiden Zeilen enthalten die Codes für einige Steuerzeichen,
abwechselnd mit dem Buchstaben an dieser Stelle angezeigt wird. d = 0, Display aus d = 1, Display ein c = 0, Cursor aus c = 1, Cursor ein b = 0, Cursor-Blinken aus b = 1, Cursor-Blinken ein Ausführungszeit: 40 µs Cursor/Scrollen: 0b0001srxx. Bewegt den Cursor oder scrollt das Display um eine Position entweder
-
Thread
Woran erkenne ich das ein Projekt GPL-Code verwendet
, aber selbst dann kann es ein funktionsgleicher Nachbau sein. Für einen Beweis sollten schon Strings o.dgl. drinstecken, z.B. "libfoo error: ..." oder gar "libfoo v08.15, (c) 2023 ..."
Produkte welche keine Deklaration haben auch keine OSS Software verwenden: https://www.philips.de/c-w/search.html#q=open%20source%20lizenz%20gpl&cq=%40ps_contenttype_key%3C%3Eproduct Michael
-
Thread
Diamex EXA-PROG mit AVRDUDE uter Linux (Mint)
Mint mit AVRDUDE anzusprechen, leider ohne Erfolg. nils@X270:~$ lsusb Bus 001 Device 114: ID 16c0:2a9b Van Ooijen Technische Informatica EXA-PROG Den EXA-PROG versuche ich unter AVRDUDE als stk500 über usb anzusprechen. usr/bin/avrdude -C /etc/avrdude.conf -p m8 -P usb -c stk500 -U flash:
full-speed USB device number 116 using xhci_hcd [949588.003540] usb 1-1: New USB device found, idVendor=16c0, idProduct=2a9b, bcdDevice=45.80 [949588.003543] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [949588.003545] usb 1-1: Product: EXA-PROG [949588.003546] usb 1-1: Manufacturer
-
Thread
Beispielcode: ATMega16 8 bit LCD-Ansteuerung von ChatGPT
LCD_PORT, r16 sbi LCD_PORT, LCD_E nop cbi LCD_PORT, LCD_E ret ; Function to write a string to the LCD lcd_write_string: ; Load string pointer into r18 ldi r18, lo8(lcd_string) ldi r19, hi8(lcd_string) ; Loop through string string_loop: ld r16, X+ cpi r16, 0 breq string_done rjmp lcd_write_data rjmp string_loop string_done: ret [/c]
-
Thread
Neue Batterietechnik. Energiewende hat kein Speicherproblem!
nicht allzu viele, aber immerhin: https://de.wikipedia.org/wiki/Vanadium-Redox-Akkumulator#Die_gr%C3%B6%C3%9Ften_Vanadium-Redox-Flow-Akkumulatoren Der größte davon könnte mit seinen 60 MWh einen Tag lang 6900 deutsche Durchschnittshaushalte versorgen (wenn er denn in Deutschland stehen würde).
mit einem EE-Anteil unter 20%. https://energy-charts.info/charts/renewable_share/chart.htm?l=en&c=DE&interval=day&year=2022
-
Thread
Pointer Übergabeparameter eine Funktion übergeben
ist, d.h. mit einem Element endet, in dem alle Elemente Null sind. Diese Vorgehensweise ist bei Strings in C sehr verbreitet, da ist ein Element halt keine Struktur, sondern nur ein /char/, aber funktional läuft das aufs gleiche raus.
[c] typedef struct List { TimerElement timerElement[MAX]; TimerElement* z; int entries; }List; [/c] [c] void Uart_Init(List* pList, eBaudrate
-
Thread
Batch vs. Powershell - Umgebungsvariablen als Parameter nutzen
Nun versuche ich das gleiche mit Powershell: $Env:LINTINSTPATH="C:\PC-Lint" $Env:LINTCFGPATH="C:\PC-Lint\Cfg" &$Env:LINTINSTPATH\LINT-NT.EXE +v -i$Env:LINTCFGPATH Module.lnt Als Ergebnis bekomme ich: Error 307: Can't open indirect file 'Module.lnt' Wenn ich dagegen im Aufruf der EXE $Env:LINTCFGPATH durch C:\PC-Lint\Cfg ersetze funktioniert es: &$Env:LINTINSTPATH\LINT-NT.EXE +v -i"C:\PC-Lint\Cfg" Module.lnt Was mache ich falsch? Wie kann ich $Env:LINTCFGPATH richtig dem -i-Parameter mitgeben?
-
Thread
Taschenrechner für Windows gesucht
Interpretationsmöglichkeit eines ›Unary -‹ ist zB. bei Python und auch bei anderen Sprachen zu sehen: [code] $ python3 -c "print(-3**2)" -9 $ python3 -c "print(-3**3)" -27 [/code]
Mal was interessantes: https://www.youtube.com/watch?v=5mBw7tnRx1c
-
Thread
ESP32 Webserver mitJSON Datenaustausch
uint16_t WhStdLastWeek[8]; uint8_t WhWeekidx = 0; // Indexcounter } attribute((packed)) [/c]
doc["Minute"] = Zeit.min; doc["Sekunde"] = Zeit.sec; serializeJsonPretty(doc, Serial); } [/c]
-
Thread
Attiny804 (tinyAVR0) als I2C Slave gibt überhaupt keine Regung von sich
könnte, da sich alle Beispiele halbwegs einig sind. Habt Ihr eine Idee wo der Fehler liegen könnte? [c] #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> extern void USART0_sendString(char *str, uint16_t len); extern void USART0_init(); void twi_slave_begin(uint8_t address
habe es auch schon mit Counter/LED > innerhalb der ISR versucht. Aber es passiert gar nix. > [c] > ISR(TWI0_TWIS_vect) { > USART0_sendString("ISR\n", 4); > // TWI_HandleSlaveIRQ(); > } > [/c] Bist Du Dir sicher, dass USART0_sendString() aus einem Interrupt heraus aufgerufen werden darf