智能车制作

标题: 急啊!求大虾帮帮忙,我的程序老是illegal_bp [打印本页]

作者: 573377313    时间: 2010-6-27 11:10
标题: 急啊!求大虾帮帮忙,我的程序老是illegal_bp
大虾帮忙看看,为什么我的7620摄像头采集程序运行不了,一直是illegal_bp!


#include <hidef.h>            /* common defines and macros */
#include <mc9s12xs128.h>      /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128b"
///////////////////////////////////////////////////////////////
//行同步中断输入捕捉1管脚.
//场同步中断输入捕捉0管脚     IRQ
//Yn分别对应PORTMn
///////////////////////////////////////////////////////////////
#define M 64
#define N 48
unsigned char buff[N][M];
static byte cnt_HREF=0x01;
unsigned char sx[]="01";
static int p=0x00;
char one_sample=0;
void init_CRG(void)
{
    REFDV=4;             //PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1) busclk=80M
    SYNR=1;
   
    while(!CRGFLG_LOCK);
    CLKSEL_PLLSEL=1;   
}
   
void init_interupt()    //输入终端初始化
{
            
    TIOS=0x00;          //行同步中断,外部输入捕捉0,1通道,初始化不开启
    TCTL4=0x09;         //通道0上升沿触发,通道1下降沿触发
    //TSCR2=0X01;         //分频2  (总线时间/2)
    TSCR1=0x80;         //允许定时器正常运行
    TIE_C1I = 1;
    TIE_C0I = 1;
    //TIE=0X00;           //初始化定时器关闭
    //TFLG1=0xff;
}
  
void init_port()        //端口初始化
{
    //DDRB=0XFF;
    //PORTB=0Xaa;
    DDRA=0X00;
    PUCR=0x03;          //A,B上拉电阻控制
}                       
/*-------串口初始化----------------------*/
void SciInit()
{
   SCI0BDL = 65;  //38400 (unsigned char)((16000000UL /* OSC freq */ / 2) / 19200 /* baud rate */ / 16 /*factor*/);
   SCI0CR1=0;     /*normal,no parity 禁止奇偶校验*/
   SCI0CR2=0X2C;       /*RIE=1,TE=1,RE=1*/
}
  
void init_sys()
{
    init_CRG();
    init_interupt();
    init_port();
    SciInit();
}
/*-------发射端程序-----单字节发送-----------------*/
void SciTx(unsigned char text)
{
    while (!(SCI0SR1 & 0x80));       //等待接收数据完毕         
    SCI0SR1_RDRF = 1;         
    SCI0DRL=sx[text];
}  
void Send_piex(void)
{
    byte i,j;
    for(i=1;i<N;i++)        
    {                     
        for(j=0;j<M;j++)
        {
            if(buff[j] < 0x01)
                SciTx(0);  
            else
              SciTx(1);
        }
    }
}  
void main(void)
{
    DisableInterrupts;
    init_sys();
    //TIE=0X02;           //开场中断
    EnableInterrupts;
   
    for(;;)
    {
        if(one_sample==1)
        {
            Send_piex();
            one_sample=0;
            TIE=0X02;
        }         
    }
}
/***************************行中断处理******************************************/     
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 8 Port0_interrupt(void)
{  
    int i;
    TFLG1_C0F=1;                  //清除中断标志寄存器
    p++;
    if(p==8)
    {
        p=0;
        TIE=0X00;                 //关行中断
        
        for(i=0;i<M;i++)
        {
            buff[cnt_HREF]=PORTA;
        }
        cnt_HREF++;
        if(cnt_HREF >= N)
          cnt_HREF=0x01;  
        one_sample=1;
    }
}   
/***************************场中断处理******************************************/                           
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 9 Port1_interrupt(void)
{
    TFLG1_C1F=1;                   //清除中断标志寄存器
    TIE=0x01;                     //开行中断    关场中断使能                 
}
作者: cat888    时间: 2010-6-30 08:45
IRQ中断没关吧?
作者: 573377313    时间: 2010-7-2 19:33
谢谢,中断没处理好,现在好了
作者: tankforever    时间: 2011-2-15 15:53
很好




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