UP: tak jak pisałem- nie działa z tą biblioteką, święci się jedynie jakiś malutki paseczek na samej górze wyświetlacza
To z jakiego sklepu to kupiłeś i jak wygląda na zdjęciu nie sugeruje jego adresu I2C. Znasz już ten adres, użyłeś go?
Tak, adres to C - już dawno to sprawdzałem. Niestety niewiem gdzie on był dokładnie kupiony gdyż kupował go promotor- jednak prawdopodobnie jest to ten z botlanda co link dałem wyżej.
To czemu nie zwróciłeś uwagi że tam nie ma sterownik SSD1306 tylko inny ? W takim wypadku jak ma ten wyświetlacz działać ?
Jeśli Oled jest sprawny i dział Ci z jedną biblioteką U8glib.h to tak samo zadziała z innymi. No faktycznie Adafruit SSD1306 jest tylko do oleda z tym driverem, do SH1106 jest inna biblioteka. Ale jak uruchamiasz U8glib.h jako SSD1306 i działa, to dziwne, że te dwie pozostałe miałyby nie działać. Zobacz sobie biblioteki do SH1106 i sobie potwierdź najpierw, jaki masz tam driver
https://github.com/wonho-maker/Adafruit_SH1106 , jeśli SH to w U8 też taki wybierz.
(25-10-2018, 19:26)Automatyk231 napisał(a): [ -> ]Mógłbyś zapodać taki kod a wtedy by się wyjaśniła sprawa ilości RAM. Próbowałem też zeedytować lekko kod , wyświetlanie w osobną funkcję " wsadzić" itd lecz nadal to samo. Kod biblioteki jest ogólnie dostępny na Internecie.
Masz kody:
Kod:
//------------------------------------------------------------------//
// Sekcja ".initX" (ZERO zainicjalizowane) //
//------------------------------------------------------------------//
unsigned char DnoStosu NOINIT; // Kontrola stosu
void ClrIntRam(void) __attribute__ ((naked)) __attribute__ ((section (".init3")));
void ClrIntRam(void)
{
unsigned char *AdrRam;
//--- Zapisujemy od ostatniej zajetej komórki ram do wierzchołka stosu -32 bajty rezerwy ---
for (AdrRam=&DnoStosu; AdrRam < (unsigned char*)RAMEND-32; AdrRam++) // Wpisanie do IntRam $FF
{
*AdrRam = 0xFF;
}
}
Kod:
//----------------------------------------------------------------------//
// Sprawdz zajetość stosu //
//----------------------------------------------------------------------//
void TestStosu()
{
unsigned char *AdrRam;
unsigned int cnt=0;
//--- Sprawdzamy od ostatniej zajetej komórki ram do wierzchołka stosu -32 bajty rezerwy ---
for (AdrRam=(&DnoStosu)+1; AdrRam < (unsigned char*)RAMEND-32; AdrRam++) // Wpisanie do IntRam $FF
{
cnt++;
if (*AdrRam != 0xFF)
{
FreeRam = cnt; // Wolny obszar RAM'u
if (FreeRam < 32 )
{ // Jesli za mały obszar to generuj błąd
PrintError( ERR_STOS );
StanLedErr=LED_ERR_STOS;
sprintf_P(str, PSTR(" Free $%04x RAM"CRLF), FreeRam); PrintString(str); _delay_ms(TIMUARTFREE);
}
return;
}
}
}
kaczakat - działa ta biblioteka ,tekst na wyświetlaczu się wyświetla, tylko zastanawiam się jak wyświetlić wartość aktualnej wilgotności?
"display.println(WILG);" ?
UP: Jednak tekst na wyświetlaczu nie chce się zmieniać. Coś myślę , że może ten wyświetlacz jest uszkodzony.
es2 - błąd przy kompilacji : expected initializer before 'NOINIT' (niewiem co on znaczy
)
W ogóle dziękuje za zainteresowanie tematem
(26-10-2018, 16:27)Automatyk231 napisał(a): [ -> ](niewiem co on znaczy )
Tego się obawiałem, że dam kod i zostanę zasypany pytaniami. Musisz sobie poszukać w necie, bo nie bardzo mam czas robić kilkustronicowe wykłady co do czego i dlaczego tak a nie inaczej.
To niestety jest pech początkującego, że wszystko co chcesz uruchomić jest zepsute. Odłóż na półkę, przerób kurs Arduino od podstaw do programów wielozadaniowych, zwiększ swojego skilla, a w 95% przypadkach te same podzespoły po paru miesiącach magicznie się naprawią.