-
Thread
Stoßt man mit C an Grenzen?ASM von Vorteil?
Wenn du C kannst, dann fang erstmal mit C an, so dass du nur noch den µC kennen lernen musst. An die Grenzen kommt man eigentlich nur, wenn etwas wirklich extrem Zeitkritisch ist. Assembler ist aber generell
zu verstehen als uC ^^) Gruß
-
Thread
ESP32 DevKit-C
--flash_freq 80m --flash_size detect 0xe000 C:\Users\Helmmi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4/tools/partitions/boot_app0.bin 0x1000 C:\Users\Helmmi\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4/tools/sdk/bin/bootloader_qio_80m.bin 0x10000 C:\Users\Helmmi\AppData\Local\Temp\arduino_build_366468/vfd_clock_wifi.ino.bin 0x8000 C:\Users\Helmmi\AppData\Local\Temp\arduino_build_366468/vfd_clock_wifi.ino.partitions.bin esptool.py v2.6 Serial
-
Thread
USB AVR ISP
leider hast du den hardware i2c mit den led´s belegt ;( also soft-i2c Leider hab ich keine ahnung von C , kann nur asm oder basic deswegen dachte ich du koenntest so ein funktion 'flott' einbinden Auf dem 10pol ISP liegt jetzt
file is "C:\WinAVR-20071221\bin\avrdude.conf" C:\WinAVR-20071221\bin>avrdude -P com5 -c avr910 -p t2313 Found programmer: Id = ""; type = Ç Software Version = . ; Hardware Version = . Programmer
-
Thread
Welche Low Cost 32 Bit MCU Familie? Gesperrt
-3v-32-kb-lqfp-32-stm32-f030k6t6-p351967.html Beide sind auch auf Lager - im Gegensatz zum STM32C011.
https://www.lcsc.com/product-detail/Microcontroller-Units-MCUs-MPUs-SOCs_STMicroelectronics-STM32F030C8T6TR_C40053.html Ich habe mir 30 Stck. für insgesamt 17 Dollar gekauft (neben 10 Stck. F072 und 100 Stck. Padauk PFS154 - 8 Bit halt)
-
Thread
Wie Lautsprecherkabel dimensionieren?
Störquellen zuzuwenden: https://www.subbase-audio.de/portfolio-items/hifine/?portfolioCats=78%2C62%2C81%2C79%2C80 Man sieht, es bleibt noch viel zu tun. rhf P.S.: :-)
Dieter schrieb im Beitrag #5809217: > c2) Die Antwort steht dort unter c2)
-
Thread
Odroid C1: Die Raspberry-Alternative ist verfuegbar
Hallo Leute, der Odroid C1 (Raspberry auf Speed) kann bei Pollin bestellt werden. Was ist der Odroid C1: http://www.heise.de/hardware-hacks/meldung/Odroid-C1-Raspberry-Pi-Konkurrent-in-den-Startloechern-2487225.html http
Kaj G. schrieb im Beitrag #3934722: > Hallo Leute, > > der Odroid C1 (Raspberry auf Speed) kann bei Pollin bestellt werden. > > Was ist der Odroid C1: > http://www.heise.de/hardware-hacks/meldung/Odroid-C1-Raspberry-Pi-Konkurrent-in-den-Startloechern-2487225.html
-
Thread
Aktuell: -10*C, ziemlich windstill und dunkel
c. m. schrieb im Beitrag #5327857: > das helium können wir in die luft blasen. mit ein wenig > hintergrundwissen wüsstest du, das auf der erdoberfläche helum"mangel" > herrscht, weil das gas in die
bringen sich gegenseitig um. https://media.spokesman.com/photos/2009/05/22/horsey-gaia_t810.jpg?043915c051a7e8a61f3dafe8e38e28c2ebfb384b
-
Thread
Oszi C1-91- Besitzer gesucht
Hallo, @Jochen Fe., Sampling müßten können: ja4C-95 Stroboskopische Ablenkeinheit ja4C-96 Stroboskopischer Zweikanalwandler ja4C-100 Stroboskopischer Zweikanalwandler ja4C-101 Stroboskopische Ablenkeinheit Könnte ich möglicherweise beschaffen
I have c1-122 and c1-91. Actually, just started to deal with them and have a lot of problems....
-
Thread
uC an USB nicht erkannt ( als wär nichts da )
Hat Dein Board eine Serielle Schnittstelle für Debugging? Wie ist Dein Kenntnisstand bezüglich uC und USB?
(); UsbDevSendInData(); } [/c] ändert aber nichts :(
-
Thread
100A per uC schalten
kann ich's nicht sagen, weil es sehr von der Spule abhängt, die >Spannung soll ja aber auch vom uC gemessen werden, der dann den Schalter >steuert. Naja, der uC ist das Nebensächlichste dabei. Den braucht man dazu real nicht. Ein so kleine Spannungschnell zu messen ist nciht das Thema, aber die
-----o-----o | C| .-------------. L C| |Quenchmessung| C| '-------------' .---------------. |
-
Thread
(Daten-) Bus Programmieren in C
scherzkeks schrieb im Beitrag #2930733: > TWI = I2C Für Hausautomation einen Geräte-internen BUS? >:-(((
Hi >In Frage kommen da >Can >Lin >I2C ( bei sehr begrenzter Buslänge ) >Ethernet RS285 vergessen. MfG Spess
-
Thread
Ping mit Visual Studio C#
Das kann doch nicht sein das ich mehrere Objekte von Ping anlegen muss. Initialisierung [c] Ping p = new Ping(); AutoResetEvent waiter = new AutoResetEvent(false); p.PingCompleted += new PingCompletedEventHandler(PingCompletedCallback); [/c] Button drücken [c] while(...) { p.SendAsync(sLine, 1000, Encoding.ASCII.GetBytes(data), options, waiter); [/c] Callback für den Empfang [c] private static void PingCompletedCallback(object sender, PingCompletedEventArgs e) { // do something } [/c]
-
Thread
C# Serialport-Falsche Werte
testen ob es überhaupt ein softwarefehler bei dir ist? @Peter danke erst mal für die ANtwort, [c] private List<byte> arra = new List<byte>(); [/c] ohne cast mekert der compiler: [c] Fehler 2 Die beste Übereinstimmung für die überladene System.Collections.Generic.List<byte>.Add(byte)-Methode
speed läuft nicht mehr. Da wirst du sehen, dass der Zähler auf 1 oder 2 steht. Wie willst du daher [C] if ((MsgTyp_t)this.arra[4] == MsgTyp_t.BATCHG) [/C] hier das 5. Byte auswerten, wenn du es noch gar nicht hast?
-
Thread
AVR-C Ein/Ausgabe
ist. Dann kannst Du oben auch einfügen: [c] #include <stdbool.h> [/c] und die Bedingung folgendermaßen schreiben: [c] if ((bool) a == true) [/c] Auch hier wird es ohne den cast "(bool)" *nicht* gehen. Der Ausdruck: [c] if
return 0; } [/c]
-
Thread
Can-Controller/µC
André M. schrieb im Beitrag #4239769: > Dann muss ich nur noch lernen diesen µC in Assembler zu > programmieren.... :-/ Wenn du es eh lernen musst: Lern C :D
C muss ich erst lernen..... ;-) Ausserdem mag ich es mit den Registern zu "spielen" Aber C muss ich wirklich mal ran........
-
Thread
MOSFET Schaltung an µC
Hierbei wird die Regelerstellung über den ADC eingelesen und anschließend als PWM ausgegeben. Als µC verwende ich einen Atmega8. Es gibt zwei verschiedene Zustände. Zu einem das "Gas geben", welches über einen P-Kanal Mosfet geschieht und zum anderen das "Bremsen" mit einem N-Kanal Mosfet. Der Motor
In keiner Transistorschaltung habe ich das bis jetzt so gesehen. Das macht man eigentlich im µC, mit Pullup und Pulldown.
-
Thread
µC für Glasfaserübertragung?
Schieberegister, dann müsste er nur 1/16 der Geschwindigkeit haben > oder?) und speichern. Gigahertz und uC sind inkompatibel. Du wirst kein Schieberegister für 1 Gigahertz sinvoll verbaut bekommen.
Übertragung normalerweise gestaltet wird. Komprimierung ist zu überlegen, allerdings müsste der µC, der diese vornimmt, von der Geschwindigkeit her auch die Daten unkomprimiert versenden/empfangen können, oder gibt es so rechenextensive Verfahren? Für die Speicherung wird sie sowieso unumgänglich
-
Thread
mit µC in Excel schreiben
Plan wie ich dies realisieren soll noch welche Sprache ich verwenden soll. Kenntnisse: VB keine, C++ durchschnittlich, alles andere keine Mit C++ (Windows Forms-Anwendung) habe ich schon eine Programm für die Kommunikation zwischen µC und PC, nur bei der Excel Anbindung scheitere ich. Ich hoffe
Windows Forms Anwendung Warum soll das da nicht funktionieren? Das ist stink normales Standard-C++. Nichts aussergewöhnliches. Dein Problem wird eher sein, dass du in Wirklichkeit nicht C++ sondern das MS-Geraffel 'Managed-C++' programmierst. Aber auch dort gibt es sicherlich Stream-Klassen
-
Thread
XY-Plot mit C++ zeichnen
C2039: 'exit' : Ist kein Element von 'std' c:\temp\plot\gnuplot.cpp(117) : error C2039: 'remove' : Ist kein Element von 'std' c:\temp\plot\gnuplot.cpp(336) : error C2039: 'clock_t' : Ist kein Element von 'std' c:\temp\plot\gnuplot.cpp(336) : error C2039: 'clock' : Ist kein Element von 'std' c:\temp\plot\gnuplot.cpp(337) : error C2039: 'clock_t' : Ist kein Element von 'std' c:\temp\plot\gnuplot.cpp(337) : error
-
Thread
LCD nicht nur für einen Port in C
Habe zwar die LCD-Routine aus dem AVR-GCC-Tutorial mit Erfolg getestet: Lcd.c: [c] #include <avr/io.h> #include "lcd-routines.h" int main(void){ lcd_string("Hello World!"); while(1); return 0; } [/c] Leider habe ich aber eine vorgegebene Hardware, an der RS
[C] // Port auf Ausgang schalten LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN); [/C] ersetzt du durch [C] // Ports auf Ausgang schalten LCD_DATA_DDR = LCD_DATA_DDR | 0x0F
-
Thread
For Schleife in C89
In C99 dürfen Variablen im ersten Teil des Schleifenkopfs definiert werden. C99: [c] for (int i = 0; i < 10; i++) {} [/c] C89/C90: [c] int i; for (i = 0; i < 10; i++) {} [/c] Das rührt
] int somefunction(void) { dosomething(); int y; y = dosomethingelse(); } [/c] Die Definition von y ist so in C89/C90 nicht zulässig. C89/C90: [c] int somefunction(void) { int y; dosomething(); y = dosomethingelse(); } [/c]
-
Thread
SAQ Minimalempfänger
und 2. R+C ser die untere Frequenzgrenze bestimmen ( wie R||C die obere) 3. über den inneren R des Spannungsteiler-Cs eine Verkoppelung möglich ist, die ich momentan aber nicht beurteilen kann, weil es praktisch
ich auf jeden Fall ändern, siehe Anhang. Der Schwingkreis kann jetzt direkt an den OPV-Eingang, ohne C3. Dann C3 und C4 nicht mehr Bestandteile des Schwingkreises. Außerdem zeigt sich in der Simu, daß der OPV schon bei nur 3mV Offsetspannung nicht mehr richtig arbeitet. Also wäre es besser, die Verstärkung
-
Thread
64 Bit float Emulator in C, IEEE754 compatibel
ist auch die "exaktere" Näherung PI = 0xC90FDAA22168C2 enthalten. Wenn du jetzt sin(PI) für das Intervall berechnest, erhältst du ein Intervall, das ungefähr von 1.7E-16 (für 0xC90FDAA22168B8) bis -0.6E-17 (für 0xC90FDAA22168C7) gehen
PI = 0xC90FDAA22168C als einen exakten > Wert betrachtest. Ein Wert ist ein Wert ist ein Wert :-) > Man kann das Argument aber auch als Intervall betrachten, d.h. PI = > [0xC90FDAA22168B8, 0xC90FDAA22168C7
-
Thread
C++: Baumstruktur
... std::string getName(); std::string getFullName(); } [/c] [c] tree<myClass> myTree; [/c] So würde das dann aussehen. Problem dabei: Wie würde ich denn dann die Funktion getFullName() umsetzen? Diese liefert mir nicht nur den eigenen Namen, sondern
: [c]class myClass { myClass* parent; std::vector<unique_ptr<myClass>> childs;[/c]
-
Thread
Division in C
Hallo Marc, ich weiß nicht, wie ich das in C++ umsetzen kann, hast du eine idee?
Was jetzt, C, C++, oder Microsoft-spezifisches-unportables-C ?
-
Thread
C-Programmierung
Hi, hab ein Projekt, in dem ich mit C-Code(PWM-Erzeugung) zuerst einen einzigen Servomotor(HSR-8498HB von Fa. HiTec) von Robonova-I(HiTec-Roboter) ansteuern aber extern d. h. mit eigenem µC(Evaluationsboard MCBXC88x von d. Fa Keil mit dem 8-bit Prozessor XC 888 von d. Fa. Infinion) und nicht mit µC von dem Roboter! Hat einer von euch irgengdwelche Idee oder ähnlichen C-Code? mfg manouch
-
Thread
C Problem
der nächstkleineren Zehnerstelle; - bis Ende und fertig. Also: int t[10]; t[2]=3278; int c, ziffer; // wichtig! mindestens so lang wie Datenquelle c = t[2]; ziffer = c%1000; MAX7219_Write (xx,(unsigned char)ziffer); // die Tausenderstelle c -= ziffer*1000; ziffer = c%100; MAX7219_Write (xx,(unsigned char)ziffer); // die Hunderterstelle c -= ziffer*100; ziffer = c%10; MAX7219_Write (xx,(unsigned char)ziffer); // die Zehnerstelle c -= ziffer*10; MAX7219_Write (xx,(unsigned char)ziffer); // die Einerstelle
-
Thread
C am Reset
/-prozessor an (->Datenblatt). Bei älteren Prozessoren war es nötig, die Resetleitung mit einem R-C-Netzwerk während und kurz nach dem Einschalten der Versorgungsspannung aktiv zu halten. Die Atmel-AVRs brauchen kein C an der Resetleitung, sie besitzen einen eingebauten Reset-Generator. (Es sei denn
Hallo. Also soll heißen im normalem Betrieb brauch er kein C und R am Resetpin ? lg, markus
-
Thread
C-Frage
Hallo C-Spezialisten, ich muß von C++ nach C absteigen, mit Grausen... kann ich in C struct eine "Memberfunktion" definieren? Beispiel, bei dem der Metrowerks meckert: typedef enum __tTaskState__
schon eine Art "Member-Funktionen" für Strukturen verwenden. Nur muss man dann eben alles was der C++ Compiler macht von Hand machen. Nicht umsonst waren die ersten verfügbaren C++ Compiler reine Textparser die aus dem C++ Sourcecode C Code erzeugt haben welcher dann von einem normalen C-Compiler
-
Thread
C und Wertebereiche
Weilchen dauern, zu dem folgenden Detail hab ich eine Unklarheit. Mein code enthält folgende Zuweisung: [c] t1 = (stunde % 12) * 3600 + minute * 60 + sekunde; [/c] t1 ist vom Typ uint16_t, die Variablen auf der rechten Seite sind alle uint8_t. Für sich ist jede Variable geeignet für ihren Wertebereich,
entweder der if- oder der > else-Zweig genommen werden. Du denkst da bestimmt an so etwas: ;-) [c] if (n == 0) { } else if (n != 0) { } [/c]
-
Thread
uC Schaltnetzteil
Variante B mit Netztrennung Netztrafo und 2 antiserielle Mosfet mit Phasenabschnittsteuerung Variante C mit Netztrennung Schaltnetzteil 48V DC 10A und PWM wobei Variante C wohl die teuerste sein dürfte
und die daraus hergeleitete, nötige Spannung durch die Last schicken kann unter Verwendung eines µC als Regelung.
-
Thread
C, Zeiger und Array
definieren. In C++ bevorzugt man daher [C] const char* a = "Hallo"; const char* b = "world"; [/C] und nicht [C] const char *a = "Hallo", *b = "world"; [/C] auch wenn beides identisch ist. Am ANfang
die von K&R eingeführte Schreibweise als Boomerang. Sie war IMHO keine gute Idee. [C] const char *a, c, *const b; [/C]
-
Thread
C++ If und else.
beabsichtigt? 1>c:\users\[...]\finde extremwerte\finde extremwerte\finde extremwerte.cpp(30) : error C2181: Ungültiges 'else' ohne zugehöriges 'if' 1>Das Buildprotokoll wurde unter "file://c:\Users\[.....]\Desktop\
abhängigen Anweisung. Und speziell nach dem Teil '(Bedingungsausdruck) kommt kein ; Das hier [C] if ((Zahl1 > Zahl2) && (Zahl1 > Zahl3)); [/C] fasst der COmpiler daher nach C++ Syntax auf als [C] if ((Zahl1 > Zahl2) && (Zahl1 > Zahl3)) ; [/C] das heisst: die Anweisung, die
-
Thread
c++ sockets recv
[c] select(sock_max+1, &sock, NULL, NULL, NULL); [\c] ock ist mein Socket. Aber was soll sock_max sein?
c++ schrieb im Beitrag #3845885: > Da C++ keine besonders neue Sprache ist (damit wurden schon uralte > Großrechner programmiert, lange vor TCP) *hust* C++ gibt es effektiv* erst seit 1985, TCP
-
Thread
Erklärung C-Code
return ENDIAN_UNKNOWN; } } [/c]
mit memcpy: [c]static int GetSystemEndianness(void) { unsigned short s = 0x0102; unsigned char c[2]; memcpy(c, &s, 2); if(sizeof(s) == 2) { if(c[0] == 1 && c[1] == 2)
-
Thread
Embedded C++ in der Arbeitswelt
Hallo, da ich überwiegend in C Mikrocontroller programmiere, würde ich gerne wissen in wie fern sich Embedded C++ vom normalen C++ unterscheidet. Laut meinen Recherchen ist Embedded C++ eine Teilmenge von C++: Es sind sehr viele
>Davon habe ich noch nie gehört und ich wüsste auch nicht, wozu eine spezielle C++ Variante gut sein soll. Wahrscheinlich die gleiche Motivation wie C und MISRA-C. Wozu MISRA-C, wenn es schon C gibt?
-
Thread
-
Thread
µC vor dem Einlötenprogrammieren?
Hallo Forum, ich habe so winzige µC's ATtiny10 im SOT23-6 Gehäuse. Dazu habe ich mir eine Art Textool-Fassung gekauft um die Dinger vor dem Einlöten zu programmieren. Aber jetzt kommen mir Bedenken, ob nicht der µC durch das Reflow
mehr Kontakten um die Hardware zu prüfen und für Kalibrierungsarbeiten. Referenzspannungen messen, µC programmieren, Funktionsprüfung wichtiger Bauteile/Baugruppen... Wenns gut eingerichtet ist: Platine auflegen, runterdrücken, kurz warten, fertig.
-
Thread
Steuerung mit C# verwirklichen
was jetzt: c# oder c? mit c# - vergiss es, mit c gehts gut
OK, dann C.
-
Thread
C++ Rechnen mit Komma
double ist genauer. Könnte aber auch an deinem Code liegen. Wenn du zum Beispiel [c] float a; a = 5 / 4; [/c] schreibst, rechnet der Computer erstmal mit Integer-Werten. 5/4 wäre dann 1 + 1 Rest. a wäre also = 1. beser wäre [c] float a; a = 5.0 / 4.0; [/c] oder [c] float a; a = (double)5 / (double)4; [/c]
-
Thread
I²C Speicher
If BIT C Then ;Wenn Carry Bit nicht gesetzt ist, Verbindung abbrechen SETB error ;Fehlerbit setzen! (wird nicht verwendet im Moment) LCALL I2C_STOP End If NOP CLR SCL POP REG3
Z.B. der hier bei Reichelt ST 24C256 BN6 1,20 MFG Falk
-
Thread
Vektor-Font in C
kann man nicht anschalten, nur austasten. Wenn er zu lange aus bleibt, dann lädt sich der Austast-C wieder auf. Austasten geht über Zupfen am Wehnelt-Zylinder, dessen Potential über den AUstast-C eins auf die Mütze bekommt. Aber das Potential führt unbeeinflusst die e-Kurve einer R-C-Kombo nach.
Ich hab nicht alle Beiträge gelesen, aber im Quelltext von vektor-zeichen.c sollte man folgendes noch überarbeiten: [c] #define SPACE_X 2+5*zoom #define SPACE_Y 3+8*zoom [/c] Macht besser draus: [c] #define SPACE_X (2+5*zoom) #define SPACE_Y (3+8*zoom) [/c]
-
Thread
µC Datenbus
durchführen? Dazu brauchst Du weder Daten- noch Adressbus. Dafür genügt der 32 Bit breite I/O-Port des µC. Möchtest Du externen Speicher anschließen? Reicht der im µC vorhandene Speicher nicht aus?
jeweilige Hersteller, also Atmel, NXP etc. aber der link war doch das Datasheet von Atmel (von einem µC)... oder nicht? Gerhard
-
Thread
Wecker mit µC
hi, ich bin vor kurzem mit µC (PICs mit PICKit 3) angefangen. Habe nun bereits 2 erfolgreich programmiert. Herraus kamen ein LED Cube, ein Counter, eine PWM Lüftersteuerung und eine Uhr ^^ Die Lektionen aus dem UserGuide habe ich
H4;GROUPID=3484;ARTICLE=4364;START=0;SORT=user;OFFSET=500;SID=11Twgel38AAAIAAFPLL@Aadd7d4ddeb5ed4a2c8371b2190dab458#
-
Thread
-
Thread
Neuer C-Standard
Dort ein klassischer Aprilscherz zu C, C selbst ist ein Aprilscherz: http://www.mikekoeppel.homepage.t-online.de/programmierer_cgeschichte.htm
Um den PIC-Nutzern den Einstieg in C zu erleichtern, sollte man noch das "skip" einführen. Die klagen ja immer zum Stein erbarmen, daß andere MCs zuviele Befehle haben. [c] skip (val == 0) foo(); [/c]
-
Thread
DSP Berechnungen in C
Gerade eben habe ich ein Beispiel für complexe Zahlen ausprobiert: https://en.cppreference.com/w/c/numeric/complex Die grundsätzlichen Funktionen scheinen da, aber bei der Zeile mit der Eulergleichung wird schon ein Fehler geworfen. [c] double PI = acos(-1); double complex z3 = exp(I
Harald schrieb im Beitrag #5470689: > Prozessor mit DSP Erweiterung µC mit DSP erweiterung auch : Cortex M4 oder Cortex M7
-
Thread
C++ constexpr-Funktionen
die Ausgabe nach std::cout weglässt. https://godbolt.org/z/hGhqo3 Diese Optimierung macht der C-Compiler genauso, das hat nichts mit C++ zu tun. https://godbolt.org/z/qjvbjx Oliver
sich als sog. IIFE (immediate invoked function expressions) gut zur komplexen Initialisierung. [c] constexpr auto lut = []{ // Berechnung von data return data; }(); [/c]
-
Thread
C++ *new Alternative
Wie wäre es mit: [c]int main() { something a; ... [/c]
So wirds auch bei den Arduinos gemacht: new.h: https://github.com/arduino/Arduino/blob/13e0b9335c296c8921d2c60d3dc867bf04cf186f/hardware/arduino/cores/arduino/new.h new.cpp: https://github.com/arduino/Arduino/blob/13e0b9335c296c8921d2c60d3dc867bf04cf186f/hardware/arduino/cores/arduino/new.cpp
-
Thread
eActros 600 Update Gesperrt
34,8cent /km kommen da noch dazu gemäß https://de.wikipedia.org/wiki/Lkw-Maut_in_Deutschland#:~:text=F%C3%BCr%20die%20beste%20erh%C3%A4ltliche%20Schadstoffklasse,4%2C1%20%25. Ausnahmen von der Mautpflicht: 7. Elektrofahrzeuge, also Elektro-Lkw und Oberleitungs-Lkw Auch kann davon ausgegangen werden
search%5D%5Bc:verivox_brand_main%5D%5Bb:cpc%5D&etcc_par=google&etcc_mty=e&etcc_key=verivox&etcc_bde=c&etcc_var=CjwKCAjwodC2BhAHEiwAE67hJJJb9NYsCbnThIACj8h0kdFuPFPAC35lL92uzP3f4jDKXDJVUfUYahoClN4QAvD_BwE&campaignid=1694350446&loc_p=9115321&gad_source=1&gclid=CjwKCAjwodC2BhAHEiwAE67hJJJb9NYsCbnThIACj8h0kdFuPFPAC35lL92uzP3f4jDKXDJVUfUYahoClN4QAvD_BwE