中级会员
- 积分
- 376
- 威望
- 233
- 贡献
- 87
- 兑换币
- 0
- 注册时间
- 2012-4-3
- 在线时间
- 28 小时
- 毕业学校
- 襄樊学院
|
9#
楼主 |
发表于 2012-5-12 21:00:30
|
只看该作者
尘666 发表于 2012-5-12 15:43
我之前也遇到过,不过我的是模拟coms+二值化的,可能是时序没搞好,再理一理你采集的时序看看,至于不在正中 ...
void porta_isr(void) //V port Isr
{
PORTA_PCR27|=PORT_PCR_ISF_MASK; //clear Vport I flag
disable_irq (87); //when run in line get , has bad to disable it interrupt
delayus(5);
DMA0_Init();
row=0; //now ,we get first line, but must enable HREEF interrupt
imagerow_flag=0;
enable_irq (88); // Enable HREF data interrupt
}
void portb_isr(void) /*HREF interrupt Isr,B10,rising edge triger */
{
PORTB_PCR23|=PORT_PCR_ISF_MASK;//clear Hport I flag
row++; //row count
if(row>=240) //wating for next loop
{
disable_irq(88);
enable_irq(87);
image_ok=1;//采集完毕状态标识
}
if(row==data_table[imagerow_flag]) //wether current line should to collect
{
R_row=row;
DMA_ERQ|=DMA_ERQ_ERQ0_MASK; //enable DMA link to pclk port
}
else switch(row - R_row)
{
case 2:
{
// Mid_Black();
imagerow_flag++;
break;
}
}
}
这个上面是我的行和场中断,根据时序来看好久都没有问题呀。。。
|
|