LED表示だけだといまいちちゃんと動いてるのかよくわからないので、うちにいくつか転がっていたOLEDの0.96インチ ディスプレイを接続して具体的な数字を表示しました。
SPI接続なのでSDKのSPI関数を使用して制御してます。
void OLED_Init(void)
{
// SPI initialisation. This example will use SPI at 1MHz.
spi_init(SPI_PORT, 1000*1000);
gpio_set_function(PIN_MISO, GPIO_FUNC_SPI);
gpio_set_function(PIN_SCK, GPIO_FUNC_SPI);
gpio_set_function(PIN_MOSI, GPIO_FUNC_SPI);
gpio_init(PIN_DC);
gpio_init(PIN_CS);
// Chip select is active-low, so we'll initialise it to a driven-high state
gpio_set_dir(PIN_DC, GPIO_OUT);
gpio_set_dir(PIN_CS, GPIO_OUT);
OLED_CS_Set();
OLED_DC_Set();
sleep_ms(500);
OLED_WrCmd(0xae);
...
たぶんディスプレイのベンダーによるものと思われるサンプルコードを元に書きましたが、CSをSPIの機能ではなく単純なGPIOとして動作させている以外は特に何も設定せずに素直に動いてくれました。
だがしかし!0.96インチだと文字が小さい・・・
もう一回り大きくしたいところだけどフォントを自作するのはめんどくさいなぁと思う今日この頃。
0 件のコメント:
コメントを投稿