智能车制作

 找回密码
 注册

扫一扫,访问微社区

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

求XS128的源程序

[复制链接]

8

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
469
QQ
威望
342
贡献
53
兑换币
11
注册时间
2010-3-13
在线时间
37 小时
跳转到指定楼层
1#
发表于 2010-5-8 21:33:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求XS128(摄像头组)的源程序

4

主题

11

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
350
QQ
威望
305
贡献
39
兑换币
0
注册时间
2009-12-27
在线时间
3 小时
2#
发表于 2010-11-20 14:20:45 | 只看该作者
谢谢
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
111
威望
173
贡献
28
兑换币
0
注册时间
2011-1-20
在线时间
0 小时
3#
发表于 2011-1-20 05:38:07 | 只看该作者
是这个么?
#include <hidef.h>      /* common defines and macros */
#include <mc9s12xs128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128b"

///////////////////////////////////////////////////////////////
//行同步中断输入捕捉1管脚.
//场同步中断IRQ
//Yn分别对应PORTMn

///////////////////////////////////////////////////////////////

#define SYNE_SETTING 3
#define REFDV_SEETTING 1     // PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1) busclk=64M
#define delay {_asm nop;}
#define M 100
#define N 40
unsigned char buff[N][M];
byte Tclk_ready;
static byte cnt_HREF=0x01;
static int cnt=0x00;
static int p=0x00;
byte one_sample;

void delayms(int a)
{   int b;
    byte i,j;
    for(b=0;b<a;b++)
    for(i=0;i<255;i++)
        for(j=0;j<255;j++)
           delay;delay;delay;
        
}
void init_CRG(byte para1,byte para2)
  {
      SYNR=para1;
      REFDV=para2;
      while(!CRGFLG_LOCK);
      CLKSEL_PLLSEL=1;   
  }
  
  
void init_interupt()
  {
     IRQCR_IRQE=1;         //下降沿触发
     IRQCR_IRQEN=1;        //场同步中断IRQ中断,初始化开启
            
     TIOS=0x00;          //行同步中断,外部输入捕捉0,1通道,初始化不开启
     TCTL4=0x09;         //通道0上升沿触发,通道1下降沿触发
     TSCR2=0X01;         //分频  (总线时间/2)
   
     TSCR1=0x80;
     TIE=0X00;           //初始化定时器关闭
  }
  
void init_port()
  {
      DDRB=0XFF;
      PORTB=0Xaa;
      DDRA=0X00;
      PUCR=0x03;
    //  DDRT=0x00; //shu ru shezhi
      
  }
  
  void init_sys(byte p1,byte p2)
  {
    init_CRG(p1,p2);
    init_interupt();
    init_port();
   
  }
  

/*-------串口初始化----------------------*/
void SciInit()
{
        SCI0BDL = (unsigned char)((48000000UL /* OSC freq */ / 2) / 19200 /* baud rate */ / 16 /*factor*/);
        SCI0CR1=0;                                        /*normal,no parity*/
        SCI0CR2=0X2C;       /*RIE=1,TE=1,RE=1*/
}


/*-------发射端程序-----单字节发送-----------------*/
void SciTx(unsigned char text)
{
        unsigned char temp;
        temp=SCI0SR1;      /*clear flag*/
        while (!(SCI0SR1&0x80));  /* wait for output buffer empty */
        SCI0DRH=0;
        SCI0DRL=text;
}


/*---------接受部分------------------------*/
char SciRx(void){
  char temp;
  char result;
  temp=SCI0SR1;             /*clear flag*/
  while(!(SCI0SR1&0x20));
  result=SCI0DRL;
  return result;
}


void TestXianshi(void)
{
byte i,j;
SciTx(0);
for(i=1;i<N;i++)
{
  for(j=1;j<M;j++)
    {
      SciTx(j*3);
    }
   SciTx(0);
}
   SciTx(0);
//  SciTx(0);
   
}
void Send_piex(void)
{
   
    byte i,j;
    SciTx(0);
    for(i=1;i<N;i++)        //
    {                       //
           for(j=0;j<M;j++)
           {
            if(buff[i][j]==0)
               buff[i][j]=1;
            SciTx(buff[i][j]);

       //    delayms();      
             }
        SciTx(0);

   
    }SciTx(0);

}



void main(void)
{
    DisableInterrupts;
    one_sample=1;

      init_sys(SYNE_SETTING,REFDV_SEETTING);
      SciInit();
      EnableInterrupts;

   
//    unsigned char aa[10]="123456789";
//  SciTx('a');
//  TestXianshi();
      for(;;)
      {
        if(one_sample==2)
         {
            Send_piex();
            one_sample=3;
            IRQCR_IRQEN=1;
        }
              
      }
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 8 Port0_interrupt(void)
{  int i;
   TIE=0X00;
   TFLG1=0X01;
   for(i=0;i<M;i++)
   {
    buff[cnt_HREF][i]=PORTA;
   }
  cnt_HREF++;
  if(cnt_HREF<N)
     {
        p++;
        if(p==5)
           {
              p=0X00;
              TIE=0X01;
            }
           else
                {
                  p++;
                    while(p>5)
                        {
                            p=1;
                         }
                    TIE=0X01;
                 }
     }
  else
    {
       TIE=0X00;
       cnt_HREF=0;
      one_sample=2;
   }                                            
}
               

#pragma CODE_SEG DEFAULT

/***************************场中断处理******************************************/
  #pragma CODE_SEG __NEAR_SEG NON_BANKED               //场中断
  void interrupt 6 IRQ_interrupt(void)
{
      
        TIE=0X01;                                         //开行中断 /////
        IRQCR_IRQEN=0;
                                                       //关场中断使能
  

}
#pragma CODE_SEG DEFAULT


#pragma CODE_SEG __NEAR_SEG NON_BANKED

void interrupt 20 sci_interrupt(void)
{     
      unsigned char data;
      DisableInterrupts;
      data=SciRx();
      EnableInterrupts;
}
#pragma CODE_SEG DEFAULT
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
威望
149
贡献
78
兑换币
73
注册时间
2012-11-15
在线时间
42 小时
毕业学校
中南大学
4#
发表于 2013-2-8 16:50:18 | 只看该作者
keyou818 发表于 2011-1-20 05:38
是这个么?
#include       /* common defines and macros */
#include      /* derivative information  ...

额,想问一下你这个程序烧进去车可以跑成什么样子?
回复 支持 反对

使用道具 举报

2

主题

37

帖子

0

精华

注册会员

Rank: 2

积分
183
威望
91
贡献
56
兑换币
55
注册时间
2012-10-29
在线时间
18 小时
毕业学校
陕西科技大学
5#
发表于 2013-2-21 13:32:28 | 只看该作者
同求。谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 00:28 , Processed in 0.070816 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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