-
Thread
µC + LED matrix batteriebetrieben
suchen. Es gibt recht kleine OLED-Displays z.B. hier: http://www.buydisplay.com/default/0-84-inch-ssd1306-96x16-pixel-oled-display-manufacturer-i2c-blue-on-black Die stromaufnahme zw. ca. 7...15mA ist moderat. Mit einer nicht zu kleinen Lithiumzelle kan man da ein ganze Weile intermitteriend betreiben
-
Thread
STM32: Zeigerübergabe Problem
in der Reihenfolge: [c] //von hier: (Font ist 8x6px - das Disp schiebt Zeilenweise) void ssd1306_putc(char c){ uint8_t ch = c - 32; WriteLongBuffer(0x40,ssd1306_font6x8[ch * 6],6); } //über da: void WriteLongBuffer(uint8_t Command, uint8_t *aTxBuffer, uint16_t Size) { HAL_I2C_SSD_Transmit(&I2cHandle, SSD1306_SLAVE_ADDRESS,Command, (uint8_t*)aTxBuffer,Size, 35) } Bis hierhin: HAL_StatusTypeDef HAL_I2C_SSD_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Command
-
Thread
C Fehler: Vergleich von Const mit bool immer falsch
Weil (px1 || px2) ein boolescher Ausdruck ist. Du willst: if (px1 > (SSD1306_LCDWIDTH-1)) || (px2 > (SSD1306_LCDWIDTH-1)) || ...
Versuch mal [c] void drawRect(uint8_t px1, uint8_t py1, uint8_t px2, uint8_t py2) { if( (px1 > SSD1306_LCDWIDTH-1) || (px2 > SSD1306_LCDWIDTH-1) || (py1 > SSD1306_LCDHEIGHT-1)|| (py2 > SSD1306_LCDHEIGHT-1) ) return; //.... } [\c]
-
Thread
Funktionsüberladungen WB4STM C
Sind denn im Workbench for STM keine Funktionsüberladungen erlaubt?! wie z.b.: [c] void ssd1306_command_full(uint8_t); void ssd1306_command_full(uint8_t, uint8_t); [/c] Wenn "Ja" wie stelle ich das an? Oder muss ich dann doch alles separat laufen lassen?!
-
Thread
AVR: Grafik-Display-Ansteuerung
ich hab zwar kein DOGM128 Display bei einer Aufgabenstellung verwendet, sondern ein OLED 128x64 mit SSD1306 Controller und hatte auch das Problem, dort eine Grafik aufzubauen. Ich bin dann ähnlich wie oben genannt hergegangen und habe einen Framebufferspeicher angelegt, der 32x64 Pixel oder 128x8 Pixel
-
Thread
Support zu Display Ersatz gesucht
Philips auch für den Grafikchip verantwortlich ist. Kann also was ganz anderes als der heute übliche SSD1306 sein. Bleibt wirklich nur der LA, mit dem die Initialisierung und der Datenverkehr aufgezeichnet werden.
-
Thread
SDuino: Beinahe-Arduino für STM8S
Motor-Libraries: Stepper und Servo Display-Libraries: LiquidCrystal für die klassischen Text-LCDs, Mini_SSD1306 für graphische OLEDs per I2C und und PCD8544 für die graphischen Nokia-5110 Displays per SPI. Das klassische blink.c wird euch sehr bekannt vorkommen und sieht dann für eins dieser 70-cent STM8S103
-
Thread
UART: Frame Error
uart_init(UART_BAUD_SELECT(BAUD, F_CPU)); // receive from ESP8266 sei(); i2c_init(); ssd1306_init(); ssd1306_clear(); for (;;) { readint = uart_getc(); if ((readint & UART_FRAME_ERROR) || (readint & UART_OVERRUN_ERROR) || (readint & UART_BUFFER_OVERFLOW)) { ssd1306_setpos(80, 7); ssd1306_string(" "); ssd1306_setpos(80, 7); ssd1306_numdec(readint & 0xFF00); } else if (readint & UART_NO_DATA) { } else { switch ((unsigned
-
Thread
SainSmart SPI_1.3_OLED
ssd1306_write_byte (const uint8_t x, const uint8_t page, const uint8_t byte) { ssd1306_write_instruction (SSD1306_SET_PAGE_START_ADDR | page); ssd1306_write_instruction (SSD1306_SET_COL_LO_NIBBLE | (x & 0xF)); ssd1306_write_instruction (SSD1306_SET_COL_HI_NIBBLE | (x >> 4)); ssd1306_write_data(byte); } void ssd1306_clear_screen (void) { ssd1306_reset_cursor (); for (uint16_t byte = 0; byte <
-
Thread
OLED-Displays mit 128X64 Pixeln für etwa 3 Euro (Typenvergleich) Fragen
aber auch für unter 3 Euro: http://www.ebay.de/itm/0-96-I2C-IIC-SPI-Serial-128X64-OLED-LCD-Display-SSD1306-for-Arduino-51-STM32-/172427041319?var=&hash=item282573da27:m:meC1JOu_hpjDaN1LZQcTbkw
-
Thread
SSD1306/1309 Library zum Darstellen von Text auf OLED Displays
/greiman/SSD1306Ascii
PB7). Dann noch die Header einbinden und los gehts: [c] #include "stm32f10x.h" #include "SSD1306_i2c.h" int main(void) { ssd1306_InitializeDisplay(); while(1) { ssd1306_clrscr(); ssd1306_puts("Das sind 22 Zeichen!"); ssd1306_gotoxy(0,7); ssd1306
-
Thread
STM8S Minimumboard + SSD1306 OLED Display
Immer wieder einmal spiele ich mit dem STM8S103 Controller herum, dieses mal habe ich ein SSD1306 OLED Display mit SPI Schnittstelle angebunden (eigentlich wollte ich aus China ein I2C Display haben, da wußte ich allerdings noch nicht, dass es diese Teile mit beiden Interfaces gibt und aus der
zwischen 2 monochromen Displays ausgewählt werden kann: PCD8544 (Nokia Display 84x48) und eben diesem SSD1306 (hier kann dann umgeschaltet werden zwischen SPI und I2C Interface). Wenn das von Interesse ist, werde ich das hier einstellen
-
Thread
SSD1306 - Adressierung einzelner Pixel im Buffer
Guten Abend, ich versuche gerade, die Adressierung der einzelnen Pixel bei einem SSD1306 zu verstehen, leider blicke ich da nicht ganz durch. Datenblatt dazu gibt es hier: https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf Die effizienteste Speicherung wäre wahrscheinlich in einem
will wie sie sind und man nicht die Möglichkeit hat, das Display auszulesen (wie es bei SPI/i2C beim SSD1306 der Fall ist). Max M. schrieb im Beitrag #4840034: > Wie würdest du > vorgehen, wenn du einen einzigen Pixel setzten müsstest? Ich hab mir mal Gedanken gemacht wie ich ein einzelnes Pixel
-
Thread
Pointer an Funktion übergeben AVR C
die einen String in ein Array schreibt. Dieses Array wird dann auf einen OLED Display ausgegeben (SSD1306). Dazu habe ich mir ein Testprogramm geschrieben (im Anhang), wobei die Funktion write_string_to_OLED_buffer jedoch nicht funktioniert. Nach etwas testen kam ich zu dem Ergebnis, dass ich, wenn
-
Thread
Was kann man mit 16Byte an RAM machen?
lande ich schnell bei 100% Flashauslastung. Hat jemand einen Tipp, wie man die Initialisierung des SSD1306 in den Flash reinbekommt? Ich bin bereits erstaunt, dass das bis jetzt überhaupt reinpasst und das sogar noch 24% vom Flash übrig sind! Wäre Platz für eine Rücksprungadresse mehr würde es, denke
if not negative goto step ;if so, return to top retlw 0 ;send a command to SSD1306 Display ;command is read from i2cCmd register SendCommand: movlw 078h movwf i2cDat call SendByte ;SSD1306 I2C Address clrf i2cDat call SendByte
-
Thread
Grafik Display gesucht für PIC18F2550
verbreitete ILI9341 mit SPI Schnittstelle: http://pic-projekte.de/wordpress/?p=2767 - und für das SSD1306 mit I2C http://pic-projekte.de/wordpress/?p=3171
verbreitete ILI9341 mit SPI Schnittstelle: > http://pic-projekte.de/wordpress/?p=2767 > - und für das SSD1306 mit I2C http://pic-projekte.de/wordpress/?p=3171 Danke für deine Antwort. Die Seite kannte ich schon, SPI kommt für mich nicht in Frage. Das Tutorial zum OLED SSD1306 mit I²C ist an sich super
-
Thread
Problem mit 128x64-OLED und Kontrast-Befehl
Wirklichkeit ein Helligkeits-Befehl ist) von 0.96"-OLED-Diplays. Ich meine die 128x64-Displays mit SSD1306: Wenn man diesen Befehl schnell wiederholt (z.B. weil es einen Kontrast-Menupunkt gibt, der von einem Rotary Encoder bedient wird), schleichen sich Fehler in die Darstellung des OLED ein. Dann
Kontrast schnell zu ändern. > Gibt es eine Mindestwartezeit die du einhalten musst? Laut SD1306-Doku nicht. Zum OLED-Modul insgesamt habe ich kein Datenblatt. > Macht es einen Unterschied ob du zwischen zwei geringen Helligkeitsleveln umschaltest oder zwischen zwei Leveln mit einem grossen
-
Thread
SSD1306 Display Probleme bei Zahlendarstellung
); SSD1306_command(OLED_CMD_SET_COM_SCAN_MODE); SSD1306_command(OLED_CMD_SET_COM_PIN_MAP); SSD1306_command(0x12); SSD1306_command(OLED_CMD_SET_CONTRAST); SSD1306_command(0xCF); SSD1306_command(OLED_CMD_SET_PRECHARGE); SSD1306_command(0xF1); SSD1306_command(OLED_CMD_SET_VCOMH_DESELCT); SSD1306_command(0x40); SSD1306_command(OLED_CMD_DISPLAY_RAM); SSD1306_command(OLED_CMD_DISPLAY_NORMAL); SSD1306_command
-
Thread
1,3" OLED I2C Display hat nur Streifen
das genau für ein Display? Hast du einen Link? Bist du sicher dass es einen Controller hat der SSD1306 kompatibel ist?
rechts einen Offset von 16 Pixel hat. Bei den 1,3" hab ich fast immer sh1106 gehabt. Bei den 0,96" eher ssd1306. Hatte ähnliche Probleme, weil der Chinamann ssd1306 versprochen und sh1106 geliefert hat.
-
Thread
SSD1306 Bibliothek
Moin ich bin auf der Suche nach einer Bibliothek für den SSD1306 128x64px über I2C. Ich habe bereits einige gefunden, die meisten verwenden jedoch das Arduino-Framework was ich gerne vermeiden möchte, da ich diese im Atmel Studio verwenden möchte um meinen Code
Hallo, hat jemand ein Beispiel für die Anwendung der u8g2 mit demSSD1306 Display? Finde damit einfach keinen Einstieg...
-
Thread
avr-gcc alle c-Dateien im Ordner übersetzen und dann linken
=atmega644 -I. -gdwarf-2 -DF_CPU=8000000ul -Os -Wall -flto -std=c++11 ad8319.o I2C.o SSD1306.o Framebuffer.o --output ad8319.elf -lm j@uriah 875% avr-size ad8319.elf text data bss dec hex filename 1882 0 3 1885 75d ad8319.elf j@uriah 876% avr-gcc -mmcu=atmega644 -I. -gdwarf-2 -DF_CPU=8000000ul -Os -Wall -flto -std=c++11 I2C.o SSD1306.o Framebuffer.o ad8319.o --output ad8319.elf -lm j@uriah 877% avr-size ad8319.elf text data bss dec hex filename 1882 0 3 1885 75d ad8319.elf [/pre]
-
Thread
Basic im STM8S103
hinzugefügt gehabt. Dafür hab ich dem Dingelchen ein 24C128 EEProm, Anschluss für N5510 84x48 oder SSD1306 Display und einen PCF8574 I/O Baustein spendiert. Und muss feststellen, ich hätte das ganze gerne besser in einem größeren STM32 (bin ich am Überlegen ob ich so viel Zeit opfern mag, das hier
-
Thread
OLED Display legt Teensy lahm / Flackern
Hi Leute, egal welche Library ich für mein 128x64 Oled Display (SSD1306) verwende, wenn ich den Screen Inhalt aktualisiere (sei es mit clear() oder per Leerzeichen) flackern kurz sämtliche LEDs meines Button Pads. Ich dachte zuerst irgendeine Strom-Unterversorgung
with Floating Point Unit 1M Flash, 256K RAM, 4K EEPROM Nun verwende ich aktuell die Adafruit 1306 Library für das OLED, und ich habe gesehen es gibt auch eine "DmaSpi" Library für den Teensy 3.6. Muss ich jetzt in der Adafruit Library etwas ändern um DMA zu verwenden oder kann ich das einfach in
-
Thread
I2C OLED Display läuft am ATtiny85 nicht
https://www.hackster.io/boyanov/ssd1306xled-tinusaur-attiny85-library-for-ssd1306-16dc83
-
Thread
Neue 8-Bit Tinys vorgestellt: 417/814/816/817 Gesperrt
"OLED1 XPlained PRO tiny817" Den OLED Treiber wollte ich mir ansehen, in dem Projekt ist ein "ssd1306.c" zu finden. Viel interessanter fand ich aber, was in "spi_basic.c" zu finden ist: [code] void SPI_0_init() { SPI0.CTRLA = 0 << SPI_CLK2X_bp /* Enable Double Speed: disabled */
/* Buffer Write Mode: disabled */ // | SPI_MODE_0_gc /* SPI Mode 0 */ // | 0 << SPI_SSD_bp; /* Slave Select Disable: disabled */ // SPI0.INTCTRL = 0 << SPI_DREIE_bp /* Data Register Empty Interrupt Enable: disabled */ // | 0 << SPI_IE_bp /* Interrupt Enable: disabled */
-
Thread
Displays mit integriertem Controller + SPI - Wo?
nachzubauen. Das Datenblatt sieht gar nicht so schlimm aus: https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf :D
Den SSD1306 kann man soweit ich weiss in diesen Varianten ansteuern: - direkt in den Framebuffer des SSD1306 schreiben - in einen Frambebuffer im RAM des µC zeichnen und dann den kompletten FB übertragen
-
Thread
Projekt an der Uni - Kühlschrankwächter mit MC, WLAN oder GSM
= "XXXXXXXXXXXXXXXXXXXX"; char *password = "XXXXXXXXXXX"; strDateTime dateTime; Adafruit_SSD1306 display(OLED_RESET); #define NUMFLAKES 10 #define XPOS 0 #define YPOS 1 #define DELTAY 2 #define LOGO16_GLCD_HEIGHT 16 #define LOGO16_GLCD_WIDTH 16 static const unsigned char PROGMEM
pinMode(D0, OUTPUT); Serial.begin(9600); sensors.begin(); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.display(); delay(2000); digitalWrite(D0, LOW); digitalWrite(D3, HIGH); display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize
-
Thread
Arduino / OLED lässt sich nicht einbinden
: > OLED Was für eines? 128 * 32 128 * 64 96 * 16 Je nachdem musst Du in der Adafruit_SSD1306.h das Define anpassen [c] -----------------------------------------------------------------------*/ // #define SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16 /*
schon praktisch, wenn Du verwendete Teile aus dem Beispielcode https://github.com/adafruit/Adafruit_SSD1306/blob/master/examples/ssd1306_128x64_i2c/ssd1306_128x64_i2c.ino korrekt übernehmen würdest [c] #if (SSD1306_LCDHEIGHT != 64) #error("Height incorrect, please fix Adafruit_SSD1306.h!"); #
-
Thread
PixelPipe_Game Arduino UNO mit OLED Display und Joystick
define STATE_LOOSE 3 #define STATE_RESET_PRESS_BUTTON 4 //Define Variables Adafruit_SSD1306 display(OLED_RESET); int x_in,y_in,x,y; char pipeCnt[10]; //Variable for the pipes moving from right to left on the screen char pipeSpeed=0; //counter variable for the pipeSpeed char startState
next one }; sPipe pipe[10]; //amount of available pipes void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); pinMode(2,INPUT); } void loop() { if(startState==STATE_START){ //Show Start Screen,if Button not pressed, go to the Wait for Press Button
-
Thread
[V] TI Evalboards, OLEDs, Peltierelement
handelt sich um das hier: http://www.buydisplay.com/default/monochrome-0-96-128x64-oled-display-module-ssd1306-blue-and-yellow 1x Peltierelement 40x40x4.5 mm 4€ incl. Versand Neu und unbenutzt, leider keine näheren Daten bekannt
-
Thread
Prozessor von "Mini OLED USB Charger Capacity power Current Voltage Detector Tester Meter"?
für ähnliche Hardware: - STM8003F3P6 MCU, TSSOP20 - 0.91" OLED, 15-pin FPC, 128x32, controller SSD1306 - 25mOhm current sensing resistor - LM358 as current sensing amplifier https://github.com/TerranceH/fuelgauge
-
Thread
PWM mit Sleepmode
ms100 = 0, sec = 0, min = 0; //ISR void u8g_setup(void) { //u8g_InitSPI(&u8g, &u8g_dev_ssd1306_128x64_hw_spi, U8G_PIN_NONE, U8G_PIN_NONE, PN(2, 1), PN(2, 0), U8G_PIN_NONE); // PB4 PB0 PC6 u8g_InitSPI(&u8g, &u8g_dev_pcd8544_84x48_hw_spi, PN(1,5),
-
Thread
Problem mit I²C (CubeMX)
den DMA-Mode für die I²C-Schnittstelle. An der Schnittstelle hängt ein 0,96" Oled-Display mit einem SSD1306. Pullup-Widerstände (1k2 bei 3,3V) sind auch bestückt. Das Board ist ein MapleMini mit ST32F103C8-CPU. Der Transfer selbst ist auch gar kein Problem, und bevor ich ein neues Datenpaket absende
-
Thread
Hilfe bei Bitshifting und Bytemanipulationen
Zeile. > Also so Dies wäre mir auch lieber, das Problem ist, dass das Display mit Pages arbeitet. SSD1306 Controller. Ich schreibe den Buffer mit dem DMA automatisch per SPI zum Display. deshalb muss mein Buffer ebenfalls in Pages orientiert sein. Oder übersehe ich hier gerade etwas? Falk B. schrieb
holgerkraehe) >Dies wäre mir auch lieber, das Problem ist, dass das Display mit Pages >arbeitet. SSD1306 Controller. Ich schreibe den Buffer mit dem DMA >automatisch per SPI zum Display. deshalb muss mein Buffer ebenfalls in >Pages orientiert sein. Oder übersehe ich hier gerade etwas? Ja. Man