音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

CCP1輸入捕捉中斷問題

作者:hpuyuxuan 欄目:單片機
CCP1輸入捕捉中斷問題
CCP1輸入捕捉中斷問題又要麻煩大蝦了,我自己寫的CCP1 捕捉輸入中斷,查了N多資料才寫出來的

費了好大勁,程序?qū)懲炅耍瑓s不能正常中斷,編譯能過,大蝦們多指教。

#include<pic.h>
#include<pic16f62xa.h>
__CONFIG(WDTDIS&PWRTEN&BOREN&UNPROTECT&LVPDIS);
#define PORTBIT(add,bit) ((unsigned)(&add)*8+(bit))
static  bit  PORT_0 @  PORTBIT(PORTB,0);   //定義PORTB 0位
static  bit  PORT_1 @  PORTBIT(PORTB,1);   //定義PORTB 1位
static  bit  PORT_2 @  PORTBIT(PORTB,2);   //定義PORTB 2位
static  bit  PORT_3 @  PORTBIT(PORTB,3);   //定義PORTB 3位
static  bit  PORT_4 @  PORTBIT(PORTB,4);   //定義PORTB 4位
static  bit  PORT_5 @  PORTBIT(PORTB,5);   //定義PORTB 5位
static  bit  PORT_6 @  PORTBIT(PORTB,6);   //定義PORTB 6位
static  bit  PORT_7 @  PORTBIT(PORTB,7);   //定義PORTB 7位
void ccpint();                  //ccp中斷初始化程序
void delay (int x)  ;    //延時程序


main()
{
delay(10);
ccpint();               //ccp中斷初始化程序
ei();                   //開總中斷
while(1)
{
  ;
}
}                        //等待中斷


void ccpint()            //ccp中斷初始化程序
{
CCP1CON=0x04;            //設(shè)置CCP捕捉每個脈沖的下降沿
TRISB3=1;                //RB3為輸入方式
PORT_3=1;                //RB3先送高電平

T1OSCEN=0;               //關(guān)閉T1振蕩器
TMR1H=0;                 //定時器清零
TMR1L=0;
TMR1ON=1;                //使能TMR1
TMR1CS=0;                //TMR工作在定時器模式

CCP1IF=0;                //清除CCP1的中斷標(biāo)志,以免中斷一打開就進入中斷
PEIE=1;                  //外圍中斷允許
CCP1IE=1;                //CCP中斷允許
TRISB3=1;                //PORTB3設(shè)置為輸入方式
}


void interrupt int_ccp()           //ccp中斷服務(wù)程序
{
if(CCP1IF==1)
{
  CCP1IF=0;                     //清除CCP中斷標(biāo)志位
  TRISB1=TRISB2=0;
  PORT_1=PORT_2=0;                 //電機停止轉(zhuǎn)動。
  TRISA=0;
  RA0=1;                            //RA0輸出高電平,燈亮,證明進入中斷。
}
}


void delay (int x)     //延時程序。
{
int y;
while(x--)
{
  for(y=1000;y>0;y--){;}
}
}


2樓: >>參與討論
hpuyuxuan
怎么沒有人理我呢?
大蝦們,幫小弟看看程序好不好??
謝謝,

3樓: >>參與討論
hpuyuxuan
難道沒有人看我的程序嗎?
高手在哪里??
高手在哪里??高手在哪里??高手在哪里??高手在哪里??
高手在哪里??

難道沒有人看我的程序嗎?

4樓: >>參與討論
puppyh
幫你頂一下
對于初學(xué)者我是大力相助的,只可惜我已經(jīng)8年不要MICROCHIP的單片機,幫不上忙。只能幫你往上頂!

5樓: >>參與討論
hpuyuxuan
謝謝幫頂!
高手都是由初學(xué)者轉(zhuǎn)變來的 。
希望高手們也不吝賜教。
幫幫初學(xué)者,我代表初學(xué)者向大蝦們表示敬意!!

6樓: >>參與討論
xieyuanbin
在每個數(shù)據(jù)手冊的每個功能中,都有相關(guān)寄存器集合
可看看你還有那些沒設(shè)置好.
一般要設(shè)置的是:INTCON:GIE,PEIE;PIE1或PIE2,CCPxCON等.

7樓: >>參與討論
蘭天白云
ei();    在哪里?
 
8樓: >>參與討論
hpuyuxuan
開總中斷已經(jīng)有了
總中斷已經(jīng)開了!!
謝謝樓上的大蝦!
真是郁悶?zāi)牵?br>問題到底在哪里???

9樓: >>參與討論
hzwei
先用軟件模擬調(diào)試,看能不能進入中斷?
TRISB3=1;                //RB3為輸入方式
PORT_3=1;                //RB3先送高電平

既然RB3設(shè)置為輸入,為何又能:RB3先送高電平?

10樓: >>參與討論
xiyuan188
ccp1捕捉中斷問題
在ccp1初始化程序中應(yīng)該清除ccp1,tmr1中斷允許位和中斷標(biāo)志位.
啟動tmr1時最好不要在初始化程序中,應(yīng)該在主程序中啟動定時器.


參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
PIC16C57編譯問題。
求購PICMATE2002仿真器..!
好多超級經(jīng)典的寶貴資料共享,要得請進
PICC8.05編譯器的變量聲明問題
正弦波驅(qū)動信號
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號