32 #ifdef SSD1306_USI_SPI_SUPPORTED 35 #include <util/atomic.h> 37 #define PORT_SPI PORTB 43 static void ssd1306_spiConfigure_Usi()
45 DDR_SPI |= (1<<DD_DO);
46 DDR_SPI |= (1<<DD_SCK);
52 static void ssd1306_spiClose_Usi()
56 static void ssd1306_spiStart_Usi()
62 USICR = (0<<USIWM1) | (1<<USIWM0) |
63 (1<<USICS1) | (0<<USICS0) | (1<<USICLK);
66 static void ssd1306_spiSendByte_Usi(uint8_t data)
70 ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
72 while ( (USISR & (1<<USIOIF)) == 0 )
79 static void ssd1306_spiStop_Usi()
88 ssd1306_spiSendByte_Usi( 0x00 );
94 void ssd1306_spiInit_Usi(int8_t cesPin, int8_t dcPin)
98 pinMode(cesPin, OUTPUT);
99 digitalWrite(cesPin, HIGH);
101 if (dcPin >= 0) pinMode(dcPin, OUTPUT);
102 if ((cesPin >= 0) || (dcPin >= 0))
109 ssd1306_spiConfigure_Usi();
void(* ssd1306_closeInterface)(void)
deinitializes internal resources, allocated for interface.
void(* ssd1306_sendByte)(uint8_t data)
void ssd1306_spiCommandStart()
void(* ssd1306_dataStart)(void)
void ssd1306_spiDataStart()
void(* ssd1306_startTransmission)(void)
void(* ssd1306_endTransmission)(void)
uint8_t ssd1306_dcQuickSwitch
void(* ssd1306_commandStart)(void)