質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%

Q&A

解決済

1回答

754閲覧

Timer1の入力源をコンパレータで行う方法

sin_a

総合スコア1

0グッド

0クリップ

投稿2021/11/26 11:25

前提・実現したいこと

12F1288と16F1705でいろいろテストしていますが、うまく動かすことができません。
コンパレータをTimer1のクロック源にしたいのですが可能ですか?
マニュアルのどこかでクロック源にできる記載を見た気がしますが?
ゲートのみですか?
ブロック図を見てもコンパレータはゲート入力のみのような気がします。
これで、Timer1のカウントできますか?

行いたいことは、コンパレータのOUTでカウントをしたいのです。
T1CKIに外部で入力する方法しかできないのですか?

誰か、ご存じの方教えていただけると助かります。

このサイト(web質問)が初めてのためこんな質問で大丈夫ですか?
サンプルプログラムとか長くなるため乗せていませんが?必要ですか?

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

PIC16F1705 は、PPS機能があるので CxOUTピン と T1CKIピン を 同一ピンに設定することにより
入力は可能だと思われます

PIC12F1822 は、C1OUT と T0CKI が同じピンなのでTMR0ならば入力は可能です
C1OUT → T1CKI はピン同士を接続する必要があります

追記
PIC16F1705 テスト
RA5:C1OUT DIGITAL OUTPUT → T1CKI
FVR 2V → C1IN+
RC1 OUTPUT → C1IN1-
にて試験しました
ピン設定

PIC16F1705 XC8v2 MCC TEST PROGRAM

__delay_ms(3000); printf(" pic16f1705 mcc \r\n"); TMR1 = 0; printf(" TMR1 = %04X \r\n", TMR1 ); LATC1 = 1; LATC1 = 0; printf(" TMR1 = %04X \r\n", TMR1 ); LATC1 = 1; LATC1 = 0; printf(" TMR1 = %04X \r\n", TMR1 ); while (1) { IO_RA2_Toggle(); __delay_ms(500); }

EUSART出力

pic16f1705 mcc

TMR1 = 0000
TMR1 = 0001
TMR1 = 0002

「To digital penpherals」T1CKI を使う場合 ANSEL 設定が必要です
I/O PORT

投稿2021/11/26 14:18

編集2021/11/27 04:32
koujikuu

総合スコア401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sin_a

2021/11/27 01:27

PPS機能は使っていますが、気が付きませんでした。 PPSで選択すると、他のpinが無効になるのかと思っていました。 ありがとうございます。 早急に、テストしてみます。 マニュアルのPPS部分よく理解します。
sin_a

2021/11/27 02:28

16F1705でテストしましたが、RA5PPS = 0b00010110;で設定すると コンパレート機能が失われるみたいです。OUTC!の反応がない! Timer1のカウントもない RA2とRA4では、動作確認OK 出力と入力の双方向ピンの設定が必要ですか? 入力設定は、これで合っていますか? RA5PPS = 0b00010110; これを行うと、マイコン動作していなような? I2C LCDが非表示になる!
sin_a

2021/11/27 06:05

動作でしました! 感動です。 かなり長い間悩んでいました。 ここに質問をしたことで解決しました。 先ほどの設定は、T1CKI(ra5)を入力にしていました。 TRISA5=0;で解決です。 T1CKIなので入力と思い込んでいました。 適切な回答に感謝します。ありがとうございました。 MPLABXでもprintf()が使えるのですね?知りませんでした。以前より使用できましたか? いろんな意味で勉強不足です。趣味の世界です。頑張って勉強します。
koujikuu

2021/11/27 07:15

printf は、putch 関数を定義することで使えるようになります MPLAB®CodeConfigurator(MCC)設定例 void EUSART_Write(uint8_t txData) { while(0 == PIR1bits.TXIF) { } TX1REG = txData; // Write the data byte to the USART. } void putch(char txData) { EUSART_Write(txData); }
sin_a

2021/11/30 08:17

お返事が遅れて申し訳ありません。 コンパレータ回路ではまってました。 何が悪いのか?安定して出力が出ません。 外部のコンパレータはうまくいっているのに! 質問の答えは、出ましたよ! printfは、助かります。よく調べて導入したいと思っています。 説明ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問