186 lines
10 KiB
C
186 lines
10 KiB
C
|
|
//#############################################################################
|
||
|
|
//
|
||
|
|
// FILE: i2c_ex1_master.c
|
||
|
|
//
|
||
|
|
// TITLE: I2C Example Master.
|
||
|
|
//
|
||
|
|
//#############################################################################
|
||
|
|
//
|
||
|
|
// Included Files
|
||
|
|
//
|
||
|
|
#include "f28x_project.h"
|
||
|
|
#include "i2c_oled.h"
|
||
|
|
typedef unsigned char uint8_t;
|
||
|
|
typedef unsigned short uint16_t;
|
||
|
|
extern uint16_t I2C_TXdata[];
|
||
|
|
extern uint16_t I2C_RXdata[];
|
||
|
|
////////////////////////////////////////////////////////////
|
||
|
|
//
|
||
|
|
// Main
|
||
|
|
//
|
||
|
|
|
||
|
|
void main(void)
|
||
|
|
{
|
||
|
|
//
|
||
|
|
// Locals
|
||
|
|
//
|
||
|
|
uint16_t index = 0U;
|
||
|
|
uint16_t count = 0U;
|
||
|
|
|
||
|
|
//
|
||
|
|
// Initialize System Control:
|
||
|
|
// PLL, WatchDog, enable Peripheral Clocks
|
||
|
|
//
|
||
|
|
InitSysCtrl();
|
||
|
|
|
||
|
|
//
|
||
|
|
// Initialize GPIO
|
||
|
|
//
|
||
|
|
InitGpio();
|
||
|
|
|
||
|
|
//
|
||
|
|
//Configure I2C pins
|
||
|
|
//
|
||
|
|
GPIO_SetupPinMux(GPIO_PIN_SDAA, GPIO_MUX_CPU1, 6);
|
||
|
|
GPIO_SetupPinOptions(GPIO_PIN_SDAA, GPIO_OUTPUT, GPIO_PULLUP);
|
||
|
|
GPIO_SetupPinMux(GPIO_PIN_SCLA, GPIO_MUX_CPU1, 6);
|
||
|
|
GPIO_SetupPinOptions(GPIO_PIN_SCLA, GPIO_OUTPUT, GPIO_PULLUP);
|
||
|
|
|
||
|
|
|
||
|
|
//
|
||
|
|
// Initialize the PIE control registers to their default state.
|
||
|
|
// The default state is all PIE interrupts disabled and flags
|
||
|
|
// are cleared.
|
||
|
|
//
|
||
|
|
InitPieCtrl();
|
||
|
|
|
||
|
|
//
|
||
|
|
// Disable CPU interrupts and clear all CPU interrupt flags
|
||
|
|
//
|
||
|
|
IER = 0x0000;
|
||
|
|
IFR = 0x0000;
|
||
|
|
|
||
|
|
//
|
||
|
|
// Initialize the PIE vector table with pointers to the shell Interrupt
|
||
|
|
// Service Routines (ISR)
|
||
|
|
//
|
||
|
|
InitPieVectTable();
|
||
|
|
|
||
|
|
//
|
||
|
|
// Set the buffer to some default non-zero value
|
||
|
|
//
|
||
|
|
for (index=0; index<MAX_BUFFER_SIZE;index++)
|
||
|
|
{
|
||
|
|
I2C_RXdata[index] = 0xBAADU;
|
||
|
|
I2C_TXdata[index] = 0x11 * (index+1);
|
||
|
|
}
|
||
|
|
|
||
|
|
//
|
||
|
|
// Initialize I2C Module as Master Transmitter
|
||
|
|
//
|
||
|
|
I2CMaster_Init(I2C_OWN_ADDRESS,I2C_SLAVE_ADDRESS);
|
||
|
|
|
||
|
|
SSD1306_Init();
|
||
|
|
// Отобразите текст
|
||
|
|
SSD1306_GotoXY(0, 0);
|
||
|
|
// Лого диаконт
|
||
|
|
const uint8_t logo [] = {
|
||
|
|
// 'vert black', 128x52px
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0x0e, 0x18, 0xc3, 0xc3, 0x0d, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x0f, 0xe3, 0x0e, 0x19, 0xcf, 0xe3, 0x8d, 0xfc, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x0c, 0x73, 0x0a, 0x1b, 0x8c, 0x33, 0xcc, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x0c, 0x33, 0x1b, 0x1f, 0x0c, 0x33, 0xec, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x0c, 0x33, 0x11, 0x1f, 0x08, 0x33, 0x6c, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x0c, 0x33, 0x3f, 0x9d, 0x8c, 0x33, 0x3c, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x0c, 0xe3, 0x31, 0x99, 0xce, 0x73, 0x1c, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x0f, 0xc3, 0x60, 0xd8, 0xe7, 0xe3, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||
|
|
};
|
||
|
|
ssd1306_DrawBitmap(0, 0, logo, 128, 52, SSD1306_COLOR_WHITE);
|
||
|
|
SSD1306_UpdateScreen();
|
||
|
|
/*
|
||
|
|
char str[]="DIAKONT";
|
||
|
|
SSD1306_Puts(&str, &Font_7x10, SSD1306_COLOR_WHITE);
|
||
|
|
// Векторная графика и текст
|
||
|
|
// Обновите дисплей
|
||
|
|
SSD1306_UpdateScreen();
|
||
|
|
SSD1306_DrawFilledRectangle(40, 10, 46, 46, SSD1306_COLOR_WHITE);
|
||
|
|
// Рисуем символ черным цветом
|
||
|
|
// Левая нижняя линия
|
||
|
|
SSD1306_DrawLine(42, 43, 84, 23, SSD1306_COLOR_BLACK);
|
||
|
|
// Левая верхняя линия
|
||
|
|
SSD1306_DrawLine(84, 23, 58, 38, SSD1306_COLOR_BLACK);
|
||
|
|
// Средняя линия
|
||
|
|
SSD1306_DrawLine(48, 56, 64, 33, SSD1306_COLOR_BLACK);
|
||
|
|
SSD1306_DrawLine(48, 56, 57, 39, SSD1306_COLOR_BLACK);
|
||
|
|
// Правая верхняя линия
|
||
|
|
SSD1306_DrawLine(58, 33, 77, 10, SSD1306_COLOR_BLACK);
|
||
|
|
// Правая нижняя линия
|
||
|
|
SSD1306_DrawLine(78, 10, 62, 33, SSD1306_COLOR_BLACK);
|
||
|
|
SSD1306_DrawLine(62, 33, 72, 19, SSD1306_COLOR_BLACK);
|
||
|
|
SSD1306_DrawLine(52, 50, 61, 37, SSD1306_COLOR_BLACK);
|
||
|
|
SSD1306_DrawLine(58, 39, 78, 10, SSD1306_COLOR_BLACK);
|
||
|
|
SSD1306_DrawLine(52, 44, 78, 10, SSD1306_COLOR_BLACK);
|
||
|
|
SSD1306_DrawLine(64, 32, 78, 10, SSD1306_COLOR_BLACK);
|
||
|
|
SSD1306_UpdateScreen();
|
||
|
|
*/
|
||
|
|
|
||
|
|
SSD1306_UpdateScreen();
|
||
|
|
|
||
|
|
|
||
|
|
while(1)
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// End of File
|
||
|
|
//
|
||
|
|
|