智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5435|回复: 4
打印 上一主题 下一主题

急啊!求大虾帮帮忙,我的程序老是illegal_bp

[复制链接]

5

主题

113

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1064
威望
430
贡献
532
兑换币
6
注册时间
2009-12-5
在线时间
51 小时
跳转到指定楼层
1#
发表于 2010-6-27 11:10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大虾帮忙看看,为什么我的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;                     //开行中断    关场中断使能                 
}

9

主题

123

帖子

0

精华

常驻嘉宾

猫爸爸

Rank: 8Rank: 8

积分
3602
威望
1062
贡献
1380
兑换币
318
注册时间
2009-12-11
在线时间
580 小时
2#
发表于 2010-6-30 08:45:44 | 只看该作者
IRQ中断没关吧?
回复 支持 反对

使用道具 举报

5

主题

113

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1064
威望
430
贡献
532
兑换币
6
注册时间
2009-12-5
在线时间
51 小时
3#
 楼主| 发表于 2010-7-2 19:33:48 | 只看该作者
谢谢,中断没处理好,现在好了
回复 支持 反对

使用道具 举报

1

主题

40

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
340
威望
266
贡献
66
兑换币
0
注册时间
2010-12-9
在线时间
4 小时
4#
发表于 2011-2-15 15:53:54 | 只看该作者
很好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-22 09:27 , Processed in 0.052572 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表