こんばんわ
としぶぅ~です。
本日は昨日考えた内容を実践してみましたが、どうもうまくボーレートが合わないようで
ターミナルソフトでは文字化けが起こってしまう。。。しかもそこで行ったっきり帰ってこない
今日はだめだ~・・・
明日もう少し突っ込んでやってみます。
シリアルはこうなるからなかなか手をだせない・・・
ま、もう一息がんばってみます。
今日はこんなところで・・・おやすみなさい。
こんばんわ
としぶぅ~です。
本日は昨日考えた内容を実践してみましたが、どうもうまくボーレートが合わないようで
ターミナルソフトでは文字化けが起こってしまう。。。しかもそこで行ったっきり帰ってこない
今日はだめだ~・・・
明日もう少し突っ込んでやってみます。
シリアルはこうなるからなかなか手をだせない・・・
ま、もう一息がんばってみます。
今日はこんなところで・・・おやすみなさい。
こんばんわ
としぶぅ~です。
昨日は疲れ切っていたのでお休みしました。。。。
本日戻ってきました。
ちょっと時間できましたので、今日はPIC16F88のボーレイトを考えてみました。
資料は下記
こんな感じですね。
ボーレートは、上記の表から基本クロック(OSC)は8MHzだから38.4Kbpsくらいがズレがなくて
まともに使えそうですかね。。。。。
よって、TXSTAレジスタの
SYNCを0:調歩同期式
BRGHを1:High SPEED
で、SPBRGレジスタに”12”を書き込めば38400bpsのボーレート設定になるはずですね。。。
上の表から
38400 = 8000000 / (16 x (12 + 1))
という計算になると思います。
明日は職懇ですので早く帰ってきたら試してみようと思います。。。
楽しみだ(笑)
それでは簡単ですが、今日はこんな感じで。。。
おやすみなさい(^^)/
こんばんわ
としぶぅ~です。
昨日今日と明日はかけないかも・・・・といいつつ書いてます(^^;
一応いとこのそばでお線香の番をしようと思ったけど、本日はいっぱいいるということで
いりませんとのことでした。。。
だから今日も少し・・・
従兄弟がなくなって思ったこと。
「いつ死んでもいいように日々悔いのない生き方をしなければ・・・・」と思いました。
よって、今日も少しだけですがお勉強!
といっても昨日動かした回路を回路図にして残す!
ということで回路図書きました。
一応ADコンバーター用のボリュームをつけていたりします。
(実はPWMも動作確認したりしました。。。。ちゃんと動きますよ^^。。。また今度書きますね。。)
デバッガが使えないので、ADがうまく動いているかわかりませんね。。。でも動いてることは確認
しました。。。こういう時シリアルポートが使えるとデバッグ簡単なんですけどね。。。
上で書きましたが、PWMをささっと動かしてみました。。。今度機会があれば書きますが。。。。
今日は時間がないので動いたよというところだけ紹介しておきます。
ちょっとソースをはっときます。
/*================================================================================
Templateプログラム
タイマー割り込みを使って時間をカウントして処理を時分割させる
File Name : main.c
Target Compiler: HI-TECH C PRO(Lite MODE)
Programer : としぶぅ~
Verion : 1.0
================================================================================ */
//PIC用の定義ファイルのインクルード
//HI-TECH Cでは、必ず指定する
#include <htc.h>
#include "ad.h" //AD用の関数(20120908追加)
#include "delay.h" //Delay用関数(20120908追加)
//#include "lcd_f88.h" //LCD用関数(20120916追加)
//コンフィグレーションメモリの設定
__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CPD_OFF & BOREN_OFF & LVP_OFF & CP_OFF & FCMEN_OFF & IESO_OFF);
//タイマの再設定値を定義
// 2000cycle@(8MHz / 4) == 1ms
// そこからTimer1再設定に要するサイクルを引いたもの
#define WAIT_CYCLE (2000-5)
#define TMR1H_INIT ((unsigned char)(((unsigned short)(65536-WAIT_CYCLE))>>8))
#define TMR1L_INIT ((unsigned char)(((unsigned short)(65536-WAIT_CYCLE))&0x00ff))
//ビット操作命令のマクロを定義
#define clear_bit( reg, bitNumb ) ((reg) &= ~(1 << (bitNumb))) //指定されたビットをクリア
#define set_bit( reg, bitNumb ) ((reg) |= (1 << (bitNumb))) //指定されたビットをセット
#define test_bit( reg, bitNumb ) ((reg) & (1 << (bitNumb))) //指定されたビットをテスト
unsigned char tmr_1ms;
unsigned char tmr_4ms;
unsigned char tmr_4ms_up;
unsigned char tmr_cnt_up;
//割り込み関数
//1/100秒の、タイマのオーバーフロー割り込みで、計測値のインクリメントと、スイッチの確認を行う
void interrupt f_int( void )
{
//タイマ割り込みかどうかをチェックして、タイマ割り込み以外の場合は、処理をしない
if(TMR1IF) {
//タイマの値を再設定し、次の割り込みが1/1000秒後に発生するように設定する
TMR1H = TMR1H_INIT;
TMR1L = TMR1L_INIT;
TMR1IF=0; //タイマ1の割り込みフラグをクリアする
tmr_4ms++; //10msごとのカウンタをインクリメント
if(tmr_4ms >= 4){
tmr_4ms = 0;
tmr_4ms_up = 1;
tmr_cnt_up++;
//PORTB 0bitをon/offして4msでtmr_cnt_upが4msになっていることを確認する。
if(test_bit(PORTA,2)){
clear_bit(PORTA,2);
}else{
set_bit(PORTA,2);
}
}
}
}
//ハードウェアの初期化
//使用する回路に合わせて、I/Oポートの方向などを設定する
void IoInit(void)
{
OSCCON = 0x70; //CLK=8MHzに設定する
//ポートの設定
TRISA = 0b00010000; //ポートAは使用しないが、出力に設定 PORTA-bit3=SW入力
// TRISB = 0b00000000; //ポートBは使用しないが、出力に設定
PORTA = 0; //ポートAの初期値を0にする
// PORTB = 0; //ポートBの初期値を0にする
ANSELA = 0b00000000; //アナログモードは使用しないので、0を指定
}
//タイマ1の初期化
void Tmr1Init(void)
{
T1CON = 0x00; //プリスケーラを、内部クロック、1:1に設定
TMR1H = 0; //タイマ1の初期値を0にする
TMR1L = 0;
TMR1IF = 0; //割り込みフラグをクリアする
//タイマ1割込を有効にする
TMR1IE = 1;
PEIE = 1;
//グローバルの割り込み制御ビットを有効にする
GIE = 1;
}
//メインルーチン
void main( void )
{
unsigned char ansel;
int i;
IoInit(); // I/Oポートの初期化
Tmr1Init(); // タイマ1の初期化
ansel = 0x10; // AD4を指定(20120908追加)
adinit(ansel); // RA4をAD4ポートとして初期化する(20120908追加)
//タイマ周期が1/100秒になるように、初期化する
TMR1H = TMR1H_INIT;
TMR1L = TMR1L_INIT;
//時間のカウンタの初期化
tmr_1ms = 0;
tmr_4ms = 0;
tmr_4ms_up = 0;
tmr_cnt_up = 0;
//タイマ1を開始する
TMR1ON=1;
ad_disp = 0;
ad_data_old = 0;
ad_data = 0;
//無限ループ
while(1){
if(tmr_4ms_up == 1){
tmr_4ms_up = 0;
switch(tmr_cnt_up){
case 0: ad_4ms(); //処理1 ADを実施(20120920追加)
break;
case 1: /*disp_ad3();*/ //処理2 ADを実施(20120920追加)
break;
case 2: //処理3
break;
case 3: //処理4
break;
case 4: //処理5
break;
}
}
}
}
一応LCD等は使えないのでコメントにして外してあります。
マーカー部分が変更必要なところです。
ポートAしかないのと、ADもAN3までしかない。。。
あと、CONFIGも少し違うところありました。
HITEC-Cは9.82使っています。
9.83だとかなり違っていたように思います。
バージョン変わるとかな~りエラーが山のようになりますので、そしたらヘッダーファイル見て
ヘッダーファイルに合わせましょう・・・(レジスタ名等)
今日はこんなところでしょうか…
もう少しお勉強しないと!?
頑張ります。。。明日は葬儀に参列してきます。
ではおやすみなさい(^^)/
こんばんわ
としぶぅ~です。
昨日こちらに戻ったばかりですが。。。。本日従兄弟がなくなったということで明日の仕事
終了後、またとんぼ返りです。。。。体はもつか。。。問題です(^^;
明日から明後日あたりまで葬儀関係で投稿できないので本日といあえずPIC12F1822の
動作を見てみました。
ちょっと疲れているので、題名の通りちょいちょいと動作確認してみました。
即席で、
こんなん作りました。
動作確認だけなので、こんな感じでいいでしょう!
PIC16F88で作ったテンプレートを修正しただけで、簡単に動かせます。。。動作スピードも
見たいんだけど。。。また今度(^^)
一応動いていますね。。。LEDついています。
なんか簡単についてしまった。。。。
アングル変えて・・・
一応LEDのポート出力はいかがでしょうか?
だいたい500Hz位で動いていますね。。。
ま、とりあえずこんな感じでしょう。
このくらいの簡単に動かせるものならば8pinのPICで十分かな。。。ただデバッグできないので
ソフトを複雑に組むとはまります(笑)
さて。。。体力のない私は今日はこの辺にて・・・
おやすみなさい~(^^)/
こんばんわ
としぶぅ~です。
今日は上の娘のエレクトーンの発表会のため、3週連続で自宅に帰ってきました。
上の娘はというと、今日演奏しなければいけない曲もまだ不満足な演奏しかできないのに朝から
3DSでゲーム!・・・・
1回目:「ちゃんと練習をしなさい・・・他の人にも聞いてもらうんでしょ・・・」
「は~い」といい返事でエレクトーンをひきに・・・数分後戻ってきてゲームをしようとする。。。
2回目:「今何回も詰まったでしょ?。。。最低でも詰まらないようになるまで練習つずけなさい・・・」
「は~い」といい返事でエレクトーンひきに行きましたが数分で戻ってきた・・・
「足が痛くて・・・」といいわけ「足は間に合わないから使わないんでしょ?」というと「使わないとひけないんだよね~」
と。。。。ゲームをやろうとするので、「今日は発表会おわるまで禁止!」と言うと、なんか番うこと始めるので。。。切れてしまった・・
3回目:「今日は誰のために帰ってきてると思っているのか!?」と、しかってしまいました。。。。
「10回連続で詰まらずに引けるまで練習するように!」というと「ぶつぶつ・・・」
それでもすぐ戻ってきて今度は下の娘のゲームにちょっかい・・・・
もうなんか午前中はこれを延々とやり続けました。。。疲れた(--;
で、嫁さんが午後一で仕事から戻ると今度は、下の娘。。。。
「服がないから買いに行こう・・・」と・・・これには嫁が切れてました。。。
押し問答する間に発表会の会場に行く時間に・・・・
嫁と上の娘に先に行かせて、私と下の娘の対決!
服は、2年前の上の娘と同じくらいの体格なのでないわけがない・・・いろいろ服を出すが「ない」とのたうちまわる・・・
もうこれには切れて・・・「もう行かなくていい!留守番!」と言い放つがひかない・・・なんと頑固な・・・誰に似たんだ(ーー;
大声で怒鳴りつけるが、効果がない・・・・なぜ!
最終手にのどが枯れました(;_;)
出した服を着ないなら連れて行かないと言ったが。。。。ズボンが気に入らんようで・・・もう泣きたくなってきた。。。
下の娘は泣いているが多分嘘泣き・・・それはわかっているが、しばらく放置するも服もズボンもきない・・・・
いったい何を言いたいのか全くわからん。。。。「このズボンはかないともうおいていく」って言ったらズボンはあきらめて
はかせてくれと・・・・何年生だ・・・(--;
ズボンはなんとかはかせて今度は服がないと。。。。!
出した服を着せようとすると「長袖は暑いから・・・いやっ」・・・・おいおいもう寒いぞ・・・と思ったらもう観念したのか自分で
洗濯物干し場から自分のお気に入りの半そでのワンピ?を取ってきて自分で着てた・・・・この数時間はなんだったんだ(;_;
もう疲れ果てて発表会に行きました。
つ~か~れ~た~・・・・
叱るのってすごく体力使いますね・・・・
普段一緒にいないので、あまり怒らないようにはしているんですが・・・・駄目ですね。。。わけのわからないことを平気でやり
始めるときはどうしても怒らないといけない・・・怒らなければいい父親なんでしょうが。。。。むづかしい。。。
今日は久しぶりに切れまくったのでここに書いておきます。。。恥ずかしい話です。
それでは今日はこの辺で
おやすみなさい。。。