i havent used one of those displays for some time ,my other demo for a pic16f1619 used the mssp i2c module
try this ,it worked on my curiosity board , plugged straight in to click socket
Code:'**************************************************************** '* Name : ssd1306_DEMO.PBP * '* Author : richard * '* Notice : * '* : * '* Date : 19/11/2017 * '* Version : * '* Notes : plugs into click port note !!!!sda/scl swapped on click skt* '* :FOR pic 16F1619 SSD1306 * '**************************************************************** #CONFIG __config _CONFIG1, _FOSC_INTOSC & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF __config _CONFIG2, _WRT_OFF & _PPS1WAY_OFF & _ZCD_OFF & _PLLEN_OFF & _STVREN_ON & _BORV_HI & _LVP_ON __config _CONFIG3, _WDTCPS_WDTCPS6 & _WDTE_OFF & _WDTCWS_WDTCWS100 & _WDTCCS_LFINTOSC #ENDCONFIG define OSC 32 ; --- *** Oscillator *** --------------------------------------------------- OSCCON = %11110000 ;32 MHz, ANSELb = 0 ANSELA = 0 ANSELC = 0 char var byte x var byte y var byte BUFF VAR BYTE[16] ;use this define for hw i2c #define hwi2c 1 #DEFINE PIC16 1 ;set and uncomment these to use softi2c 'SCL var PortB.4 ' I2C Clock 'SDA var PortB.6 ' I2C Data RB VAR WORD ;set these to match display ssdheight con 7 ; 7 = 8 PAGES 64*128 , 3 = 4 pages 32*128 ssdwidth con 127 ; 128 PIXELS WIDE sdd1306_addr con $78 Include "ssd1306_I2C.INC" ' bring it in include "font7x5_16.bas" '========================== MAIN Routine ============================== TRISB = $F0; PPSLOCK = $55; PPSLOCK = $AA; PPSLOCK = 0 ; unlock PPS SSPCLKPPS = $0C; //RB4->MSSP:SCL; SSPDATPPS = $0E; //RB6->MSSP:SDA; RB6PPS = $11; //RB6->MSSP:SDA; RB4PPS = $10; //RB4->MSSP:SCL; PPSLOCK = $55; PPSLOCK = $AA; PPSLOCK = 1; ; lock PPS gosub glcd_init GLCD_CLR BIG_TEXT = 0 ARRAYWRITE BUFF,["READY",0] GLCDSTR 10,1,BUFF




Bookmarks