亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 摩托羅拉單片機S12系列DG128的SPI接口編程實例
?? C
字號:
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */

#define centre 99
#define kp1    24
#define kd1    10
static  uchar  Max;
static  uchar  Min;
static  uchar  Position;
static  uchar  data;
static  int    line[2];
static  int    deta_servo;
static  uint   pre_pwm;
static  uchar  evalue;
static  uchar  straight;
static  uchar  roadstate;
static  uchar  pixel[1200];
static  uchar  Interrupt_num;
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

static uchar DATA[20] = {
  0x00,// 0;b159~152,
  0x00,// 1;b151~144,
  0x33,// 2;b143~136,
  0xe0,// 3;b135~128,
  0x15,// 4;b127~120,
  0x2c,// 5;b119~112,
  0x5d,// 6;b111~104,
  0x00,// 7;b103~ 96,
  0x0f,// 8;b 95~ 88,
  0xff,// 9;b 87~ 80,
  0xf0,//10;b 79~ 72,
  0x00,//11;b 71~ 64,
  0x00,//12;b 63~ 56, 
  0x00,//13;b 55~ 48,
  0x52,//14;b 47~ 40,
  0x09,//15;b 39~ 32,
  0xd1,//16;b 31~ 24,
  0x8d,//17;b 23~ 16,
  0x37,//18;b 15~  8,
  0x32 //19;b  7~  0,
};

void Init_Spi0(void)
{
   MODRR = 0x00;
   SPI0BR = 0x02;
   SPI0CR2 = 0x10;
   SPI0CR1 = 0x5e;
}

void Init_Clk(void)
{
  asm
  {
    LDAB  #1
    STAB  REFDV
    LDAB  #3
    STAB  SYNR								 ;System Clock Setting ->Bus Clk=32MHz
  Wait:
    BRCLR CRGFLG,#$08,*
    BSET  CLKSEL,#$80  				 ;Enable PLL Module
    
    LDAB  #$00								 
    STAB  PEAR								 ;Enable External Clock
  }
}

void Upload(uint i,uint j)
{
  uint counter;
  switch(i)	    
  {
    case  0: DATA[4] = 0x15;DATA[5] = 0x28;break;//75 
    case  1: DATA[4] = 0x15;DATA[5] = 0x3c;break;//80
    case  2: DATA[4] = 0x15;DATA[5] = 0x50;break;//85
    case  3: DATA[4] = 0x15;DATA[5] = 0x64;break;//90
    case  4: DATA[4] = 0x15;DATA[5] = 0x78;break;//95
    case  5: DATA[4] = 0x15;DATA[5] = 0x8c;break;//100
    default: DATA[4] = 0x15;DATA[5] = 0x50;break;//set ystart,b119~112	 ystart:b121~113
  }
  switch(j)
  {
    case  0: DATA[14] = 0x52;break;//brightest
    case  1: DATA[14] = 0x5a;break;
    case  2: DATA[14] = 0x62;break;
    case  3: DATA[14] = 0x6a;break;
    case  4: DATA[14] = 0x72;break;
    case  5: DATA[14] = 0x7a;break;//darkest
    default: DATA[14] = 0x6a;break;//set integration time,b47~40
  }
  PTJ = 0xc3;
  SPI0DR = DATA[0];
  for(counter=0;counter<20;counter++)
  {
    while(!(SPI0SR&0x20))
    {}
    SPI0DR = DATA[counter];
  }
  for(counter=0;counter<100;counter++)
  {asm("NOP");}
  PTJ = 0xc2;
  for(counter=0;counter<50;counter++)
  {asm("NOP");}
}

void ResetPer(void)
{
  uint i;
  PTJ = 0x00;
  for(i;i<2000;i++)
  {asm("NOP");}
  PTJ = 0xc2;
  for(i=0;i<20000;i++)
  {asm("NOP");}
}

void ResetFIFO(void)
{
  uchar i;
  PTJ = 0x02;
  for(i=0;i<200;i++)
  {asm("NOP");}
  PTJ = 0xc2;
  for(i=0;i<10;i++)
  {asm("NOP");}
}

void Get_Ref(void)
{
  uint i;
  Min = pixel[10];
  Max = pixel[10];
  for(i=12;i<188;i++)
  {
    data = pixel[i];
    if(Max<data) Max = data;
    if(Min>data) Min = data;
  }
}

void  Init_PWM(void)
{
  PWME     = 0;          //PWM禁止
  PWMPRCLK = 0x22;       //Clock A=bus clock/4=8MHz,Clock B=bus clock/4=8MHz;Bus Clk = 32MHz 
  PWMSCLA  = 0;	         //PWM時鐘SA的選擇 Clock SA=Clock A/2*PWMSCLA,//0=256
  PWMSCLB  = 1; 	       //PWM時鐘SB的選擇 Clock SB=Clock B/2*PWMSCLB,//0=256
  PWMCLK   = 0xcf;       //7,6,3,2選擇時鐘SB,4,5選擇時鐘A,1,0選擇時鐘SA
  PWMPOL   = 0xff;       //PWM各通道極性的選擇先高后低
  PWMCAE   = 0;		       //PWM各通道對齊方式的選擇 左對齊
  PWMCTL   = 0xf0;       //16位PWM波方式,奇數通道有效
  PWMDTY23 = 6454;	     //PWM3用來產生舵機的pwm波7.5%為中間
  PWMDTY45 = 9000;       //PWM5用來產生電機的pwm波
  PWMPER23 = 20480;      //320*4*32 //對應jp5
  PWMPER45 = 20000;      //PWM5用來產生電機的pwm波
  PWME     = 0x00;       //PWM2,3,4,5通道使能 
}

uchar Sample(void)			 //賽道種子點采集算法,待提高
{
  uchar num,eflag,pos,start;
  uint i,imm,end;
  imm = (Min+Max)/2;
  evalue = imm;
  num = 0;
  eflag = 0;
  if(!straight)
  {
    start = 201;
    end   = 377;
  }
  else
  {
    start = 220;
    end   = 360;
  }
  for(i=start;i<end;i++)
  {
    data = pixel[i];
    if(data<evalue)
    {
      num++;
    }
    else
    {
      if(num>5)
      {
        eflag++;
        pos = i-202;
      }
      num=0;
    }
  }
  if(eflag==0)
  {
    return(0);
  }
  else
  {
    return(pos);
  }
}

void Deliver(void)
{
  asm
  {
    BRCLR SCI0SR1,#$80,*
    LDAB  #$00
    STAB  SCI0DRL
    BRCLR SCI0SR1,#$80,*
    LDAB  evalue
    STAB  SCI0DRL
    BRCLR SCI0SR1,#$80,*
    LDAB  Min
    STAB  SCI0DRL
    BRCLR SCI0SR1,#$80,*
    LDAB  Max
    STAB  SCI0DRL
    BRCLR SCI0SR1,#$80,*
    LDAB  Position
    STAB  SCI0DRL
    BRCLR SCI0SR1,#$80,*
    LDAB  #$FF
    STAB  SCI0DRL
  }
}

void Init_Sci0(void)
{
  asm
  {
    LDAB #$0C
    STAB SCI0CR2
    LDAB #$00
    STAB SCI0BDH
    LDAB #$34
    STAB SCI0BDL
  }
}

void control(void)							//控制算法,待提高
{
  switch(roadstate)
  {
    case 0:											//彎道:減速,參數調小
    {
      PWME = 0x0c;
      PWMDTY45 = 9000;
      PWME = 0x3c;
    };break;
    case 1:											//直道:加速,參數調大
    {
      PWME = 0x0c;
      PWMDTY45 = 8000;
      PWME = 0x3c;
    };break;
    default:										//默認為直道
    {
      PWME = 0x0c;
      PWMDTY45 = 9000;
      PWME = 0x3c;
    };break;
  }
  PWME    = 0x30;
  deta_servo = (kp1*line[1]+kd1*(line[1]-line[0]))/2;
  pre_pwm = 6454+deta_servo;		//舵機控制
  if(pre_pwm>7500) pre_pwm = 7500;
  if(pre_pwm<5400) pre_pwm = 5400;
  PWMDTY23= pre_pwm;
  PWME	  = 0x3c;
}

void Init_RTI(void)
{
  RTICTL  = 0x77;								//98Hz  freq=oscclk/((b[3:0]+1)*2^(b[6:4]+9))
  CRGINT |= 0x80;
  Interrupt_num = 0;
}

interrupt 7 void RTIF(void)
{
  uchar key,emptyflag;
  uint i;
  asm
  {
    BSET CRGFLG,#$80
  }
  Interrupt_num++;
  PORTB = Interrupt_num;
  DisableInterrupts;
  emptyflag = 0;
  ResetFIFO();
  if(straight)
  {
    Upload(3,5);
  }
  else
  {
    Upload(0,5);
  }
  while(!emptyflag)		//kong->xunhuan
  {
    key = PTIT;
    key = key&0x10;
    if(key)
    {emptyflag = 1;}  //fei kong
    else
    {emptyflag = 0;}  //kong
  }
  i = 0;
  while(emptyflag)
  {
    asm
    {
      ;BRCLR SCI0SR1,#$80,*
      LDAB #$00
      STAB PORTK
      LDAA PORTA
      STAA data
      ;STAA SCI0DRL
      LDAB #$80
      STAB PORTK
    }
    pixel[i] = data;
    i++;
    key = PTT;
    key = key&0x10;
    if(!key)
    {
      emptyflag = 0;
    }
  }
  Get_Ref();
  Position = Sample();
  if(Position!=0)
  {
    line[0] = line[1];
    line[1] = Position-centre;
  }
  if(line[1]>-10||line[1]<10)
  {
    straight++;
  }
  else
  {
    straight = 0;
  }
  if(straight>20)
  {
    roadstate = 1;
    straight = 0;
  }
  else
  {
    roadstate = 0;
  }
  control();
  Deliver();
  ResetFIFO();
  EnableInterrupts;
}

void main(void) 
{
  uint i,key,keyflag,emptyflag;
  DisableInterrupts;
  Init_Spi0();
  Init_Sci0();
  ResetPer();
  Init_Clk();
  Init_PWM();
  Init_RTI();
  DDRJ  = 0xff;
  PTJ   = 0xff;
  DDRB  = 0xff;
  PORTB = 0x0f;
  DDRK  = 0xff;
  DDRT  = 0x00;
  PORTK = 0xff;
  keyflag = 0;
  emptyflag = 0;
  Upload(0,5);
  while(!emptyflag)		//kong->xunhuan
  {
    key = PTIT;
    key = key&0x10;
    if(key)
    {emptyflag = 1;}  //fei kong
    else
    {emptyflag = 0;}  //kong
  }
  for(i=0;i<1000;i++)
  {asm("NOP");}
  ResetFIFO();
  key = 1;
  while(key)
  {
    key = PTIT;
    key = key&0x20;
    keyflag = 0;
    while(!key)
    {
      key = PTIT;
      key = key&0x20;
      keyflag = 1;
    }
    if(keyflag) key = 0;
  }
  ResetFIFO();
  Upload(1,5);
  while(!emptyflag)		//kong->xunhuan
  {
    key = PTIT;
    key = key&0x10;
    if(key)
    {emptyflag = 1;}  //fei kong
    else
    {emptyflag = 0;}  //kong
  }
  /*for(i=0;i<1200;i++)
  {
    data = pixel[i];
    asm
    {
      BRCLR SCI0SR1,#$80,*
      LDAB  data
      STAB  SCI0DRL
    }
  }*/
  //Get_Ref();
  //Position = Sample();
  //Deliver();
  PORTB = 0x5a;
  /* put your own code here */
  EnableInterrupts;
  for(;;) {} /* wait forever */
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本色综合中文字幕| 一本色道久久综合亚洲91| 成人手机在线视频| 51精品国自产在线| 中文字幕一区二区三区四区| 蜜臀久久99精品久久久久久9 | 久久―日本道色综合久久| 亚洲三级免费观看| 国产精品18久久久久久久网站| 欧洲一区二区三区免费视频| 久久精品免视看| 美女视频黄 久久| 欧美视频精品在线观看| 亚洲色图欧美激情| 成人午夜电影久久影院| 精品少妇一区二区三区日产乱码| 亚洲bt欧美bt精品777| 99免费精品视频| 久久伊99综合婷婷久久伊| 日韩av电影一区| 欧美性做爰猛烈叫床潮| 亚洲精品日韩专区silk| 成人97人人超碰人人99| 国产精品高清亚洲| www.欧美色图| 中文字幕日韩精品一区| 大胆欧美人体老妇| 国产日产欧产精品推荐色| 韩国成人在线视频| 精品99久久久久久| 久久99久久久欧美国产| 精品少妇一区二区| 麻豆精品一区二区| 欧美成人a视频| 久久99久久久久| 精品国产制服丝袜高跟| 激情五月激情综合网| www激情久久| 国产不卡在线视频| 成人欧美一区二区三区在线播放| 成人av在线一区二区三区| 国产精品美女久久久久aⅴ国产馆| 国产福利精品一区二区| 国产精品美女久久久久aⅴ| jlzzjlzz亚洲日本少妇| 亚洲同性同志一二三专区| 欧美亚洲动漫制服丝袜| 午夜不卡av在线| 欧美tickling网站挠脚心| 国产成人在线视频网站| 国产精品家庭影院| 欧美午夜精品一区二区蜜桃| 琪琪久久久久日韩精品| 久久久影院官网| 91免费观看国产| 日韩精品亚洲一区| 久久久久97国产精华液好用吗| 国产成人精品亚洲午夜麻豆| 亚洲天堂福利av| 欧美一区二区三区白人| 国产成人亚洲综合色影视| 亚洲欧美一区二区三区国产精品| 欧洲视频一区二区| 久久成人精品无人区| 国产精品国产三级国产普通话蜜臀 | 972aa.com艺术欧美| 亚洲成人资源网| 久久青草国产手机看片福利盒子 | 成人高清在线视频| 亚洲国产视频a| 国产亚洲一区字幕| 欧美综合一区二区| 国产一区二区三区黄视频 | 一区二区三区在线观看视频| 777xxx欧美| 国产不卡视频在线播放| 福利91精品一区二区三区| 亚洲电影视频在线| 国产午夜精品美女毛片视频| 欧美精品日日鲁夜夜添| 国产suv精品一区二区6| 午夜视频在线观看一区| 国产精品理论片在线观看| 欧美一区二区三区免费在线看| 粉嫩绯色av一区二区在线观看| 午夜精品一区在线观看| 国产精品黄色在线观看| 精品电影一区二区三区| 欧美色图一区二区三区| 成人av影院在线| 国产风韵犹存在线视精品| 日韩影院免费视频| 一二三四社区欧美黄| 中文字幕 久热精品 视频在线| 欧美一区二区在线播放| 欧美在线一区二区| 92精品国产成人观看免费| 国产黄色成人av| 老鸭窝一区二区久久精品| 亚洲成a人片在线观看中文| 1000部国产精品成人观看| 久久精品视频一区二区三区| 日韩精品一区二区三区中文精品| 欧美私模裸体表演在线观看| 91看片淫黄大片一级在线观看| 成人午夜激情在线| 粉嫩av一区二区三区粉嫩| 国产一区二区三区久久久| 久草这里只有精品视频| 久久66热re国产| 精品午夜一区二区三区在线观看| 日韩综合小视频| 三级成人在线视频| 日本成人在线不卡视频| 午夜a成v人精品| 日本中文一区二区三区| 日韩中文字幕91| 蜜桃视频在线观看一区| 麻豆成人av在线| 国产一区二区影院| 国产成人一区在线| 99视频热这里只有精品免费| av在线播放成人| 日本精品视频一区二区三区| 欧美性极品少妇| 欧美一级日韩不卡播放免费| 日韩欧美一卡二卡| 国产亚洲精品aa| 中文字幕综合网| 亚洲午夜成aⅴ人片| 日韩在线一区二区三区| 黑人精品欧美一区二区蜜桃| 高清久久久久久| 色婷婷亚洲一区二区三区| 欧美日韩一区 二区 三区 久久精品 | 亚洲成a人片综合在线| 日韩成人伦理电影在线观看| 久久99热狠狠色一区二区| 丰满白嫩尤物一区二区| 91蜜桃网址入口| 日韩三区在线观看| 欧美激情一二三区| 亚洲国产精品自拍| 国产一区二区三区久久久| 99视频精品全部免费在线| 欧美日韩中字一区| 久久综合色天天久久综合图片| 中文字幕亚洲一区二区av在线| 亚洲午夜日本在线观看| 激情小说欧美图片| 欧美在线视频全部完| www激情久久| 一区二区三区视频在线看| 久久国产精品99精品国产| 91在线视频免费91| 欧美一区二区视频免费观看| 日韩一区精品视频| av一区二区三区四区| 91麻豆精品91久久久久同性| 国产精品电影院| 免费人成精品欧美精品| 不卡的电视剧免费网站有什么| 欧美另类z0zxhd电影| 国产精品女同一区二区三区| 免费视频最近日韩| 色久优优欧美色久优优| 久久久久国产精品厨房| 午夜精品久久久久影视| www.亚洲国产| 精品国产91乱码一区二区三区 | 亚洲18影院在线观看| 成人综合婷婷国产精品久久免费| 欧美喷水一区二区| 综合久久国产九一剧情麻豆| 久久99深爱久久99精品| 欧美色倩网站大全免费| 成人免费小视频| 成人网在线播放| 日韩欧美二区三区| 日韩精品欧美精品| 色噜噜狠狠色综合欧洲selulu| 国产调教视频一区| 国模冰冰炮一区二区| 欧美一区二区三区免费| 亚洲va韩国va欧美va| 色就色 综合激情| 亚洲欧美日韩一区| 波多野洁衣一区| 国产精品麻豆网站| 国产一区二区三区香蕉| 欧美大片顶级少妇| 麻豆极品一区二区三区| 日韩欧美一级二级三级| 蜜臀av亚洲一区中文字幕| 91麻豆精品国产自产在线观看一区| 一区二区国产盗摄色噜噜| 色美美综合视频| 亚洲精品一二三| 欧美在线观看禁18| 亚州成人在线电影|