学習は時間厳守原子、塗装ポイント機能とクリアスクリーン機能とOLED_GRAM [128] [8]私は困惑されているこの定義、128×64の解像度をOLED中。8分割、及びそう128X8であるが、二次元アレイは、[128]のように定義される理由[8]ここで、私は少し困惑してみましょう。
インテルは、この記事に出くわした:http://openedv.com/thread-84722-1-1.html
彼らは、何が起こっているトピックに次のエントリを理解するであろう
抗OLED_GRAMサイズを定義し、メモリストレージの形式と一致しないままになりれ、図示のように有機発光表示装置のプロセスを理解しやすい例初心者は、Iコードは、兄弟わずかに修正を原子。
OLEDルーチン原子弟探査プレートでは、多くの初心者はかなり塗装機能のポイントを理解していません。
実際には、初心者がマニュアルとM00750チップSSD1306の取扱説明書を読んですることではなく、再マッピングコマンドでSSD1306による初心者のための多くの混乱をもたらすために、再マッピングは、初心者の混乱の原因となっています。
元のルーチンに、OLEDディスプレイがオンになって、次のコードをテストすることができ、画面、画面の最7頁部の最下部に位置するPAGE0:
INTメイン(ボイド)
{
delay_init(168);
uart_init(115200) ;
LED_Init();
OLED_Init();
OLED_ShowString(0、0、 "TEST"、16);
OLED_Refresh_Gram();
OLED_WR_Byte(0x26、OLED_CMD); //右シフト
OLED_WR_Byte(0x00に、OLED_CMD)を、
OLED_WR_Byte(0x07の、OLED_CMD ); //最初の7はこちらのページを、スタート
OLED_WR_Byte($ 00、OLED_CMD); //翻訳の割合を設定
OLED_WR_Byte(0x07の、OLED_CMDを); //ここ終了ページ、7ページです
OLED_WR_Byte($ 00、OLED_CMD); //開始列
OLED_WR_Byte(から0x7f、OLED_CMD); //エンドカラム
OLED_WR_Byte(0x2f、OLED_CMD); //は、翻訳開始
}
テストの後、ドローポイント機能を変更することができること方法を理解することが容易です示されるようにOLEDモジュールの表示画面に対向するユーザは、そのような表示モードとメモリ記憶フォーマットSSD1306(無マッピング)において、一致した場合:
そしてOLED_GRAM [] []に示すように、書き込みOLEDは、OLEDは、また、以下に示す一貫した高のメモリが不足しているメモリで:
注意:設定手順OLED初期化関数を修正する必要性を、示すように:
注:示されるようにOLED画面が方向を座標
ボイドOLED_DrawPoint(U8のX、U8のY、U8さt)
{
U8のPOS、BX、TEMP = 0。
IF(X> 127 || Y> 63)のリターン;
POS = Y / 8。
BX = Yの%8。
TEMP = 1 << BX。
もし(T)OLED_GRAM [X] [POS] | = TEMP。
他OLED_GRAM [X] [POS]&=〜温度;
}