Skocz do zawartości

PIC32 OLED_SSD1331 biblioteki


adi1525

Pomocna odpowiedź

Witam, poszukuje bibliotek do wyświetlacza ze sterownikiem SSD1331 dla STM32, znalazłem bibliotekę Adafruit-SSD1331 ale one zawierają biblioteki z arduino i nie wiem czy to będzie działać, mógłby ktoś mi jakieś podrzucić. Dodam, że znalazłem biblioteki dla różnych mikroprocesorów oprócz PIC, czy ktoś wie dlaczego? Dzięki;)

Link do komentarza
Share on other sites

Nie będzie działać, ale patrząc jak jest napisana powinieneś z łatwością być w stanie napisać swoją dla PIC-a. Dlaczego nie ma bibliotek dla PIC? Trudno powiedzieć, być może dlatego, że nie ma za bardzo do niego narzędzi poza Windowsem...

Link do komentarza
Share on other sites

Zostało mi tylko ją przetłumaczyć bo raczej tego nie znajdę. Tylko aż tak dobrze się na tym nie znam. Nie mogę sobie poradzić z funkcją "Transmisja danych przez SPI w trybie blokujacym":

#define __SSD1331_WRITE_BYTE(__DATA) HAL_SPI_Transmit(&hspi1, &__DATA, 1, 1000)

Jak ustawić tryb blokujący na PIC ?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Lekko pozmieniałem i użyłem tylko niektórych funkcji żeby zobaczyć czy w ogóle działa. Nie mam pewności co to ustawienia prescalera, w PIC'u wgrany jest bootloader z podłączonym oscylatorem 20MHz przy czym taktowanie procesora wynosi 100MHz.

Mógłby ktoś powiedzieć co jest nie tak? Bo wyświetlacz w ogóle się nie załącza.

#include <xc.h>
#include "SSD1331.h"
#include <plib.h>
#define DRAW_LINE                       0x21
#define DRAW_RECTANGLE                  0x22
#define COPY_WINDOW                     0x23
#define DIM_WINDOW                      0x24
#define CLEAR_WINDOW                    0x25
#define FILL_WINDOW                     0x26
#define DISABLE_FILL                    0x00
#define ENABLE_FILL                     0x01
#define CONTINUOUS_SCROLLING_SETUP      0x27
#define DEACTIVE_SCROLLING              0x2E
#define ACTIVE_SCROLLING                0x2F

#define SET_COLUMN_ADDRESS              0x15
#define SET_ROW_ADDRESS                 0x75
#define SET_CONTRAST_A                  0x81
#define SET_CONTRAST_B                  0x82
#define SET_CONTRAST_C                  0x83
#define MASTER_CURRENT_CONTROL          0x87
#define SET_PRECHARGE_SPEED_A           0x8A
#define SET_PRECHARGE_SPEED_B           0x8B
#define SET_PRECHARGE_SPEED_C           0x8C
#define SET_REMAP                       0xA0
#define SET_DISPLAY);

   SpiChnOpen(1, SPICON_MSTEN|SPICON_FRMEN|SPICON_MODE16|SPICON_SMP|SPICON_ON, 2); 

   DC=0;
   RST=0;
   RST=1;
   CE=0;
WriteSPI1(DISPLAY_OFF);          //Display Off
   WriteSPI1(SET_CONTRAST_A);       //Set contrast for color A
   WriteSPI1(0xFF);                     //145 0x91
   WriteSPI1(SET_CONTRAST_B);       //Set contrast for color B
   WriteSPI1(0xFF);                     //80 0x50
   WriteSPI1(SET_CONTRAST_C);       //Set contrast for color C
   WriteSPI1(0xFF);                     //125 0x7D
   WriteSPI1(MASTER_CURRENT_CONTROL);//master current control
   WriteSPI1(0x06);                     //6
   WriteSPI1(SET_PRECHARGE_SPEED_A);//Set Second Pre-change Speed For ColorA
   WriteSPI1(0x64);                     //100
   WriteSPI1(SET_PRECHARGE_SPEED_B);//Set Second Pre-change Speed For ColorB
   WriteSPI1(0x78);                     //120
   WriteSPI1(SET_PRECHARGE_SPEED_C);//Set Second Pre-change Speed For ColorC
   WriteSPI1(0x64);                     //100
   WriteSPI1(SET_REMAP);            //set remap & data format
   WriteSPI1(0x72);                     //0x72              
   WriteSPI1(SET_DISPLAY_START_LINE);//Set display Start Line
   WriteSPI1(0x0);
   WriteSPI1(SET_DISPLAY_OFFSET);   //Set display offset
   WriteSPI1(0x0);
   WriteSPI1(NORMAL_DISPLAY);       //Set display mode
   WriteSPI1(SET_MULTIPLEX_RATIO);  //Set multiplex ratio
   WriteSPI1(0x3F);
   WriteSPI1(SET_MASTER_CONFIGURE); //Set master configuration
   WriteSPI1(0x8E);
   WriteSPI1(POWER_SAVE_MODE);      //Set Power Save Mode
   WriteSPI1(0x00);                     //0x00
   WriteSPI1(PHASE_PERIOD_ADJUSTMENT);//phase 1 and 2 period adjustment
   WriteSPI1(0x31);                     //0x31
   WriteSPI1(DISPLAY_CLOCK_DIV);    //display clock divider/oscillator frequency
   WriteSPI1(0xF0);
   WriteSPI1(SET_PRECHARGE_VOLTAGE);//Set Pre-Change Level
   WriteSPI1(0x3A);
   WriteSPI1(SET_V_VOLTAGE);        //Set vcomH
   WriteSPI1(0x3E);
   WriteSPI1(DEACTIVE_SCROLLING);   //disable scrolling
   WriteSPI1(NORMAL_BRIGHTNESS_DISPLAY_ON);//set display on
   DC=1;
   CE=1;
}
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.