高级会员
- 积分
- 706
- 威望
- 357
- 贡献
- 161
- 兑换币
- 224
- 注册时间
- 2013-6-8
- 在线时间
- 94 小时
|
1贡献
我的摄像头是7620,用的是火哥的库,直接调用的,采集80行,每隔4行采集一次,但是我设定采集列数150的时候只能采集到一边的图像,后来我改成360了,才能完整采集
但是貌似别人采集100多行就可以了啊,这个怎么解决啊,附上部分程序
DMA_CH4_Handler(void) //仔细去看时序
{
DMA_IRQ_CLEAN(DMA_CH4); //清除通道传输中断标志位 (这样才能再次进入中断)
DMA_DIS(DMA_CH4); //采集完H个数据后进入这个DMA中断,停止DMA传输。行中断中打开DMA传输
if(V_Cnt==320)
Is_SendPhoto = 0;
} //这里难道是每一行才触发dmA中断
void PORTB_IRQHandler()
{
if((PORTB_ISFR & (1<<22))) //这个你要看懂,为什么是这样写的,你要明白 //PTA29触发中断,行中断
{
PORTB_ISFR |= (1<<22); //写1清中断标志位
if((V_Cnt++)%4==0)
DMA_EN(DMA_CH4); //因为这里行中断已经触发了,所以这里必须要重新打开 //使能通道CHn 硬件请求
} //可以在这里判断需要的数据是否已经采集完,可以设置一个标志位
}
//场中断处理函数
void PORTA_IRQHandler()
{
if(PORTA_ISFR & (1<<14)) //还有这一步到底代表着什么你要明白 //PTB0触发中断,场中断
{
PORTA_ISFR |= (1<<14); //写1清中断标志位
DMA_PORTx2BUFF_Init (DMA_CH4, (void *)&PTC_BYTE0_IN, Pix_Data, PTB23, DMA_BYTE1, H, DMA_rising_keepon); //但是为什么是采集到每一场才开始保存到数组呢?我觉得采集到一个像素点就应该保存啊
//DMA通道4初始化,PTC0上升沿触发DMA传输,源地址为PTD_BYTE0_IN,目的地址为:Pix_Data ,每次传输1Byte,传输H次后停止传输,目的地址保持不变,关闭通道CHn 硬件请求
enable_irq(88); //使能PORTA中断,即开启行中断,PORTA的ISR中断号为87
V_Cnt=0;
Is_SendPhoto = 0; //发送图像标志
}
}
求解决啊,郁闷死了
|
附件: 您需要 登录 才可以下载或查看,没有帐号?注册
|