締切済み

PIC16F18857 Timero割り込み

  • 困ってます
  • 質問No.9618382
  • 閲覧数161
  • ありがとう数0
  • 気になる数1
  • 回答数2
  • コメント数0

お礼率 47% (55/117)

PIC16F18857 Timer0の割り込みが掛からず困っています。
マニュアルに書かれている項目の設定はしているつもりですが
何かが抜けているように思います。
ご教授下さい。

回答 (全2件)

  • 回答No.2

ベストアンサー率 42% (414/971)

肝心の、TMR0設定、割り込み処理が未記載です

_CSWEN_OFF ; The NOSC and NDIV bits cannot be changed by user software
BANKSELOSCCON1
MOVLWB'01100101'; <NOSC><NDIV>Clock 1Mhz
MOVWFOSCCON1
BANKSELOSCCON2
MOVLWB'01100101'; <COSC><CDIV>Clock READ ONLY
設定が矛盾しています

参考 TMR0_BLINK RA2
processor 16F18857
#include "P16F18857.INC"

__CONFIG _CONFIG1 , _FEXTOSC_OFF & _RSTOSC_HFINT32 & _CLKOUTEN_ON & _CSWEN_ON & _FCMEN_ON
__CONFIG _CONFIG2 , _MCLRE_ON & _PWRTE_OFF & _LPBOREN_OFF & _BOREN_ON & _BORV_LO & _ZCD_OFF & _PPS1WAY_OFF & _STVREN_ON & _DEBUG_OFF
__CONFIG _CONFIG3 , _WDTCPS_WDTCPS_31 & _WDTE_OFF & _WDTCWS_WDTCWS_7 & _WDTCCS_SC
__CONFIG _CONFIG4 , _WRT_OFF & _SCANE_not_available & _LVP_OFF
__CONFIG _CONFIG5 , _CP_OFF & _CPD_OFF

ORG0
GOTOMAIN

ORG4
BANKSELPIE0
BTFSSPIE0,TMR0IE
BRAINT_R
BANKSELPIR0
BTFSSPIR0,TMR0IF
BRAINT_R
BCFPIR0,TMR0IF
BANKSELLATA
MOVLW0x04; RA2 BLINK
XORWFLATA,F

INT_R

RETFIE

MAIN

BANKSELOSCCON1
MOVLW0x02; HFINT32 , 32MHz / 4 = 8MHz (FOSC)
IORWFOSCCON1,F

BANKSELANSELA; RA2 OUTPUT
BCFANSELA,ANSA2
BANKSELTRISA
BCFTRISA,TRISA2

BANKSELT0CON1
MOVLW0x4C; FOSC/4 , 1:4096
MOVWFT0CON1; 2MHz / 4096 / 256 = 1.9Hz
BSFT0CON0,T0EN; TMR0 START
BANKSELPIE0
BSFPIE0,TMR0IE; Enables the TMR0 interrupt

BSFINTCON,GIE; Enables all active interrupts

BRA$; STOP

END
  • 回答No.1

ベストアンサー率 42% (414/971)

具体的な環境、プログラムの提示がないと 答えようがありません。
補足コメント
tomcat1032

お礼率 47% (55/117)

以下のファイルです。
;*****************************************************************
; Filename: Shanp100*
; Date: 2019.5.21*
; File Version: 0.9*
; Author: Hayashi Masahiro*
; Description:*
;*
;****************************************************************
;****************************************************************
;*
;Revision History:*
;*
;****************************************************************
;****************************************************************
;MAIN PROGRAM
;****************************************************************
LISTP=PIC16F18857

#INCLUDE"p16f18857.inc"


; CONFIG1
; __config 0x17EC
__CONFIG _CONFIG1, _FEXTOSC_OFF & _RSTOSC_HFINT1 & _CLKOUTEN_OFF & _CSWEN_OFF & _FCMEN_OFF
; CONFIG2
; __config 0x373F
__CONFIG _CONFIG2, _MCLRE_ON & _PWRTE_OFF & _LPBOREN_OFF & _BOREN_OFF & _BORV_LO & _ZCD_OFF & _PPS1WAY_OFF & _STVREN_ON
; CONFIG3
; __config 0x3AA
__CONFIG _CONFIG3, _WDTCPS_WDTCPS_10 & _WDTE_SWDTEN & _WDTCWS_WDTCWS_3 & _WDTCCS_LFINTOSC
; CONFIG4
; __config 0x2FFF
__CONFIG _CONFIG4, _WRT_OFF & _SCANE_not_available & _LVP_ON
; CONFIG5
; __config 0x3FFF
__CONFIG _CONFIG5, _CP_OFF & _CPD_OFF



;
;
;*******************************************************************************
;EQU
;*******************************************************************************
;
;==========================================================================
;
; Register Definitions
;
;==========================================================================
;
;------User setting -----------------------------------------------------
;
USER_FLGEQU0030H
INT_FLGEQU0031H
HOLD_FLGEQU0032H
MOVE_FLGEQU0033H
MANU_FLGEQU0034H
MANUA_FLGEQU0035H
MANUB_FLGEQU0036H
MANUC_FLGEQU0037H

Dummy_FLGEQU0038H

INT_TMPEQU0039H

PORTAAEQU003AH
PORTA1EQU003BH
PORTA2EQU003CH
PORTA3EQU003DH

PORTBAEQU003EH
PORTB1EQU003FH
PORTB2EQU0040H
PORTB3EQU0041H

PORTCAEQU0042H
PORTC1EQU0043H
PORTC2EQU0044H
PORTC3EQU0045H


TIM_BUFFEQU004AH; unused
TIM_BUF1EQU004BH
TIM_BUF2EQU004CH
TIM_BUF3EQU004DH
TIM_BUF4EQU004EH
TIM_BUF5EQU004FH
TIM_BUF6EQU0050H
TIM_BUF7EQU0051H
TIM_BUF8EQU0052H
TIM_BUF9EQU0053H
TIM_BUFAEQU0054H
TIM_BUFBEQU0055H
TIM_BUFCEQU0056H; unused



Timer0_ONEQUB'00100000'
Timer0_OFFEQUB'00000000'

GIE_ONEQUB'11000000'
GIE_OFFEQUB'00000000'


SEC_2STEPEQU5 ; 400msec Count
SEC_1EQU5 ; 1sec Count
SEC_30EQU5*30; 30sec Count



;
;
;------------------------------------------------------------------------
;
;Program Start
;
;------------------------------------------------------------------------

ORG00H
GOTOINITAL; Reset Vector

ORG04H
GOTOINTERVAL; Interrupt Vector

ORG08H

MAIN_PROG CODE; let linker place main program
INITAL

CLRW

MOVLWH'00'
MOVWFBSR; Bank0 Select

CLRFUSER_FLG
CLRFINT_FLG
CLRFHOLD_FLG
CLRFMOVE_FLG

CLRFMANU_FLG
CLRFMANUA_FLG
CLRFMANUB_FLG
CLRFMANUC_FLG
CLRFINT_TMP

CLRFPORTAA
CLRFPORTA1
CLRFPORTA2
CLRFPORTA3
CLRFPORTBA
CLRFPORTB1
CLRFPORTB2
CLRFPORTB3
CLRFPORTCA
CLRFPORTC1
CLRFPORTC2
CLRFPORTC3

CLRFTIM_BUFF
CLRFTIM_BUF1
CLRFTIM_BUF2
CLRFTIM_BUF3
CLRFTIM_BUF4
CLRFTIM_BUF5
CLRFTIM_BUF6
CLRFTIM_BUF7
CLRFTIM_BUF8
CLRFTIM_BUF9
CLRFTIM_BUFA
CLRFTIM_BUFB
CLRFTIM_BUFC

BANKSELTRISA
MOVLWB'00111011' ; OOIIXOII
MOVWFTRISA ; PORTA
BANKSELTRISB
MOVLWB'11111111' ; XXIIXXII
MOVWFTRISB ; PORTB
BANKSELTRISC
MOVLWB'11111100' ; IIIIIXOO
MOVWFTRISC ; PORTC

BANKSELOSCCON1
MOVLWB'01100101'; <NOSC><NDIV>Clock 1Mhz
MOVWFOSCCON1
BANKSELOSCCON2
MOVLWB'01100101'; <COSC><CDIV>Clock
投稿日時 - 2019-05-21 13:37:41
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ