「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ
CALENDAR
2016年9月
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
前月
翌月
Entry Archive
2024年08月
2024年07月
2024年06月
2024年05月
2024年04月
2024年03月
2024年02月
2024年01月
2023年12月
2023年11月
2023年10月
2023年09月
2023年08月
2023年07月
2023年06月
2023年05月
2023年04月
2023年03月
2023年02月
2023年01月
2022年12月
2022年11月
2022年10月
2022年09月
2022年08月
2022年07月
2022年06月
2022年05月
2022年04月
2022年03月
2022年02月
2022年01月
2021年12月
2021年11月
2021年10月
2021年09月
2021年08月
2021年07月
2021年06月
2021年05月
2021年04月
2021年03月
2021年02月
2021年01月
2020年12月
2020年11月
2020年10月
2020年09月
2020年08月
2020年07月
2020年06月
2020年05月
2020年04月
2020年03月
2020年02月
2020年01月
2019年12月
2019年11月
2019年10月
2019年09月
2019年08月
2019年07月
2019年06月
2019年05月
2019年04月
2019年03月
2019年02月
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月
2018年06月
2018年05月
2018年04月
2018年03月
2018年02月
2018年01月
2017年12月
2017年11月
2017年10月
2017年09月
2017年08月
2017年07月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月
2017年01月
2016年12月
2016年11月
2016年10月
2016年09月
2016年08月
2016年07月
2016年06月
2016年05月
2016年04月
2016年03月
2016年02月
2016年01月
2015年12月
2015年11月
2015年10月
2015年09月
2015年08月
2015年07月
2015年06月
2015年05月
2015年04月
2015年03月
2015年02月
2015年01月
2014年12月
2014年11月
2014年10月
2014年09月
2014年08月
2014年07月
2014年06月
2014年05月
2014年04月
2014年03月
2014年02月
2014年01月
2013年12月
2013年11月
2013年10月
2013年09月
2013年08月
2013年07月
2013年06月
2013年05月
2013年04月
2013年03月
2013年02月
2013年01月
2012年12月
2012年11月
2012年10月
2012年09月
2012年08月
2012年07月
2012年06月
2012年05月
2012年04月
2012年03月
2012年02月
2012年01月
2011年12月
2011年11月
2011年10月
2011年09月
2011年08月
2011年07月
2011年06月
2011年05月
2011年04月
2011年03月
2011年02月
2011年01月
2010年12月
2010年11月
2010年10月
2010年09月
2010年08月
2010年07月
2010年06月
2010年05月
2010年04月
2010年03月
2010年02月
2010年01月
2009年12月
2009年11月
2009年10月
2009年09月
2009年08月
2009年07月
2009年06月
2009年05月
2009年04月
2009年03月
2009年02月
2009年01月
2008年12月
2008年11月
2008年10月
2008年09月
2008年08月
2008年07月
2008年06月
2008年05月
2008年04月
2008年03月
2008年02月
2008年01月
2007年12月
2007年11月
Recent Entry
こないだのロボット
潮来に行ってきた
ロボット行ってきた
88の日
帰って来た
こないだのロボットと、Windows11セットアップ
ロボット行ってきた
PC買い足した
ネオクラシックカー
TkEasyGUI
Recent Comment
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan0/
レジ袋ホルダーを考える
フルタニアン/
レジ袋ホルダーを考える
Category
ノンジャンル
(2840)
PIC
(47)
AVR
(341)
Arduino
(446)
Raspberry Pi
(193)
mbed
(41)
ARM
(30)
ESP32
(15)
Android
(10)
OPアンプ
(125)
VHDL
(57)
PSoC
(4)
アナログ回路
(110)
クルマ
(126)
rails
(51)
本
(42)
導電塗料
(3)
Fritzing
(41)
Edison
(2)
FFT
(34)
写真
(157)
MIDI
(24)
その他日記
(11)
Python
(57)
3Dプリンタ
(124)
Bookmark
最初はgoo
goo blogトップ
スタッフブログ
My Profile
ブログID
nekosan0
自己紹介
Search
このブログ内で
ウェブ全て
mbedに5110のLCDライブラリを移植
mbed
/
2016年09月06日
mbedで、FFTライブラリがそこそこの速度で動いたし、
アナログ入力は20kspsでもそれなりに動きそうな
こともわかったので、次はやっぱLCDだろうと思って、
以前Arduino用に作った、5110のLCDライブラリを
移植してみることに。
どっちもC言語系だし、方言のある命令だけを変更
すれば、さくっと動くとばかり思ってたんだけど、
いろいろ手間取った。かなり手間取った。
変更点がいろいろ有っただけでなく、どうやら、
バグが潜んでいるらしい。しかも、なんでそんな
結果になるの?っていう、おかしなバグが。(後述)
とりあえず、動くようにはなったので、結果の写真。
まずは、文字列の表示(上側の「Hello World!」)
と、下側の、1文字1文字ばらばらに表示したとき
の、カーソル移動の機能確認(下側の「HELLO =」)
の表示結果。
フォントも、Arduino版と同じ8×5ドットのフォントを
そのまま。横は1ドット単位、縦は8ドット単位で位置を
設定できる仕組み。
全文字表示の確認。半角スペース、「!」、「"」…と、
ASCII文字全部を一律表示してみた結果。
画面右下まで書いても収まらないので、数文字は
左上に戻ってから続きを表示。…「x」「y」「z」
「{」「|」|}」まで。
グラフィック機能。いわゆるLINE表示機能を使って、
ランダム座標を結ぶ直線を、「PSET」と「PRESET」の
それぞれの条件で表示してみた。
最初、SPI通信の速度が速すぎておかしいのかな?
とか思って、パルス1個ごとのオンオフするときに
1usずつwaitを入れてみたんだけど、ちょっと時間
かかりすぎる。
5110は4MHzまで入力できるんだけど、1usだと最大でも
オンとオフで2us食うので、0.5MHz以下。
入力できるスピードの1/8くらいに制限してしまって
いる計算。
ひとまずはその速度で我慢しつつ、あれこれ動作が
おかしかったところを手直ししていくことに。
なんか原因がわかんないんだけど、カーソル位置
(x、y座標)を設定しなおす処理が、なぜか上手く
動かないところが出てくる。何でだろう?って
思って、ライブラリの処理内容とか、ヘッダファイル
とかもきっちりと見直しして、どうしても原因が
見当たらない。
そもそも、冒頭でx、y座標を設定しているところでは、
ちゃんと上手く動いているとこもある。その差が
まるで判らない。なんだろうなぁ?と思って、
いろいろソースやライブラリを弄りまくって、
ようやく、ひとつの傾向が見えてきた。
テストパターンとテストパターンの間に、時間稼ぎ
のために「wait_ms(2000);」って入れて、2000ミリ秒
(2秒)の間隔を空けてるんだけど、どうやら、この
wait_ms命令の「次の命令(関数呼び出し)」が無効
になっているらしい。
なんで無効になるのかはよく判らないんだけど、
そう仮定して、その前提で、無効にされちゃってる
命令を、同じもの2行続けて書いてみると…ちゃんと
動くようになった。
うん、やっぱりそうみたい。さらに、カーソル移動
の関数呼び出しだけじゃなく、画面消去の命令も、
このパターンに填まっていると、やっぱり命令が
無視されている。2個続けて書くと、ちゃんと動く。
wait_ms()メソッドにバグがあるのかな?と思って、
ここをすべて「wait(2);」という風に書き換えてみる。
…全部まともに動くようになった。なんだよぅ…
コンパイラのバグっぽい気がするけどな。
ちなみに、「wait_ms(100);」と、短めの時間稼ぎ
だと、そういうことは起こってないみたい。1秒を
こえる待ちを「wait_ms」つかって行うとだめとか
そういうことなのかな?
原因は良くわかんないけど、とりあえず「wait_ms」
を避けると上手く動くことが判った。
さて、じゃぁ、SPI通信のパルスは原因じゃない
ってことなのかな?と思って、1usのwaitを取り
除いて動かしてみる。
…動いた。しかもそれなりに速い。
本当にスペック的に大丈夫なのかがいまいち判って
ないんだけど、ひとまず動く。48MHzの11U24って、
ポーリングでパルスをオンオフすると、どのくらい
の速度で出てるんだろう?Arduinoみたいに、
端子番号からポート+端子番号に変換(1ピンだけ
オン/オフする処理)するのに、多少の時間がか
かっていると考えると、4MHzは下回っている可能性
高いと思うんだけど…
あとで計ってみないといかんかな。
さて、大丈夫と仮定して、描画速度。
文字表示とかはあまり速度を気にする必要もないと
おもうんだけど、グラフィック処理、特にドット
単位で描画する、LINE描画処理とかは、速度が
肝なので、速度を計測しておく。
ランダムの2座標を結ぶLINE描画の処理を10000回
表示してみて、17秒だった。(実測値)
ってことは、平均して、線1本描画するのに、
およそ1.7ミリ秒。500本描いても1秒以下って
かんじ。
本当は、ソフトウェアでポーリングじゃなく、
SPIライブラリ通して、ハード処理しちゃえば、
通信速度を設定できて安心なんだけど、ピンが
固定になっちゃうの、やなんだよな。
wait_usよりも細かい待ち時間設定できる機能が
あるとうれしいんだけどな。
とりあえず、「wait_ms」を2000ミリ秒に設定して
動かすと、次の命令(関数呼び出し)が機能しない
バグがありそう、ってことが判ったので、これを
どうするか…コミュニティーに報告してみるか…
…正直、まだ、発生する条件とか、その境目とかが
判ってないんだよな。Seeeduino Arch以外でも発生
するのかなぁ?
やっぱ、デバッガでステップ実行したいよな。
https://twitter.com/jironosuke99/status/772237592536330240
おぉ。エイリアンと検非違使。
http://www.cnn.co.jp/fringe/35088544.html
カカオの代替になる植物なんてあるのか…。へぇ。
味はどうなんだろう?
やっぱり、カカオ豆みたいに、収穫して、発酵させて、
焙煎して作るのかな。
http://www.aitendo.com/product/14331
ん、なんか缶入りのかっちょいいトランジスタ。200円。
http://sorae.jp/10/2016_09_02_an225.html
あのでかい輸送機(An-225)、中国で生産?
http://www.yomiuri.co.jp/world/20160905-OYT1T50043.html
香港が中国から独立?
http://sorae.jp/030201/2016_09_01_mrj.html
MRJ、異常があったのは、センサ?
コメント (
0
)
goo ブログ
ブログの作成・編集
gooおすすめリンク
おすすめブログ
【コメント募集中】スタッフの気になったニュース
@goo_blog
【お知らせ】
ブログを読むだけ。毎月の訪問日数に応じてポイント進呈
【コメント募集中】goo blogスタッフの気になったニュース
gooブロガーの今日のひとこと
訪問者数に応じてdポイント最大1,000pt当たる!