のトラブルにPICの割り込み

K

khansaab21

Guest
デバイス:PIC16F628A
コンパイラ:MikroC
言語:C

私は、コントローラの2つの割り込みサービスを使用している。割り込みが受信シリアルいるの外部割込みと。

しかし、問題は、コードはハードウェア上で動作していない。私は、コード私の推測が間違って何かがそこにある。スニペットは次のとおりですコード。

無効に割り込み()

(もしINTCON.INTF = 1)/ /場合は、外部割込み

TRISB.F0は= 1; / /遅延reqiuredでの状態を拾うために入力を作ることを

start_delay;の444米国遅延/ /
start1 = IPアドレス;
bit_delay;
start2 = IPアドレス;

bit_delay / /遅延我々の1778
トグル= IPアドレス;

0(一=;私は<= 4;私 )/ /アドレスビット

bit_delay;
addrはは= IPアドレス;


0(一=;私は<= 5;私 )/ /コマンドビット

bit_delay;
コムは = IPアドレス;

test_instは(); / /命令を処理する関数を呼び出す
)/ /割り込みフラグ命令と呼ばれるクリアさです。

他の場合(PIR1.RCIF = 1)/ /場合でPCを

はx = Usart_Read();受信データからPC / /

スイッチ(x)は

場合':(転送は();破る;)
場合に'B':(後方();破る;)
場合は'C':(右();破る;)
場合は'D':()左(;破る;)
ケース'E'の:(ストップ();破る;)

PIR1.RCIFは= 0; / /クリアUSARTビットを受信割り込みフラグ



/ /プログラムのメインスタートの

無効のmain()

TRISA.F0は= 0; / /出力としてポートAを作る
TRISA.F1 = 0;
TRISA.F2 = 0;
TRISA.F3 = 0;

TRISB.F4 = 0; / /作成PORTB.F4指標として出力(エラー)
エラー= 0;

Usart_Initは(2400); / / 2400ボーレートをでシリアルの初期化

/ /割り込みを有効にする

INTCON.GIEは= 1; / /割り込みを有効にするグローバル
INTCON.PEIEは= 1; / /割り込みをEnalbling周辺

/ /割り込みを有効にするシリアル

PIR1.RCIFは= 0; / /クリアUSARTビットを受信割り込みフラグ
PIE1.RCIEは= 1; / /有効にするUSARTはinteerupt受け取る

/ /有効にする外部割込み

INTCON.INTF = 0; / /清算外部割込みフラグ
INTCON.INTEは= 1; / /有効にする外部割込み
OPTION_REG.INTEDG = 1; / /外部の立ち上がりエッジで割り込み

)中(1 / /ここにとどまって中断されるまで


 
こんにちはkhansaab21、

してください今すぐ取得教えて私たちをあなたが出力される期待していることは何。どのように頻繁に発生している、外部割り込み?私が発生し、場合考える時間割り込みいくつかのサービスルーチンが外部のかかる割り込み割り込みサービスしないようにすることの期間、この。

 
返信は非常に多くのmatfobをいただき、ありがとうございます。しかし、良いニュースは問題ですされている問題は、撮影しなく。ISRのフラグをの割り込みチェックがトラブルをgivigされ、私のことを同じことがわかったかの方法を、コード片の他のです。

 
場合)(INTCON.INTF = 1??これはINTCON.INTFに1を割り当てます。

他の場合(PIR1.RCIF = 1)????これはPIR1.RCIFに1を割り当てます。

C言語で、に平等テストが場合(INTCON.INTF == 1)

 

Welcome to EDABoard.com

Sponsor

Back
Top