智能车制作
标题:
用kl26+ov7620采集图像采成这样~求助
[打印本页]
作者:
lurenlym
时间:
2015-12-2 22:13
标题:
用kl26+ov7620采集图像采成这样~求助
源程序:
#include "common.h"
#include "include.h"
#define hs 80
#define ls 60
#define size hs*ls/8
uint8 imagbuff[size];
uint16 VSY_Flog=0;
uint16 Line_Cont=0;
//函数声明
void vcan_sendimg(uint8 *imgaddr, uint32 imgsize);
void img_extract(uint8 *dst, uint8 *src, uint32 srclen);
void PORTA_IRQHandler();
void PORTC_IRQHandler();
void DMA0_IRQHandler();
void portinit();
void main()
{
DisableInterrupts;
portinit();
port_init(PTA2, ALT1 | IRQ_FALLING | PULLDOWN );
enable_irq(PORTA_IRQn);
port_init(PTC0, ALT1 | IRQ_RISING | PULLDOWN );
port_init(PTD1, ALT1 | DMA_RISING | PULLDOWN );
disable_irq(PORTC_PORTD_IRQn);
uart_init(UART0,115200);
set_vector_handler(PORTA_VECTORn,PORTA_IRQHandler);
set_vector_handler(PORTC_PORTD_VECTORn,PORTC_IRQHandler);
set_vector_handler(DMA0_VECTORn,DMA0_IRQHandler);
EnableInterrupts;
while(1)
{
vcan_sendimg(imagbuff,sizeof(imagbuff));
}
}
void vcan_sendimg(uint8 *imgaddr, uint32 imgsize)
{
#define CMD_IMG 1
uint8 cmdf[2] = {CMD_IMG, ~CMD_IMG}; //山外上位机 使用的命令
uint8 cmdr[2] = {~CMD_IMG, CMD_IMG}; //山外上位机 使用的命令
uart_putbuff(VCAN_PORT, cmdf, sizeof(cmdf)); //先发送命令
uart_putbuff(VCAN_PORT,imgaddr, imgsize); //再发送图像
uart_putbuff(VCAN_PORT, cmdr, sizeof(cmdr)); //先发送命令
}
void PORTA_IRQHandler()
{
if(PORTA_ISFR & (1 << 2))
{
PORTA_ISFR |= (1 << 2);
led (LED0,LED_ON);
dma_portx2buff_init(DMA_CH0,(void *)&PTE_B2_IN,imagbuff,PTD1, DMA_BYTE1,size);
DMA_DIS(DMA_CH0);
VSY_Flog=1;
Line_Cont=0;
enable_irq(PORTC_PORTD_IRQn);
}
}
void PORTC_IRQHandler()
{
if(PORTC_ISFR & (1 << 0))
{
PORTC_ISFR |= (1 <<0);
if(VSY_Flog==0)
{
return;
}
DMA_IRQ_EN(DMA_CH0);
DMA_EN(DMA_CH0);
Line_Cont++;
if(Line_Cont==hs)
{
Line_Cont=0;
DMA_DIS(DMA_CH0);
}
led(LED1,LED_ON);
}
}
void DMA0_IRQHandler()
{
DMA_IRQ_CLEAN(DMA_CH0); //清除通道传输中断标志位 (这样才能再次进入中断)
DMA_IRQ_DIS(DMA_CH0); //禁止DMA 等待下一次行中断来临开启DMA
}
void portinit()
{
gpio_init(PTE16,GPI,0);
gpio_init(PTE17,GPI,0);
gpio_init(PTE18,GPI,0);
gpio_init(PTE19,GPI,0);
gpio_init(PTE20,GPI,0);
gpio_init(PTE21,GPI,0);
gpio_init(PTE22,GPI,0);
gpio_init(PTE23,GPI,0);
led_init (LED0);
led_init (LED1);
}
作者:
lakers天眼
时间:
2015-12-2 22:54
你while里面都没获取图像
作者:
lurenlym
时间:
2015-12-2 23:33
我开启了中断dma不就可以采集了吗?
作者:
lurenlym
时间:
2015-12-3 09:06
lakers天眼 发表于 2015-12-2 22:54
你while里面都没获取图像
我开启了中断dma不就可以采集了吗?
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2