ラジオ少年の楽しい電子工作、その他

AVRを使った簡単な回路の実験、そして日々のちょっとした出来事を書きます。

ATtiny2313でオシロスコープ時計(3)

2011年03月03日 | 日記

プログラムをあちこちいじくり、匙を投げて2時間くらい電源を入れっぱなしでほったらかして起きました。
夕食後オシロの電源を入れると、何と全く正常に機能しています。
これは一体どうしたことか?
プログラムを書き込む時に正常に書き込みは出来たのですが、使っていないポートから変なパルスが出ています。数回書き込みをやり直して見ましたが結果は同じ。
それならばと、チップイレーズをして書き込んだところどうやら変なパルスは出なくなりました

でも時計は表示せず。こんな状況で色々やったのですが結果はすべてNG。
勝手に動き始めた?tiny2313がおかしい可能性もありそうです。
今度新品を入手してやって見ます。
取りあえずmega88用を2313に書き換えて動いたと言うことにします。

動かない時の現象は、タイマオーヴァーフロウが11回起きてその後65msは割り込みなし、その後
再び割り込みが起きる事の繰りかえしです。
正常に動作しているmega88は割り込みは常に継続しています。
なぜ65msの間割り込みが出なくなるのか?疑問が残ります。

コメント (32)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ATtiny2313でオシロスコープ時計(考察2)

2011年03月03日 | 日記

ロジアナで見たが残念ながら推測ははずれ。セパレータのみしか出ていない。
写真はmega88の波形である。
Aがtriggerの開始、Bの右が次のtrigger。
左から時の1の桁、10の桁はブランク、次がセパレータ、その次が分の2桁、そしてセパレータ、秒の2桁になる。
電源オン後で0表示状態。
0表示の両側の濃い部分は0の両側の縦線部分で、オリジナルは16本、4本追加して20本にしてあるので拡大するとちゃんと20本見える。
1,4以外はsegmentAが常にあるので20本で挟まれた部分がそのAの部分に相当する。
この部分は4種類の電圧を出すことでHIGH、MID、LOW、ZEROに区分される。
ロジアナではこの電圧の差は表示出来ない。
ちなみに4は1と同じ立て20本のパルスになる。

考察1で6デジット表示に必要とするメモリを6x3x8=144Byteと書いたがBitが正しい。
ここでオリジナルの16F84のメモリを見ると68BYTEとなっている。2313は128BYTEもある。16F84ではうまく表示が出来る。何故だろう?
またまた分からなくなってきた。

話は違うが昨日文芸春秋を買ってきた。芥川賞の2作品が掲載されていて、西村賢太の苦役列車を読んで見たかったから。
もう一人の受賞者、朝吹真理子の「きことわ」は貴子と永遠子の姉妹の話らしい。きこ、とわと呼びあった、それが小説のタイトルにしたようだ。
この二人の立場や環境は全く正反対、兎に角読んでみよう。

それから、また考えることにしよう。
コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ATtiny2313でオシロスコープ時計(考察)

2011年03月03日 | 日記
色々考えたみた。夜も寝ないで(これはウソ)でも、目が覚めてしまい朝早くからパソコンに向かっている。

CRT上の波形は人間の目の残像現象で見えている。残像が有る状態で次のスウィープが始まり管面が光る必要がある。
昨日の実験ではセパレータしか見えないが実際はちゃんと時刻が表示されているのではないだろうか。
ただ、スウィープ間隔が長いため残像が見えずにウンともスンとも動いていないように見えるだけのような気がする。
これを検証するためには(大袈裟、、)
1.暗視カメラで撮影する。 持っていないのでNG。
2.storage scopeで見る。 これも持っていないのでNG。
3.ロジックアナライザで見る。 これが一番実現性あり、mega88の波形と比較もできる。
4.デジタルオシロで見る。  デジタルオシロは一旦メモリに記憶してそれをLCDに表示していると思うのだが、これも持っていないのでNG。
5.輝度を上げて見る。  250MHzのオシロがあるので見えるかどうかは不明だがやることは出来そう。

今日は3の方法でトライしてみよう。


セパレータは階段上に2段階で表示している。その一つ一つに10usのdelayで波形を出しているのでたまたま見えることになる。
つまり10usの間はずっと輝線がそのまま出ている。

ちなみにtiny2313のSRAMは128byteしかない。所がこの時計プログラムは1文字(1デジット)あたり3個のSRAMを使用している。6文字表示するのに3x6x8=144BYTEが必要である。
メモリをお皿にたとえれば、料理をお皿に盛りつけてテーブルに並べるにはお皿が足りない状態である。
次の料理を盛りつけるには空いたお皿を洗いそれを使わなければ間に合わない状況である。
お皿を洗う時間が発生しているようだ。
つまりガーベージコレクション?が起きていると言うことではないだろうか。
と、勝手に推測してみた。

その昔、PC6001やFMV?の時代にはメモリを使い切ってしまいガーベージコレクションが発生しプログラムが一次中断してしまう現象があったとか。
今はメモリは1G、2Gは当たり前でよほどのことが無い限りメモリが無くなってしまう事はないだろう。
コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする