-
Thread
24V 1ms Impuls verlängern
Nerd 8. schrieb im Beitrag #7894629: > Google nach Monoflop 74HC4538
Chantalle2000 beschrieben hat, aber effizient mit BIT Arithmetik, der Interrupt benötigt auf einem ATMEGA328 mit 16MHz weniger als 10us (8us-9us), der wird je nach Signallänge und Anwendung mit 1kHz bei Signal 16ms oder bei kürzeren Signalen z.B. 1ms mit 16 kHz aufgerufen, Anpassung OCR1A und Prescaler
-
Thread
Arduino: page-write in I2C eeprom verliert sporadisch ein Byte
wegschreiben. Anbei mal meine I2C-EEPROM Lib. Sie benutzt Bit-Banging I2C, da zumindest bei den ATmega8 usw. der I2C-Controller recht störempfindlich ist. Sie ist dadurch auch sehr leicht auf jede andere µC-Familie zu portieren. Da ja keine Interrupts benutzt werden, hätte der I2C-Controller keinen
Abhilfe - sowie auch um weiterhin Testdaten einlesen zu können, wurde die Adresse als Default auf einen 8k großen Testbereich gelegt. Jetzt bleibt noch die Frage offen, wie ich es denn schaffen will, alle Funktionen in den 32kB des ATMEGA 328P unterzubringen..... Nach erster Sichtung aller Funktionen
-
Thread
Arduino CH32V003
//github.com/openwch/arduino_core_ch32 */ void setup() { Serial.begin(115200); } uint8_t Counter = 0; void loop() { Serial.println(Counter++); delay(100); } [/c]
section `.text' will not fit in region `FLASH' .arduino15/packages/WCH/tools/riscv-none-embed-gcc/8.2.0/bin/../lib/gcc/riscv-none-embed/8.2.0/../../../../riscv-none-embed/bin/ld: region `FLASH' overflowed by 8680 bytes
-
Artikel
Benutzer:Amad
einer Bidirektionalen Funkbrücke ATTiny13 mit RFM12 dran Drahtpositions und Dickenerkennung mit ATMega8, Nokia 3310 Display und TSL1401R-LF Platinenlayout für 1,27SMD und SO-8 IC-Kontaktierung Motorisierte Lötzinnzuführung Einige relativ gut nachbaubare & dokumentierte Projekte finden sich hier: Speziell
-
Thread
[AVR] ADC oversampling, nutzbarer Wertebereich
Rauschen" Stabil 12 Bit + 2 Bit + 0 Bit = 14 Bit => 14 Bit - 4 Bit = 10 Bit 12 Bit + 8 Bit + 0 Bit = 20 Bit => 14 Bit - 3 Bit = 11 Bit 12 Bit +10 Bit + 0 Bit = 22 Bit => 14 Bit - 2 Bit = 12 Bit 12 Bit +10 Bit + 7 Bit = 29 Bit => 17 Bit - 2 Bit
3 4 Oversampling 0 1 2 3 4 5 6 7 8 9 101112 13 14 15 161718 [/pre] Dan der Nichtlienarität des HW-ADCs ist also der oversampelte 1-LSB-Schritt von 5 nach 6 "gleich viel wert" wie die 3 Schritte von 1 nach 4. Leicht
-
Thread
0..20 mA Analogeingang - wie?
ist schon so einfach, dass man einen widerstand nimmt für U=R*I die spannung zu erhalten, wennalso 1.8V benötigt werden kann .an 90 Ohm nehmen und fertig
Die Leistung teilt sich auf vier Widerstände auf. Drittens: Man bekommt am Ausgang direkt die 1,8 Volt raus. Zur Sicherheit könnte man am Eingang vom Arduino noch zwei Klemmdioden nach Plus und Minus schalten.
-
Thread
TinyAVR Serie 1/2 OneWire Zugriff auf DS18B20 Temperatursensor
ds.read_bytes(data, 9); // Read 9 bytes of data from sensor if (!(OneWire::crc8(data, 8) == data[8])) return 999; // Data CRC is invalid return 99.9 °C int16_t raw = (data[1] << 8) | data[0]; // Convert the data to integer temperature value return (raw * 10) / 16;
mehr. Der ATtiny1614 ist ja bei Reichelt recht günstig: https://www.reichelt.de/de/de/shop/produkt/8-bit-attiny_avr-risc_mikrocontroller_16_kb_20_mhz_soic-14-349270 Oder wäre der ATtiny1604 besser?
-
Thread
ESP32 im PKW an Spannungsteiler Relais schalten
Stefan schrieb im Beitrag #7893086: > Rechnerisch sollten dann 1.8k für 3.3V beim ULN2801A passen, oder? Welcher Strom soll da fließen? > Wahrscheinlich dumme Frage - muss ich dann 8x1.8k vor die Eingänge > schalten, oder würde einer gegen GND reichen? Tipp:
eines Spannungsteilers berechnet sich wie eine Parallelschalung der beiden Widerstände. Also: (8.2kOhm * 4.7kOhm) / (8.2kOhm + 4.7kOhm) = ca. 3kOhm - Die Diode D2 hat auch einen Spannungsabfall von ca. 0.6V. Nach D2 beträgt die Spannung 4.4V - 0.6V = 3.8V - Um aus den 3.8V nach D2 mit Innenwiderstand
-
Thread
ATMega328PB lässt sich nur noch programmieren. Sonst keine Funktion mehr
Hallo zusammen, Ich habe ein ATMega328PB auf einer Platine verbaut welcher verschiedene Sensoren ausließt wie SCD-40, SGP-40, BME280, TGS5141 und die entsprechenden Messwerte via Modbus RTU bereitstellt. Das Problem ist nun das jetzt
mit einem Trick im Falle eines Aussperrens vielleicht doch > noch einklinken kan Bei einem ATMega8 funktioniert das nicht. Habe hier eine Schaltung wo der Reset-Pin als IO genutzt wird und da bin ich auf "einfachem" Weg nicht wieder rangekommen um eine andere SW aufzuspielen. Ich hab die Schaltung
-
Thread
Windows 10 Disketten formatieren
Nerd 8. schrieb im Beitrag #7892132: > Das stimmt nicht. > Verbatim und MediaRange z.B. fertigen 3.5"-Disketten nach wie vor! Fertigen oder verkaufen? Nerd 8. schrieb im Beitrag #7892132: > Es gibt
Nerd 8. schrieb im Beitrag #7892269: > Wie bereits erwähnt, sind USB, SD, CF und dergleichen nicht gestattet. Weltweit? Oder nur in Deiner komischen Klitsche? Nerd 8. schrieb im Beitrag #7892282: >
-
Thread
Alternative zu diesem IC
Vorwiderstand steuert ist heute natürlich auch nicht mehr üblich. Sollte man den gegen einen Atmega32 ersetzen wollen, bräuchte man einen Spannungsregler und haufenweise Vorwiderstände in den LED Zuleitungen. Und ein zur Uhr passendes Programm müsste man auch schreiben.
Michael B. schrieb im Beitrag #7889988: > Sollte man den gegen einen Atmega32 ersetzen wollen, bräuchte man einen > Spannungsregler und haufenweise Vorwiderstände in den LED Zuleitungen. TMS1951N2L kommt auch ohne Spannungsstabilisierungs-IC aus. Allerdings für VFDs->
-
Thread
Wie baut man in C Strings zusammen?
* cnt Number of values in the buffer * * Return Number of inserted values */ uint8_t insert_values(char* str, const uint8_t* values, uint8_t cnt) { uint8_t replaced = 0; size_t length = strlen(str); for (size_t i=0; i<length; i++) { if ((str[i] == '%') && (replaced
{ if (c & 1) a |= b; return a; }[/c] [pre]$ avr-gcc-14 foo.c -S -Os -mmcu=atmega8[/pre] [avrasm] func: push r8 push r9 push r10 push r11 push r14 push r15 push r16 push r17 /* prologue end */ movw r8,r22 movw r10,r24 movw r24,r20 movw r22
-
Thread
Alter EPROM M27C512 Lese- und Programmiergerät mit ESP32
schrieb im Beitrag #7889651: > Die Spannungen nach den Linearreglern wie folgt aus: > ... > 10.8V 1Vpp (!) Ripple > ... Bist du sicher, dass vor den 10.8V ein Linearregler sitzt? Wo kommt dieser komische Wert her? Eine Spannung von 10.8V ist ja nun nicht gerade Main Stream. Ist das der Sollwert oder ein Messwert? Wie werden die 10.8V erzeugt/geregelt und passt die Frequenz der Ripple dazu, wie sieht die Spannung am Eingang des Reglers aus?
-
Thread
Honigschleuder Frequenzumrichter defekt
Logar, 8 Jahre alt, im Schnitt 400 kg Honig pro Jahr geschleudert. FU nun defekt. Mechanisch gut gebaut, Edelstahl. https://www.logar-trade.de/4w-selbstwendeschleuder-24x48-cm-vollelektronisch-m_4206.html
Frequenzumrichter-Computerized-Spindelmotor-Geschwindigkeit-FC01-Serie/dp/B0CQLLB2D2?pd_rd_w=NbtD0&content-id=amzn1.sym.f2fa8d20-9905-4e29-bb49-9f371d6a5de8&pf_rd_p=f2fa8d20-9905-4e29-bb49-9f371d6a5de8&pf_rd_r=R7S647DG36B8KPFDQEVK&pd_rd_wg=LcUaD&pd_rd_r=d33ee850-e184-4242-8dd6-15c0d4a2639c&pd_rd_i=B0CQLLB2D2&psc=1&from=top
-
Thread
AVR - Taktfrequenz für Seriell ohne Handshake
Ich habe eine Schaltung, bei der ein 8-bit Atmega (1284p) zum Einsatz kommt. Dieser empfängt über eine Serielle Schnittstelle Daten vom PC, allerdings ohne Handshake. Der intern freie RAM des AVR ist im Fall mehr als reichlich, um die gesamte
Peter D. schrieb im Beitrag #7889149: > Das ATmega8 Datenblatt sagt aber eindeutig: OK, jetzt wird es ein bisschen kompliziert und Du musst das ggf. am Diagramm nachvollziehen: Annahme: Genau am (="ab dem") 3ten Sample kommt das nächste Startbit
-
Artikel
Temperatursensor
problematisch Interrupt C für ATmega8 auch problematisch fertiger Code zum Einlesen des Zacwire-Protokolls für PIC in ASM RN: Bascom TSIC206 Thermometer mit Uhr und Kalender. Komplette Bauanleitung mit ASM Quellcode für AT-Tiny2313 TSIC
Datenblätter/Herstellerinformation: BME280: BME680: Projekte/Code [ASM] BME280 mit OLED Display am ATmega808 [ASM] BME280 mit OLED Display am ATtiny85 Preis: BME280 / BME680 Reichelt 5,20€ / 9,45€, Conrad 8,33€ / xxx, Aliexpress ~2,50€ / ~15,-€ HDC1080. Der HDC1080 von Texas Instruments kombiniert einen
-
Thread
"Arduino kompatibler" MC für 2025
pillepalle-Anforderungen ist er allemal kompatibel. Zumal du ja wohl mit Arduino programmieren willst. Da wird der ATMega328PB jetzt schon unterstützt. Warum nimmst du nicht gleich ein Arduino-Board deiner Wahl mit dem ATMega328PB?
Headerfiles beider Controller. Wahllos verglichen, paar Bsp. [code] P: #define SPCR _SFR_IO8(0x2C) PB: #define SPCR0 _SFR_IO8(0x2C) P: #define PRR _SFR_MEM8(0x64) PB: #define PRR0 _SFR_MEM8(0x64) P: #define TWCR _SFR_MEM8(0xBC) PB: #define TWCR0 _SFR_MEM8(0xBC) P: #define
-
Thread
AVR removed in GCC 16 ?
nicht default weil es noch mindestens einen Fall gibt, wo LRA falschen Code erzeugt (mit -Os -mmcu=atmega8 -mlra): [c]__attribute__((noipa)) void func2 (long long a1, long long a2, long b) { static unsigned char count = 0; if (b != count++) __builtin_abort (); } int main (void) {
-
Thread
ADC-Kanäle sukzessive abfragen
Hallo, Johann L. schrieb im Beitrag #7880848: > In den Datenblättern steht dazu nix. Datenblatt ATmega8/L (2486AA-AVR-02/2013), Kapitel "ADC Input Channels", Seite 194: "In Free Running mode, always select the channel before starting the first conversion. The channel selection may be changed one ADC
; uint8_t adc_mux; uint16_t adc_sum[ANZKANAELE]; uint8_t adc_kanal_nr; uint8_t nr_messung; bool adc_werte_bereit; void reset (void) { adc_werte_bereit
-
Thread
CH32V003: Selbstbauprogrammer und "Getting started"
einem > Atmel/ST/usw irgendwie klueger? Warum sollte das klüger sein? Mit Atmel gibt es den für ATmega88 bis 328p und ATtiny2313, nennt sich wie oben genannt ArduLink .. und ist schnarch lahm. Ob es etwas für STM32 gibt weiß ich nicht (glaube ich allerdings auch nicht). Also, warum sollte es klüger
und ich bin immer mehr entsetzt): - CH32V003: 9572 Byte (riscv-none-elf-gcc 14.2.0) - UNO R3 (ATmega328): 2040 Byte (avr-gcc 7.3.0) - UNO R4 (RA4M1): 52576 Byte (arm-none-eabi-gcc q7-2017, für mich absoluter negativ-Wahnsinn) - STM32F401: 12836 Byte (arm-none-eabi-gcc 13.2.1) - STM32F103: 12136
-
Thread
Verständnisfrage zu Assembler bei PIC und ATMEL
GSM-Alarmanlage, glaube das waren am Ende um die 340kB Text und mehrere tausend Zeilen (für einen ATMega1284)...
: Im linken Menü unter „XC8 Global Options“ den Punkt „XC8 Linker“ auswählen. Zusätzliche Optionen einstellen: In der Kategorie „Additional options“ (Zusätzliche Optionen) das Feld für benutzerdefinierte Linker-Parameter
-
Thread
TIMER0 "fast PWM" Frage zu höherer Frequenz bei geringerer Auflösung
unterschiedlichen Auflösungen und Frequenzen zu > erzeugen? Nur für die Timer1/3 der klassischen AtMega oder für die D-Type-Timer der neueren Baureihen. Da sind auch gepufferte Frequenzänderungen möglich.
MHz erzeugt (PCK) um Timer1 zu takten. Damit sind 500 kHz PWM-Frequenz (bei 7 Bit) machbar. Mit 8 Bit Auflösung reicht es noch für 250 kHz...
-
Thread
HT16K33A mit CH32V003
Chip zum Einlesen von Tasten noch zusätzliche Widerstände benötigt), Ergo: Anzeigen sind machbar bis 8-stellige 7-Segmentanzeige - verwendet Bitbanging I2C-Routinen, damit das ganze leicht auf andere Mikrocontroller portierbar ist (natürlich auf STM32 und auch auf einem ATmega schon getestet). Sollte
ein CH32V003 zum Programmer wird und dieser Chip einmalig von einem Arduino Uno/nano oder einem ATmega mit USB2UART Bridge geflasht werden muß. Prinzipiell kann auch ein Arduino alleine als Programmer dienen, ist aber nicht empfehlenswert, da dieser für die max. 16 kByte Flash die der CH32V003 besitzt
-
Thread
Suche Beispiel oder wenigstens Manual zu Arduino Bibliothek
Ahh, da ist alles static und der ctor ist private. Also müsste es so klappen: [c] uint8_t data = 0x12; EEPstore<uint8_t>::set(data, 0x0000); [/c]
daher nicht erlaubt. Beachten muß man aber, daß das Schreiben Zeit kostet, je nach AVR-Typ etwa 8ms je Byte. Größere Arrays können also dauern. Z.B. schreibt man beim ATmega2560 alle 4kB EEPROM, dauert das ~33s.
-
Thread
Codecontrolle und Fragen zu Microchip Studio
befindet. Es soll Grundlegend so funktionieren: über einen MCP2221A kommen Serielle Daten zu einem ATMEGA32. Dieser hat einen Software UART implementiert, welcher die Daten zu einer Externen schaltung weitergibt. Es werden über 2 seperate Pins auf Kurzschluss auf der Seriellen Schnittstellean den
108 Was will mir das Programm mitteilen? Ich sage doch dem Programm, das die Geschwindigkeit 8 Mhz beträgt (Zur Verbesserung der Timer und USART/UART Kommunikation), über einen Externen Quarz. EDIT2: Kommando zurück, habe den Fehler gefunden. Die Definition der CPU geschwindigkeit muss vor