hallo my_xy_projekt,
Die Augenblickliche Situation ist so, dass ich, mit KI-Hilfe, direkt auf die Register laut Datenblatt zugreife. Leider ist es auch hier so, dass nach Aufruf der readDiff_A2_A3_20x() das OLED dunkel bleibt. Ohne diesen Funktionsaufruf wurde der dann allerdings zugewiesene Wert auf dem OLED angezeigt. Ich habe leider keine Ahnung, welcher Registeraufruf die <DigisparkOLED.h> blockiert. Die blinkende LED soll mir nur zeigen, dass das Programm in der Schleife läuft und nicht irgendwo blockiert.
#include <DigisparkOLED.h>
#include <Wire.h>
// ATtiny85
// +----------+ (-)--GND--
// (RST)--> + PB5 Vcc +----(+)--VCC--
// ---[OWOWOD]---+ PB3 PB2 +----[TWI/SCL]-
// --------------+ PB4 PB1 +--------------
// --------(-)---+ GND PB0 +----[TWI/SDA]-
// +----------+
void setup() {
analogReference(INTERNAL1V1);
oled.begin();
oled.setCursor(0, 0);
oled.setFont(FONT8X16);
oled.print(F(" "));
oled.print(F(" "));
oled.print(F(" "));
oled.print(F(" "));
pinMode(1, OUTPUT);
}
uint16_t readDiff_A2_A3_20x() {
// 1. Referenzspannung waehlen: Interne 1.1V Referenz (empfohlen fuer differentielle Messungen)
// MUX-Bits fuer ADC2 als positiven, ADC3 als negativen Eingang, Gain 20x waehlen
// REFS1=0, REFS0=1 (interne 1.1V), ADLAR=0 (rechtsbuendig), MUX3:0 = B0111
ADMUX = (0 << REFS1) | (1 << REFS0) | (0 << ADLAR) | (1 << MUX2) | (1 << MUX1) | (1 << MUX0);
// 2. Gain-Faktor waehlen: Gain 20x wird durch das MUX-Bit im ADMUX zusammen mit ADCSRB Bits gesetzt.
// Laut Datenblatt ist die Konfiguration im ADMUX fuer A2/A3, 20x bereits korrekt.
// 3. ADC aktivieren & Prescaler setzen: Prescaler auf 128 (fuer 16MHz Systemtakt ergibt das 125kHz ADC-Takt)
// ADEN=1 (Enable), ADPS2=1, ADPS1=1, ADPS0=1
ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
// 4. Digitaleingangspuffer deaktivieren, um Rauschen zu reduzieren
DIDR0 = (1 << ADC3D) | (1 << ADC2D);
// 5. Messung starten
ADCSRA |= (1 << ADSC);
// 6. Warten, bis Messung fertig ist (ADSC wird automatisch 0, wenn abgeschlossen)
while (ADCSRA & (1 << ADSC));
// 7. 10-Bit Ergebnis zurueckgeben (da ADLAR=0, ist das Ergebnis in ADC)
return ADC;
}
void loop() {
oled.setCursor(0, 0);
int analog = readDiff_A2_A3_20x(); //sobald dise Zeile aktiv ist, bleibt das OLED dunkel
//int analog =987; // mit dieser Zeile arbeitet das OLED fehlerfrei
oled.print(analog);
oled.print(" ");
digitalWrite(1, HIGH);
delay(200);
digitalWrite(1, LOW);
delay (200);
}
lade Bibliothek von c:\Users\49174\Documents\Arduino\libraries\ATTinyCore-2.x.x: ungĂĽltige Bibliothek: keine Header-Dateien gefundenlade Bibliothek von c:\Users\49174\Documents\Arduino\libraries\DigistumpArduino-master: ungĂĽltige Bibliothek: keine Header-Dateien gefundenlade Bibliothek von c:\Users\49174\Documents\Arduino\libraries\libraries-master: ungĂĽltige Bibliothek: keine Header-Dateien gefunden
FQBN: ATTinyCore:avr:attinyx5micr:burnmode=install
Verwende das Board 'attinyx5micr' von der Plattform im Ordner: C:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2
Verwendung des Kerns 'tiny' von Platform im Ordner: C:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2
Verwendete Bibliotheken erkennen ...
C:\Users\49174\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DCLOCK_SOURCE=6 -DARDUINO=10607 -DARDUINO_AVR_ATTINYX5 -DARDUINO_ARCH_AVR -DNEOPIXELPORT=PORTB -DHASUSB -DBOOTTUNED165 -IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\cores\tiny -IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\variants\tinyX5 C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\sketch\attiny85_oled096test_mit-KI-Analog-Diff.ino.cpp -o nul
Alternativen fĂĽr DigisparkOLED.h: [DigisparkOLED]
ResolveLibrary(DigisparkOLED.h)
-> Kandidaten: [DigisparkOLED]
C:\Users\49174\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DCLOCK_SOURCE=6 -DARDUINO=10607 -DARDUINO_AVR_ATTINYX5 -DARDUINO_ARCH_AVR -DNEOPIXELPORT=PORTB -DHASUSB -DBOOTTUNED165 -IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\cores\tiny -IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\variants\tinyX5 -Ic:\Users\49174\Documents\Arduino\libraries\DigisparkOLED C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\sketch\attiny85_oled096test_mit-KI-Analog-Diff.ino.cpp -o nul
Alternativen fĂĽr Wire.h: [Wire@2.0.0]
ResolveLibrary(Wire.h)
-> Kandidaten: [Wire@2.0.0]
C:\Users\49174\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DCLOCK_SOURCE=6 -DARDUINO=10607 -DARDUINO_AVR_ATTINYX5 -DARDUINO_ARCH_AVR -DNEOPIXELPORT=PORTB -DHASUSB -DBOOTTUNED165 -IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\cores\tiny -IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\variants\tinyX5 -Ic:\Users\49174\Documents\Arduino\libraries\DigisparkOLED -IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\libraries\Wire\src C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\sketch\attiny85_oled096test_mit-KI-Analog-Diff.ino.cpp -o nul
Verwendung von zwischengespeicherten Bibliotheksabhängigkeiten für die Datei: c:\Users\49174\Documents\Arduino\libraries\DigisparkOLED\DigisparkOLED.cpp
Verwendung von zwischengespeicherten Bibliotheksabhängigkeiten für die Datei: C:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\libraries\Wire\src\USI_TWI_Master\USI_TWI_Master.c
Verwendung von zwischengespeicherten Bibliotheksabhängigkeiten für die Datei: C:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\libraries\Wire\src\USI_TWI_Slave\USI_TWI_Slave.c
Verwendung von zwischengespeicherten Bibliotheksabhängigkeiten für die Datei: C:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\libraries\Wire\src\Wire.cpp
Verwendung von zwischengespeicherten Bibliotheksabhängigkeiten für die Datei: C:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\libraries\Wire\src\WireS.cpp
Verwendung von zwischengespeicherten Bibliotheksabhängigkeiten für die Datei: C:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\libraries\Wire\src\twi.c
Funktionsprototypen werden generiert ...
C:\Users\49174\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DCLOCK_SOURCE=6 -DARDUINO=10607 -DARDUINO_AVR_ATTINYX5 -DARDUINO_ARCH_AVR -DNEOPIXELPORT=PORTB -DHASUSB -DBOOTTUNED165 -IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\cores\tiny -IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\variants\tinyX5 -Ic:\Users\49174\Documents\Arduino\libraries\DigisparkOLED -IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\libraries\Wire\src C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\sketch\attiny85_oled096test_mit-KI-Analog-Diff.ino.cpp -o C:\Users\49174\AppData\Local\Temp\862859936\sketch_merged.cpp
C:\Users\49174\AppData\Local\Arduino15\packages\builtin\tools\ctags\5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives C:\Users\49174\AppData\Local\Temp\862859936\sketch_merged.cpp
Sketch wird kompiliert ...
"C:\Users\49174\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=attiny85 -DF_CPU=16500000L -DCLOCK_SOURCE=6 -DARDUINO=10607 -DARDUINO_AVR_ATTINYX5 -DARDUINO_ARCH_AVR -DNEOPIXELPORT=PORTB -DHASUSB -DBOOTTUNED165 "-IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\cores\tiny" "-IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\variants\tinyX5" "-Ic:\Users\49174\Documents\Arduino\libraries\DigisparkOLED" "-IC:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\libraries\Wire\src" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\sketch\attiny85_oled096test_mit-KI-Analog-Diff.ino.cpp" -o "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\sketch\attiny85_oled096test_mit-KI-Analog-Diff.ino.cpp.o"
Bibliotheken werden kompiliert ...
Bibliothek "DigisparkOLED" wird kompiliert
Zuvor kompilierte Datei wird verwendet: C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\DigisparkOLED\DigisparkOLED.cpp.o
Bibliothek "Wire" wird kompiliert
Zuvor kompilierte Datei wird verwendet: C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\Wire\USI_TWI_Master\USI_TWI_Master.c.o
Zuvor kompilierte Datei wird verwendet: C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\Wire\twi.c.o
Zuvor kompilierte Datei wird verwendet: C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\Wire\WireS.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\Wire\USI_TWI_Slave\USI_TWI_Slave.c.o
Zuvor kompilierte Datei wird verwendet: C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\Wire\Wire.cpp.o
Kern wird kompiliert ...
Verwendung des vorkompilierten Kerns: C:\Users\49174\AppData\Local\arduino\cores\79051a363e8d7d786cb4373c5c958cb0\core.a
Alles zusammenlinken...
"C:\Users\49174\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -Wall -Wextra -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=attiny85 -o "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C/attiny85_oled096test_mit-KI-Analog-Diff.ino.elf" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\sketch\attiny85_oled096test_mit-KI-Analog-Diff.ino.cpp.o" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\DigisparkOLED\DigisparkOLED.cpp.o" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\Wire\USI_TWI_Master\USI_TWI_Master.c.o" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\Wire\USI_TWI_Slave\USI_TWI_Slave.c.o" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\Wire\Wire.cpp.o" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\Wire\WireS.cpp.o" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C\libraries\Wire\twi.c.o" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C/..\..\cores\79051a363e8d7d786cb4373c5c958cb0\core.a" "-LC:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C" -lm
"C:\Users\49174\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C/attiny85_oled096test_mit-KI-Analog-Diff.ino.elf" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C/attiny85_oled096test_mit-KI-Analog-Diff.ino.eep"
"C:\Users\49174\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C/attiny85_oled096test_mit-KI-Analog-Diff.ino.elf" "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C/attiny85_oled096test_mit-KI-Analog-Diff.ino.hex"
Bibliothek DigisparkOLED im Ordner: C:\Users\49174\Documents\Arduino\libraries\DigisparkOLED (veraltet) wird verwendet
Bibliothek Wire in Version 2.0.0 im Ordner: C:\Users\49174\AppData\Local\Arduino15\packages\ATTinyCore\hardware\avr\1.5.2\libraries\Wire wird verwendet
"C:\Users\49174\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\Users\49174\AppData\Local\arduino\sketches\E85FEF554D04ABDF4190E72688E02F1C/attiny85_oled096test_mit-KI-Analog-Diff.ino.elf"
Der Sketch verwendet 4620 Bytes (70%) des Programmspeicherplatzes. Das Maximum sind 6586 Bytes.
Globale Variablen verwenden 66 Bytes (12%) des dynamischen Speichers, 446 Bytes fĂĽr lokale Variablen verbleiben. Das Maximum sind 512 Bytes.