掲示板


[記事リスト] [返信する] [新着記事] [過去ログ] [ワード検索] [留意事項] [管理用]

記事No 775
タイトル Re: カウントダウンタイマー
投稿日 : 2016/12/19(Mon) 22:41:53
投稿者 Gokan   <gokan@picfun.com>
参照先
タイマの割り込みを使うと下記のような感じで時間の制御ができます。
下記は赤LEDを1秒間隔でオンオフを継続し、スイッチが押された
時から青LEDを2秒間隔でオンオフするというものです。

/**********************************************
* LEDチカチカ タイマ1,3使用
* PIC16F18325
**********************************************/
#include <xc.h>
// コンフィギュレーション
#pragma config FEXTOSC = OFF, RSTOSC = HFINT1, WDTE=OFF, LVP=OFF

/***** メイン関数 ***********/
void main(void) {
OSCCON1 = 0x60; // PLL Off 1/1
OSCFRQbits.HFFRQ = 3; // 4MHz
LATC = 0x05; // ブリッジオフ
TRISA = 0x30;
TRISC = 0;
ANSELA = 0; // すべてデジタル
ANSELC = 0;
/** タイマ1初期設定 1sec **/
T1CON = 0xC1; // LFINTOSC 1/1 開始
TMR1H = 0x86; // 31kHz/31000=1Hz
TMR1L = 0xE8;
PIE1bits.TMR1IE = 1; // 割込み許可
/** タイマ3初期設定 2sec **/
T3CON = 0xC0; // LFINTOSC 1/1
TMR3H = 0x0D; // 31kHz/62000=0.5Hz
TMR3L = 0xD0;
PIE3bits.TMR3IE = 1; // 割込み許可
/* グローバル割り込み許可 */
INTCONbits.PEIE = 1;
INTCONbits.GIE = 1;
/******** メインループ ***********/
while(1){
if(PORTAbits.RA5 == 0){ // S1オンの場合
LATCbits.LATC3 = 1; // 青点灯
TMR3H = 0x0D; // 31kHz/62000=0.5Hz
TMR3L = 0xD0;
T3CONbits.TMR3ON = 1;// タイマ3動作開始
while(PORTAbits.RA5 == 0);// オンの間待つ
}
}
}
/******************************************
* タイマ1,3割り込み処理関数
*****************************************/
void interrupt isr(void){
if(PIR1bits.TMR1IF){ // タイマ1割り込みの場合
TMR1H = 0x86; // 31kHz/31000=1Hz
TMR1L = 0xE8;
LATCbits.LATC5 ^= 1;// 赤反転
PIR1bits.TMR1IF = 0;// 割り込みフラグクリア
}
if(PIR3bits.TMR3IF){ // タイマ3割り込みの場合
TMR3H = 0x0D; // 31kHz/62000=0.5Hz
TMR3L = 0xD0;
LATCbits.LATC3 ^= 1;// 青反転
PIR3bits.TMR3IF = 0;// 割込みフラグクリア
}
}

         以上


> PIC初心者ですが見よう見まねで下記のHPのキッチンタイマーを
> 製作したのですがアセンブラはいまいち理解しにくいためC言語でカスタムしようと奮闘中です。
> 今回私がバスケをやっており、そのための大型タイマーを作成して現在使用していますが、今度 24秒と14秒を切り替えしながらできる
> ものを作りたいのですがいかんせん初心者でよくわかりません。
>
> 今回の参考先のHPのプログラムをいじって作成しようと思うのですがオリジナルを作成して、動かしてみたのですがうまく動きません
> メールもしたのですが、古すぎて見ていないのか面倒なのかで返事がありませんのでどうかお助け下さい。
>
>
> キッチンタイマ参考HP
> http://www.asahi-net.or.jp/~rn8t-nkmr/family/pic/kt/index.html
>
> 24秒と14秒切り替えタイマーの参考HP
> http://physics.cocolog-nifty.com/weblog/2012/06/led-bffe.html

- 関連一覧ツリー (▼ をクリックするとツリーを一括表示します)


- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
おなまえ
Eメール
タイトル
メッセージ
参照先
画像UP
暗証キー (英数字で8文字以内)
投稿キー (右画像の数字を入力) 投稿キー


- 投稿記事修正/削除フォーム -
処理 No 暗証キー

- WebForum -