高级会员
- 积分
- 580
- 威望
- 296
- 贡献
- 134
- 兑换币
- 83
- 注册时间
- 2012-9-22
- 在线时间
- 75 小时
- 毕业学校
- 常州大学
|
4#
楼主 |
发表于 2013-1-24 19:47:01
|
只看该作者
============================主程序===========================
void main()
{
DisableInterrupts; //关总中断
uart_init(UART1,115200); //初始化串口1(c4)
// Sys_init1(); //系统用到的函数初始化
IO_Init(); //初始化用到的端口
//arrinit(); //存放处理后的图像数组初始化
EnableInterrupts; //开总中断
while(1)
{
if(flag==1) //图像采集完成标志
{
disable_irq(90);
//Image_binaryzation(); //图像二值化
Send(); //发送数据
// PORTD_ISFR |=(1<<9); //清行行场中断标志位
// PORTD_ISFR |=(1<<8);
enable_irq(90);
}
}
}
=========================中断程序=============================
void PORTD_IRQHandler()
{
u8 n=0,m=0;
////////////////////////////////////////////////////////////////////场中断
n=9;
if(PORTD_ISFR & (1<<n))
{
PORTD_ISFR |=(1<<n); //
hang_count=0; //行计数清零
SampleFlag=1; //场中断标志位
//Pflag = ~Pflag;
row=0; //准备下一场数据
PORTD_ISFR |=(1<<8); //行中断清零
}
////////////////////////////////////////////////////////////////////行中断
n=8;
if(PORTD_ISFR & (1<<n))
{
hang_count++;
PORTD_ISFR |=(1<<n);//清行中断标志位
//if(Pflag == 0x01)
//{
if ( SampleFlag==0||hang_count<20||hang_count>162) return;
if(hang_count>=20&&hang_count<128) Href_count=4; //每隔4行采一行
if(hang_count>=128&&hang_count<162) Href_count=6; //每隔6行采一行
if(hang_count%Href_count==0)
{
//采集完成
if(row>=32)
{
SampleFlag = 0;
flag = 1;
hang_count = 0;
return;
}
for( m = 0; m < 65; m++ )
{
asm("nop");asm("nop");asm("nop"); //_asm(nop)是暂停一个系统时钟周期
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
Buffer[row][m]= GPIO_GET_8bit(PORTD,0);
}
row++;
}
//}
}
} |
|