
32.768KHzの水晶をOSI/OSO端子につなげてタイマー1のT1CONで外部クロック入力を設定しましたがデバッグ用にRA0にLEDを付け点滅させるようにしましたが、
何故か水晶を外してコンデンサがついてるだけの状態にしても約0.5Hzで動きます。
どこがおかしいのでしょうか。
よろしくお願いします。
以下抜粋
void interrupt InterTimer( void ){
if (TMR1IF == 1) { // タイマー1の割込み発生か?
TMR1H = (T1INIT >> 8) ; // タイマー1の再初期値設定
TMR1L = (T1INIT & 0x00ff) ;
TMR1IF = 0 ; // タイマー1の割込フラグをリセット
second++;
if(LEDflg == 0){
LEDflg = 1;
}else{
LEDflg = 0;
}
if (second >= 60) {
Minits ++;
second = 0;
if (Minits >= 60) {
Hours ++;
Minits = 0;
if (Hours >= 24) {
Hours = 0;
}
}
}
}
void main(){
OSCCON = 0b01110010 ; // 内部クロックは8MHzとする
ANSELA = 0b00000000 ; // AN0-AN4は使用しない全てデジタルI/Oとする
ANSELB = 0b00000000 ; // AN8-AN13は使用しない全てデジタルI/Oとする
TRISA = 0b00000000 ; // ピン(RA)は全て出力に割当てる(0:出力 1:入力)
TRISB = 0b01110000 ; // ピン(RB)は全て出力に割当てる
TRISC = 0b00000000 ; // ピン(RC)は全て出力に割当てる
PORTA = 0b00000000 ; // RA出力ピンの初期化(全てLOWにする)
PORTB = 0b00000000 ; // RB出力ピンの初期化(全てLOWにする)
PORTC = 0b00000000 ; // RC出力ピンの初期化(全てLOWにする)
T1CON = 0b10011101; // 外部クロック(32.768KHz)でTIMER1をカウントする、プリスケーラカウント 1:2
TMR1H = (T1INIT >> 8); // タイマー1の初期化
TMR1L = (T1INIT & 0x00ff);
TMR1IF = 0; // タイマー1割込フラグを0にする
TMR1IE = 1; // タイマー1割り込みを許可する
while(1) {
if(LEDflg == 0){
RA0 = 1;
}else{
RA0 = 0;
}
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ちょっと不確かなんですが・・・
16F1933は32.768KHzの水晶発振回路とは別に31KHzの内部発振回路を持っています。
32.768KHzの水晶発振回路を使っているつもりが31KHzの回路につながっていませんか?
この発振回路はマニュアルでは LFINTOSC とか 31kHz と書いてあります。これを追ってみてください。
はっきり確認していないのですが水晶発振回路が停止した時には自動的に31KHzの発振回路に切り替わるのかもしれません。
関係するレジスタがクロック発振関係だけでも OSCCON のほか、CONFIG1、同2 というレジスタが関係します。CONFIG1、2 はどちらも14ビットの特殊レジスタで、ソフトで設定するのではなくソースリストの最初あたりで宣言するようになっていると思います。確認してください。
マニュアルを見直したのですが関連が複雑なので最後までフォローしていません。
以上でご勘弁を。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
クリスタルレポートで印刷時に...
-
プログラムについての質問です...
-
CRC16計算について
-
Accessのテーブルからcsv出力す...
-
TV出力ポートをOFFにすれば良い...
-
トランジスタシンク出力について
-
CrystalReportの文字列の折返し...
-
真空管 300 B の前段について
-
PD充電器について
-
標準出力の上書き
-
coutで出力した文字を消去する...
-
C#でアクセス権限の取得方法が...
-
printfとputcharの違いは
-
スマホ充電器購入にあたり
-
詳しくないので、どなたかお教...
-
Windows Formアプリからコンソ...
-
FLEXSOLARパネルからAmazonで買...
-
vba 環境依存文字によるDocuwor...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
Accessのテーブルからcsv出力す...
-
FLEXSOLARパネルからAmazonで買...
-
真空管 300 B の前段について
-
cout と cerrの違い
-
printfとputcharの違いは
-
スマホ充電器購入にあたり
-
PD充電器について
-
TV出力ポートをOFFにすれば良い...
-
COBOLのMOVEで桁数が異なる場合
-
CrystalReportの文字列の折返し...
-
Windows Formアプリからコンソ...
-
C#でアクセス権限の取得方法が...
-
coutで出力した文字を消去する...
-
KEYENCEのシーケンスプログラム...
-
【UWSC】WEBページ中の特定文字...
-
CRC16計算について
-
4種類(A4縦、A4横、A3縦、A3横)のヘ...
おすすめ情報