Liczba postów: 2,376
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
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?
Liczba postów: 43
Liczba wątków: 3
Dołączył: Oct 2018
Reputacja:
0
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.
Liczba postów: 178
Liczba wątków: 12
Dołączył: Feb 2018
Reputacja:
7
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ć ?
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
(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;
}
}
}
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
(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.
Liczba postów: 2,376
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
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ą.