|
お久しぶりです、nemyと申します。(最近はvoltyとも名乗ってます。) お知恵お貸しいただけないかと願って、書き込み致しました。
最近、Timpy Rev8/9でも使用しているOLEDモジュールの 似たものを弄っています。aitendoというお店で売ってるSDD1332がコントローラの96x64pixelのもで、カリカリ自力でドット打ちによる、Rect命令、Line命令を作成していたのですが、速度もでず。色々探していたところ描画コマンドがあることを知りました。 ちあき様のムービーで見ましたがスクロール命令恐ろしい速度ですね^^;
で、私もフルデータシートをDLしFillRect. Rect. Line命令を実装しました、処理が速くなった!と思ったのもつかの間、なぜかLine命令の特定の条件がおかしくなって困っております。
【ご相談したい本題】 なぜか、Line命令の右肩上がりの描画だけが50ピクセルほど←へシフトしたようずれ、はみ出た←部分は右端から出てきます。真横、右肩下がりは全く問題なし。データシートにある、 21h,1h,10h,28h,4h,35d,0d,0d でも青い線が画面の←端をまたいで右から線が出てきます(;; そのほかの命令は全て意図通りで通信自体に不具合はないとUARTデバッグで(自分なりですが)確認しました。
何かヒントとなるものが得られればと思い、勝手ながら頼りに来ました。もしよければで良いのでお願いします。
|
2010/11/15(Mon) 22:26:45 [ No.1349 ]
|
ご無沙汰しております。ちあきです。
>なぜか、Line命令の右肩上がりの描画だけが50ピクセルほど←へシフトしたようずれ、はみ出た←部分は右端から出てきます。真横、右肩下がりは全く問題なし。データシートにある、 21h,1h,10h,28h,4h,35d,0d,0d でも青い線が画面の←端をまたいで右から線が出てきます(;;
この現象、そういえば少々思い当たるところがあります。 記憶を呼び戻します(^^;)ので、ちょっとお待ちくださいませ。 |
2010/11/15(Mon) 23:45:18 [ No.1350 ]
Re: OLEDの描画コマンドについて
投稿者:nemy
|
|
おはようございます。nemyです。 すごく早いレスありがとうございます。
>この現象、そういえば少々思い当たるところがあります。 >記憶を呼び戻します(^^;)ので、ちょっとお待ちくださいませ。
おお!本当ですか、呼び戻ってくれるように念を送っておきますw よろしくお願いします。 |
2010/11/16(Tue) 08:23:28 [ No.1351 ]
|
aitendoで入手できるSSD1332のデータシートには"GRAPHIC ACCELERATION COMMAND"の詳細が載っていないようですが、どこかでDLできますか? もしあるようでしたら内緒でお教えください。(^^)
お手数をおかけしてすみませんが、以下のそれぞれについて、動作結果をご確認いただけますか? (1)21h,0d,0d,95d,63d,35d,0d,0d (右肩下がり) (2)21h,95d,63d,0d,0d,35d,0d,0d (右肩下がり) (3)21h,0d,63d,95d,0d,35d,0d,0d (右肩上がり) (4)21h,95d,0d,0d,63d,35d,0d,0d (右肩上がり)
これでもしご報告の通り上記の(3), (4)だけがずれてしまうようならば、 初期化の際の"Remap & Color Depth setting"コマンドを a0h,62h とした後で、上記(1)〜(4)に変化がありますか? めんどくさいお願いですみません。 |
2010/11/16(Tue) 21:05:04 [ No.1352 ]
|
こんばんは、返信ありがとうございます。
> (1)21h,0d,0d,95d,63d,35d,0d,0d (右肩下がり) > (2)21h,95d,63d,0d,0d,35d,0d,0d (右肩下がり) > (3)21h,0d,63d,95d,0d,35d,0d,0d (右肩上がり) > (4)21h,95d,0d,0d,63d,35d,0d,0d (右肩上がり) 全て試しました。が、やはり右肩上がりの時がずれます。
> 初期化の際の"Remap & Color Depth setting"コマンドを > a0h,62h 画面表示180度回転しました(仕様通り)が、やはり右肩上がり(3),(4)だけが同じようにずれます。(;; 元々はa0h,70hにて初期化をしていました。
初期化ミスってるのかな…自分でも調べてみます。 よろしくお願いします。 |
2010/11/16(Tue) 23:13:01 [ No.1353 ]
|
過去の経験を思い出しました。 Timpyで使ったNikkaiのOLEDパネルは、表示部が64×48ピクセルしかないのに対して、内蔵コントローラには96×64用のものが使われています。その関係で初期設定を若干変えたり、座標をオフセットさせたりしないと、位置がずれるなどの不具合が出るのです。 製品そのものの資料が手に入らないために、当時その辺を試行錯誤で探っていたことを思い出しました。
一方、nemyさんがお使いのものはパネルサイズとコントローラがマッチしているので、私のケースは当てはまらないと思われます。 お役に立てなくて申し訳ありません。
あえて経験則としてお話しできることがあるとすれば、「グラフィック系のコマンドには相応に実行時間が必要なので、その終了を適当に待たなければならない」ぐらいでしょうか。 特にFill系のコマンドは実行時間が長いので、連続して発行すると期待通りの結果にならなかったりします。コマンド終了を確認する手段があればいいんですが、無いんですよね。 すでにご存じでしたらごめんなさい。スルーしてくださいませ。
> 全て試しました。が、やはり右肩上がりの時がずれます。 > > > 初期化の際の"Remap & Color Depth setting"コマンドを > > a0h,62h >画面表示180度回転しました(仕様通り)が、やはり右肩上がり(3),(4)だけが同じようにずれます。(;; 水平・垂直線、右肩下がりには問題が無く、画面をローテーションしても変化が無いとのことですので、軽々しくは言えませんがLineコマンドのバグかも知れませんね・・・。 ずれ方に規則性があるのならファームウェアで回避は可能ですけど、面倒ですね。 |
2010/11/17(Wed) 19:16:51 [ No.1354 ]
|
こんばんは、今日は珍しく帰宅が遅くなりました。
> 過去の経験を思い出しました。 > Timpyで使ったNikkaiのOLEDパネルは、表示部が64×48ピクセルしかないのに対して、内蔵コントローラには96×64用のものが使われています。その関係で初期設定を若干変えたり、座標をオフセットさせたりしないと、位置がずれるなどの不具合が出るのです。 > 製品そのものの資料が手に入らないために、当時その辺を試行錯誤で探っていたことを思い出しました。
そんなにご苦労されていたとは・・・ 内部的には96x64まで能力があるんですね。
> 一方、nemyさんがお使いのものはパネルサイズとコントローラがマッチしているので、私のケースは当てはまらないと思われます。 > お役に立てなくて申し訳ありません。 いえいえ、色々と相談に乗っていただいて助かっております。 折角手をつけたし、相談乗っていただいたことで、 それなりに納得の行く形まで頑張る気力ができました。 OLEDに屈したくないw
> あえて経験則としてお話しできることがあるとすれば、「グラフィック系のコマンドには相応に実行時間が必要なので、その終了を適当に待たなければならない」ぐらいでしょうか。 > 特にFill系のコマンドは実行時間が長いので、連続して発行すると期待通りの結果にならなかったりします。コマンド終了を確認する手段があればいいんですが、無いんですよね。 > すでにご存じでしたらごめんなさい。スルーしてくださいませ。 これ、昨日報告後に弄っていて気づきました。 処理速度色々変更したりしてるうちに、Fillが半分で終わる、ところで気づきました。
> 水平・垂直線、右肩下がりには問題が無く、画面をローテーションしても変化が無いとのことですので、軽々しくは言えませんがLineコマンドのバグかも知れませんね・・・。 > ずれ方に規則性があるのならファームウェアで回避は可能ですけど、面倒ですね。
規則性があるみたいなので、折角なのでファームウェアで回避しようと思います。ここまできたら自分には時間はかかってもやりきりたいので。
・・・もしかして96x64OLEDには128x64のチップ積んでたりして?(^^;
今回も、色々とありがとうございました。 |
2010/11/18(Thu) 01:04:00 [ No.1355 ]
|
お役に立てなかったところで恐縮ですが、久しぶりにお話ができて楽しかったです。 これに懲りず、またお寄りくださいませ。 プロジェクトの成功をお祈りしております。 |
2010/11/18(Thu) 12:29:17 [ No.1356 ]
|