智能车制作

标题: k60为什么进不了中断啊 [打印本页]

作者: sanshao12301    时间: 2013-1-24 19:16
标题: k60为什么进不了中断啊
如题,k60怎么进不了中断啊??原来可以的,但是今天调了一天就是进不了中断啊,但都碎了。。。哪位大神赐教啊

作者: mxj1005071012    时间: 2013-1-24 19:18
没有程序怎么知道呢
作者: 洋葱圈    时间: 2013-1-24 19:32
几个要点:
1、是否开中断
2、是否清标志位
3、是否在isr.h中重定义了中断向量
作者: sanshao12301    时间: 2013-1-24 19:47
============================主程序===========================
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++;
         }
      //}
  }
}
作者: sanshao12301    时间: 2013-1-24 19:47
这是我的程序中断部分和主程序部分,还望各位指教啊!!!
作者: 青龙00    时间: 2013-1-24 20:01
初始化的时候添加这个
exti_init(PORTD,9,rising_down);
exti_init(PORTD,8,rising_down);
要是没改中断向量的话,再在isr.h改下中断向量
作者: sanshao12301    时间: 2013-1-24 21:04
青龙00 发表于 2013-1-24 20:01
初始化的时候添加这个
exti_init(PORTD,9,rising_down);
exti_init(PORTD,8,rising_down);

isr.h里面中断向量怎么改啊???
能顺便留个qq吗??

作者: sanshao12301    时间: 2013-1-24 21:12
洋葱圈 发表于 2013-1-24 19:32
几个要点:
1、是否开中断
2、是否清标志位

这几个条件都是满足的啊





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2