高级会员
- 积分
- 950
- 威望
- 434
- 贡献
- 248
- 兑换币
- 269
- 注册时间
- 2013-1-20
- 在线时间
- 134 小时
- 毕业学校
- UESTC
|
请问一下,我使用用XS128单片机,Fbus=64MHZ,在场中断(偶场,下降沿)到来时打开行中断(上升沿),在第二个场中断(偶场,下降沿)到来时关闭行中断,行中断只记录中断次数,我的理解是行数应该为640行,就算有废数据也应该大于640行,可是每次采集出来的行数却是变化的,且小于640行,但是为481行较多。改写输出格式为320*240后行数变化规律还是与上面一样, 已经找了半天问题了不知道处在哪,各位大虾忙帮看看问题吧,附上部分程序。//*****J7为场中断 P3为行中断*****//
chang_num=0;
hang_num=0;
DDRJ_DDRJ7=0;
DDRP_DDRP3= 0;
PERP_PERP3 =1; // Pull device enabled
PPSP_PPSP3 =1; // Port H Polarity Select rasing edge
PERJ_PERJ7 =1; //Pull device enabled
PPSJ_PPSJ7 =0; // Port J Polarity Select falling edge
void getpic()
{
int i;
PIEJ_PIEJ7 =1; // PORTJ interrut enable,
while(chang_num!=2);
PIEJ_PIEJ7 =0; // PORTJ interrut disable,
}
void interrupt 56 PORTP_ISR(void) //行
{
hang_num++;
PIFP_PIFP3=1; //清除中断标志位
}
void interrupt 24 PORTJ_ISR(void)//场
{ if(FODD==0){
if(chang_num==0)PIEP_PIEP3 =1; // PORTH interrut enable,
else PIEP_PIEP3 =0; // PORTH interrut disable,
chang_num++;
}
PIFJ_PIFJ7=1; //清除中断标志位
}
|
|