2009年7月29日水曜日

ブレッドボードラジオさんのTimer1実験追試

ブレッドボードラジオさんのTimer1実験追試をしてみました。
Timer1 = 0
Config Timer1 = Counter , Prescale = 8
Cls ' " "=9079
Lcd "1234567890abcdef" ' "1234567890abcdef"=45528
Lowerline
Lcd "1234567890abcdef"
'Delay '1003
'Waitms 1 '1003
Stop Timer1

T = Timer1
Cls
Lcd "T=" ; T

文の最初に’が記入しているのは消すのがめんどくさいのと、後から再利用するためコメント行にしています

Timer1、内部カウンタ1/8 AVR8MHz 1クロック 1μs
LCD表示テストCLS ” ”のみ 9079μs
LCD表示テストCLS ”1234567890abcdef”フル表示 45528μs
Delay 'Waitms 1は同じ 1003μs

LCDにフル表示すると45mSかかる、表示途中に割り込みが入ったら表示は?それとも割り込みを禁止するのか?LCD表示のためにAVRをもう1個追加するのか?実験はまだ続く

BASCOM-AVRの説明はO-Familyさんとブレッドボードラジオさんのホームページが解りやすく大変参考になります、。

2009年7月23日木曜日

AVRの割り込み時間15μS位?

タイマー0、タイマー1のCTCから同時に割り込みをかけた波形

上の波形 タイマー0 下の波形 タイマー1
同時に割り込みの場合、優先順位の高いタイマー1が約15μS早く変化している1クロック0.125μSとして簡単な割り込みで120命令実行?レジスタの退避と復帰に60命令位残りは出力ポートの命令やフラグの退避かな? BASCOM-AVRのプログラムシミュレーションの使い方がよく分からない!

2009年7月20日月曜日

CTC割り込み

CTC割り込み タイマー0,1 内部クロック 1Khzで割り込み

赤丸しるし箇所の記述ミス(修正済み)、最初にOCR0A、OCR1A と書きエラー、タイマー0は直接レジスタに書ける、タイマー1は16ビットのためCompare1aか OCR1AH,OCRAL、2個記述が必要、約1Khzで割り込みPortd.4Portd.5に出力', Compare A = Toggle はコメントをはずすとOC0A.OC1Aにも出力する。
時間が経つとまた同じミスを繰り返すと思う。つい思い込みで記述してしまうことが多い私。

2009年7月15日水曜日

CTCの実験



今度はCTCを使いLED点滅、赤線部を記述、内部クロック8Mhz OCR0A=0 4.00Mhz OCR0A=39 100Khz OCR0A=255 15.62Khz Dutyは多分50%と思う、クロックを分周により色々な周波数に設定できそう。タイマーを使いこなすのは難しい未だPWM、16ビットタイマー1もある簡単な命令からやろう、本を見ても難しい!
目標タイマー割り込み習得! 

2009年7月13日月曜日

LED点滅スピード




BASCOM-AVRでDO LOOP内にSET RESET、Toggle、PORTD=1、0の命令を実行SET RESET、PORTD=1、0は同等Duty32.9%、Toggleについては1/2でDuty50%、同じON、OFFでも命令の使い分けが難しい。
この実験のために8Mhz水晶発振器購入秋月150円、ATtiny2313100円と水晶発振器の方が高く用途に合わせ、内部クロックか外部クロックを選択すべき消費電流も増える。
水晶、セラミック振動子 安いがどこまで安定か不安(実験が必要)、水晶発振器は電源を繋げば確実にクロックが出る(5v、3.3v等電圧が安定していること)
19.6608Mhz水晶発振器どこか安く手に入らないかな。

2009年7月9日木曜日

ヒューズビット書き換え

            変更前VASCOM-AVRライタ画面、赤丸書き換え前
ATtiny2313ヒューズビット書き換え内部クロック1Mhzから8Mhzに変更

AVR Studio 4 の方がヒューズビット書き換えが分かりやすい(最初にデバイスを設定する、デバイスによって設定画面が違う?、出来れば画面をコピーしておく16進や2進での書き込みはミスを誘発しやすく私は勧められない)赤丸のチェックをはずしProgram、Readでヒューズビットが読み出されチェックボックスに反映される。



すぐ下にCkout(PD2)ピンの設定が有り外部にクロックを出力できる、秋月P-10テスターで周波数 を測定 1Mhz-1.054Mhz 8Mhz-8.66Mhz なぜか1/8分周にならない?後でマニュアルを見るか!寝い!

2009年7月7日火曜日

LCD表示OK


ブレッドボード用LCD表示テスト
/**
$regfile = "ATtiny2313.DAT"
$crystal = 1000000
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5
Config Lcdpin = Pin , Db6 = Portb.6 , Db7 = Portb.7
Config Lcdpin = Pin , E = Porta.0 , Rs = Porta.1
Config Lcd = 16 * 2
Config Portd.5 = Output

Cls
Lcd "LCD ABCD 1234 \*"
コピペしたら¥が\にVT100ターミナルを思い出した。
Lowerline
Lcd "0123456789ABCDEF"

Do
Portd.5 = 1
Portd.5 = 0
Loop
End
**/
青い字の文を追加でLCD表示テストOK、BASICコンパイラはめんどくさい初期設定をせずにすぐ命令を記述でき初心者に大変便利、AVRの機能を全て使いこなすのは何年先かな?多分一生無理!

ジャンパーワイヤーにテプラでLCD信号線名貼り付け DB7、RS等、これで空いているピンへすぐ変更が出来る。