プログラムをあちこちいじくり、匙を投げて2時間くらい電源を入れっぱなしでほったらかして起きました。
夕食後オシロの電源を入れると、何と全く正常に機能しています。
これは一体どうしたことか?
プログラムを書き込む時に正常に書き込みは出来たのですが、使っていないポートから変なパルスが出ています。数回書き込みをやり直して見ましたが結果は同じ。
それならばと、チップイレーズをして書き込んだところどうやら変なパルスは出なくなりました
。
でも時計は表示せず。こんな状況で色々やったのですが結果はすべてNG。
勝手に動き始めた?tiny2313がおかしい可能性もありそうです。
今度新品を入手してやって見ます。
取りあえずmega88用を2313に書き換えて動いたと言うことにします。
動かない時の現象は、タイマオーヴァーフロウが11回起きてその後65msは割り込みなし、その後
再び割り込みが起きる事の繰りかえしです。
正常に動作しているmega88は割り込みは常に継続しています。
なぜ65msの間割り込みが出なくなるのか?疑問が残ります。
ただ、compileoption O1,....Osに依って
ずいぶんSizeが違うのですね。
ありがとうございました。
ところで、コンパイルはうまくいったのでしょうか?
txtのみ選択したい。
あるいはtool barの編集をクリックするとその中にすべて選択とかselect allとか出てくるので後は同じ様にする。
http://www.rlc.gr.jp/project/adconv/ladder/adv/adv.htm
電流加算型R-2Rも有るのですね、知らなかった。
(制御bitportには、2Rが接続されるのか)
Programの範囲指定選択するとスム-ススクロ-ルで時間がかかります。(約5分)
これを高速で行うには、どうするのですか?
&abc
%abc
$abc
#abc
"abc"
!abc
'abc
<abc>
今、DownLoadしました。ありがとう。
kugaさん
そうでしたね。忘れてしまいました。
上記にupしました。
いて、文字化け等、問題を解決したいと考えますので、宜しくお願い致します。
memset(&line, 0, sizeof(line)) ;
良く調査してみます。
Sutadio4で見る分には
memse(&.................) ;
に成っているのですが?ここが変の様な気が?
プログラムがどうなっているのか見えませんのでこの程度しか分かりません。
--------------------------------
/*
* clear buffers
*/
memset(&line, 0, sizeof(line)) ;
memset(display, 0, sizeof(display)) ;
---------------------------
../AVROSC.c:306: error: 'amp' undeclared (first use in this function)
../AVROSC.c:306: error: (Each undeclared identifier is reported only once
../AVROSC.c:306: error: for each function it appears in.)
../AVROSC.c:306: error: expected ')' before ';' token
../AVROSC.c:306: error: too few arguments to function 'memset'
make: *** [AVROSC.o] Error 1
Build failed with 5 errors and 0 warnings...
kugaさん、
R-2Rラダーの抵抗値が逆とのこと了解です。
330をはずすのも面倒ですのでR6を160オームにしました。
表示はG-segが中央より下がります。文字のバランスとしてこの方がいいかも知れません。
amp ???
今、TINY2313に変更してcompileしています。
勉強不足でerrorが取れません、教えて下さい、
または、参照pageはどこに?
R-2Rラダーの抵抗値付け違い、了解です。
R5<--->R6 ?(IseetxtDoc.)
thanks.
ソース内のコメント形式で書かれた抵抗接続が正しいです。
ここは2bitのR-2RラダーDACです。
R6の680オームを210オームくらいにすればGーsegは下がると思います。
了解です。resetピンをピンセットで触るとresetがかかります。5.1K位にした方がいいのかも。
>3/2の写真をみると、抵抗が7本見えていて
LEDの左側にICの直ぐ上に10Kがついています。
どうも細かいところまで見ていただいて有り難う御座います。
数字に見えなかったので、H信号のCALを調整
して、数字に成る様にしました。
タイミングを他のオシロで観測し少し理解してからTINY2313に移行します。
いろいろ、ありがとうございました。
10Kは適切な値だと思います。
2.2Kでプルアップしたら負荷として重すぎてAVRISPで書けなかったことがありました。
3/2の写真をみると、抵抗が7本見えていて
LED右の抵抗がLED用制限抵抗だとすると、1本少ないなと思ったんですけどね。
SW用に2本,2bitDACに4本
BORは禁止にしてあります。
>レセットpinはPULL-UPしていますか?
10KでVccにプルアップしてあります。
プルアップはどのくらいが適当ですか?
mainルーチンには100msのdelayがあるからkの時間以上経過しないとセグメント展開はしない。
BORの設定はどうなっているだろう?
レセットpinはPULL-UPしていますか?
AVRのリセットpin内部ブルアップされていますが抵抗はかなり大きいようでセンシティブです。
私の経験では、RESETピンのみをピンセットでツンツンとつついたらRESETが掛かりました。
その通りです。64usのOVFが出なければ分秒セパレータが出るわけないですね。11回では時分セパレータだけしか出ません。
手持ちの2313が2個あるのですが、1個は現象が出なくなってしまいました。不具合の出る方でもう一度確認しました。
トリガーが10発出てその後、60ms中断してまた10発出るこれの繰り返しの様です。
現象の出なくなったものと不具合が同じかどうかは分かりませんが。
現象の出なくなったものでは時分、分、秒セパレータが11発出ていてその後65ms中断そしてまた11発出る繰り返しでした。
これは、おかしいぞ。
先のセパレータしか表示しないという症状と矛盾する。
分秒セパレータが表示されるためには、トリガー信号を発生させた割り込み以降14回の割り込みがなければならないはず。
11回とは、トリガー信号の勘違いだろうか
オシロの掃引時間(0.1ms)x10DIVは時計の表示に無関係です。と言うのは時計の表示文字の大きさ、間隔はCPUのCLKで決まってしまいます。オシロは単にそのCPUのメモリ内のイメージを投影しているだけです。
CRTの管面に適当な大きさで全体が表示出来るように時間軸を設定します。
timer0のOVFは64us毎に起きますが、何故かこの割り込みが中断してしまうのでそれを測ったら65msだったと云うことです。
プログラムを解析するとこの時計のからくりが良く分かりますので、ぜひトライしてみて下さい。
作ればすぐ動くでしょうが、それで終わりではもったいないです。
この様に考えましたが、OK or NG。
水平1本掃引 0.1msx10(div)=1ms
垂直16本 8x8(div)=64
1x64=64ms
思いますが。
RAMの使用量は、ボラタイル宣言に関係して
いるのでは?
(ボラタイル宣言、メモリの開放?くらいの
曖昧理解しか知識が有りませんので。
パスコンは基板の裏側に0.1uFのチップコンを数個入れてあります。WDTはdisableしてあるのですが。
どうもすっきりしない顛末です。
もう1個2313が有るのですが同じ現象ですが、こちらは壊れている可能性が有ります。もう一度新品で調べてみることにします。
まるでWDTリセットでも起こってるかのような症状です。
ところで、基板写真にパスコンが見当たりませんが、裏面ですか?