; File name: interrupt timer 1 ; Curiosity ボードにPIC16F18346を挿している。 ; ; Notes: 1MHz内部クロック ; LED RC5 ; Language: PIC-AS (v2.32) ; MPLABX (v5.50) ; Target: PIC16F18346 ; Created on 2021-11-6 ; ; MPLAB X 設定の追加: ; project properties ダイアログ pic-as Linker の ; Custom linker options 欄に以下の2文を追加する ; -pPor_Vec=0h -pIsr_Vec=4h PROCESSOR 16F18346 #include <xc.inc> ; PIC16F18346 Configuration Bit config FEXTOSC = OFF, RSTOSC = HFINT1, CLKOUTEN = OFF config CSWEN = ON , FCMEN = ON , MCLRE = ON config PWRTE = OFF , WDTE = OFF , LPBOREN = OFF config BOREN = OFF , BORV = LOW , PPS1WAY = OFF config STVREN = ON , DEBUG = OFF , WRT = OFF config LVP = ON , CP = OFF , CPD = OFF ; ; 電源ONリセット 開始番地 ---------------- PSECT Por_Vec,class=CODE,delta=2 Start: GOTO Main ; ; 割り込み処理 開始番地 --------------- PSECT Isr_Vec,class=CODE,delta=2 IsrVec: BANKSEL PIR1 BTFSS TMR1IF ; Timer1からの割込みを確認 BRA RetInt ; Timer1からでないなら戻る BCF TMR1IF ; 割込みフラッグをクリア MOVLW 0x20 ; LED4(RC5)を反転 ------ MOVLB 0x2 ; LED(RC5)のビットをXOR ; XORWF LATC, F ; LED ON/OFF 反転 XORWF BANKMASK(LATC), F ; LED ON/OFF 反転 RetInt: RETFIE ; ; メイン プログラム ------------------ Main: BANKSEL TRISC BCF TRISC5 ; RC5を出力に設定 MOVLW 0x1 ; T1CON = 0b00000001; BANKSEL T1CON MOVWF T1CON ; Fosc/4 Sync PreS 1/1 CLRF T1GCON ; ゲート機能は使用せず BCF TMR1IF ; 割込みフラッグをクリア BANKSEL PIE1 BSF TMR1IE ; TMR1IE 割込みを使用許可 BSF PEIE ; PEIE 周辺機能割込みの使用許可 BSF GIE ; GIE 全割込みの使用許可 Loop: BRA Loop ; 割込みを待つ END Start