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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? chap2.c

?? 摩托羅拉Mc6811利程
?? C
字號:
// Chapter 2 6811 C programs// Jonathan W. Valvano// This software accompanies the book,// Embedded Microcomputer Systems: Real Time Interfacing// published by Brooks Cole, 1999// Program 2.2. An inappropriate use of #define.#define size 10short data[size];void initialize(void){ short j   for(j=0;j<10;j++)      data[j]=0;};// Program 2.3. An appropriate use of #define.#define size 10short data[size];void initialize(void){ short j   for(j=0;j<size;j++)      data[j]=0;};// Program 2.4. 6811 C implementation of a Mealy Finite State Machine.const struct State{	unsigned char Time;    /* Time to wait in each state */	unsigned char Out[2];  /* Output if input=0,1 */	const struct State *Next[2]; /* Next state if input=0,1 */};typedef const struct State StateType;#define SA &fsm[0]#define SB &fsm[1]#define SC &fsm[2]#define SD &fsm[3]StateType fsm[4]={	{100,{0,0},{SB,SD}},	{100,{0,8},{SC,SA}},	{ 15,{0,0},{SB,SD}},	{ 15,{8,8},{SC,SD}}};void Wait(unsigned int delay){ int Endt;    Endt=TCNT+delay;             /* Time (125ns cycles) to wait */    while((Endt-(int)TCNT)>0);   /* wait */};void main(void){ StatePtr *Pt;  /* Current State */        unsigned char Input;   Pt=SA;                /* Initial State */   DDRC=0x08;            /* PortC bit3 is output */   while(1){      Wait(Pt->Time);       /* Time to wait in this state */      Input=PORTC<<7;       /* Input=0 or 1 */      PORTC=Pt->Out[Input]; /* Perform output for this state */      Pt=Pt->Next[Input];   /* Move to the next state */}};// Program 2.6. 6811 C implementation of a Moore Finite State Machine./* PortC bits 1,0 are input, Port B bits 1,0 are output */const struct State {	unsigned char Out;            /* Output to Port B */	unsigned int Time;            /* Time in 100 祍ec to wait in this state */	const struct State *Next[4];  /* Next state if input=0,1,2,3 */};typedef const struct State StateType;#define SA &fsm[0]#define SB &fsm[1]#define SC &fsm[2]StateType fsm[3]={	{0x01, 4000,{SB,SA,SB,SC}},  /* SA out=1, wait= 500usec, next states */	{0x02, 8000,{SC,SA,SB,SC}},  /* SB out=2, wait=1000usec, next states */	{0x03,16000,{SA,SA,SB,SA}}   /* SC out=3, wait=2000usec, next states */};void Wait(unsigned int delay){ int Endt;    Endt=TCNT+delay;             /* Time (125ns cycles) to wait */    while((Endt-(int)TCNT)>0);   /* wait */};void main(void){ StatePtr *Pt;  /* Current State */  unsigned char Input;   Pt=SA;               /* Initial State */  DDRC=0x00;           /* Make Port C inputs */  while(1){    PORTB=Pt->Out;      /* Perform output for this state */    Wait(Pt->Time);     /* Time to wait in this state */    Input=PORTC&0x03;   /* Input=0,1,2,or 3 */    Pt=Pt->Next[Input]; /* Move to next state */  }};// Program 2.7: A median function that is not very portable.unsigned int Median(unsigned int u1,unsigned int u2,unsigned int u3){ unsigned int result;  printf("The inputs are %d, %d, %d.\n",u1,u2,u3);  if(u1>u2)    if(u2>u3)   result=u2;     // u1>u2,u2>u3       u1>u2>u3      else        if(u1>u3) result=u3;   // u1>u2,u3>u2,u1>u3 u1>u3>u2        else      result=u1;   // u1>u2,u3>u2,u3>u1 u3>u1>u2  else     if(u3>u2)   result=u2;     // u2>u1,u3>u2       u3>u2>u1      else        if(u1>u3) result=u3;   // u2>u1,u2>u3,u1>u3 u2>u1>u3        else      result=u1;   // u2>u1,u2>u3,u3>u1 u2>u3>u1  printf("The median is %d.\n",result);  return(result):}// Program 2.14: C implementation of SCI basic input/output.// 68HC11A8 SCI routines void init(void) {         BAUD=0x33;  // 1200 baud     SCCR1=0x00; // 8data, 1stop     SCCR2=0x0C;}// enable gadfly#define RDRF 0x20#define TDRE 0x80#define TC 0x40unsigned char insci(void){    while ((SCSR & RDRF) == 0);       return(SCDR); }/* letter is character to print, */void OutChar(unsigned char letter){/* Wait for TDRE then output */    while ((SCSR & TDRE) == 0);       SCDR=letter; }//Program 2.18. Main program with three modules.#include "HC11.H"#include "LCD11.H"#include "COP11.H"#include "Timer.H"void main(void){ char letter; int n=0;    COPinit(); // Enable TOF interrupt to make COP happy   LCDinit();   TimerInit()   LCDString("LCD");   TimerMsWait(1000);   LCDclear();   letter='a'-1;   while(1){      if (letter=='z')         letter='a';      else         letter++;      LCDputchar(letter);      TimerMsWait(250);      if(++n==16){         n=0;         LCDclear();}}}#include "LCD11.C"#include "COP11.C"#include "Timer.C"#include "VECTORS.C"// Program 2.19: Timer.H header file has public functionsvoid TimerInit(void);void TimerMsWait(unsigned int time);// Program 2.20: Timer.C implementation file defines all functionsunsigned int TimerClock; // private globalvoid TimerInit(void){ // public function  TimerClock=2000; // 2000 counts per ms}void TimerWait(unsigned int time){ // private function  TOC5=TCNT+TimerClock;  // 1.00ms wait  TFLG1 = 0x08;         // clear OC5F  while((TFLG1&0x08)==0){};}void TimerMsWait(unsigned int time){ // public function  for(;time>0;time--)    TimerWait(TimerClock); // 1.00ms wait}// Program 2.22. C++ implementation of a Mealy Finite State Machine.// a DDRAddress of 1 means fixed output port with no DDR// a DDRAddress of 0 means fixed input port with no DDRtemplate <class T> class port{  protected :       unsigned char *PortAddress;   // pointer to data      unsigned char *DDRAddress;    // pointer to data direction register  public : port(unsigned short ThePortAddress, unsigned short TheDDRAddress){       PortAddress = (unsigned char *)ThePortAddress; // initialize pointer to I/O port       DDRAddress  = (unsigned char *)TheDDRAddress;} // initialize pointer to DDRvirtual short Initialize(unsigned char  data){       if((int)DDRAddress==1)   // fixed output port           return(data==0xFF);  // OK if initializing all bits to output       if(DDRAddress==0)        // fixed input port           return(data==0);     // OK if initializing all bits to input       (*DDRAddress) = data;    // configure direction register       return 1;}   // successfulvirtual void put(unsigned char  data){       if((int)DDRAddress==0) return;  // fixed input       if((*DDRAddress)==0) return;    // all input       (*PortAddress) = data;}         // output data to portvirtual unsigned char get(void){       return (*PortAddress);} // input data from port}// 6811 PortC bits 1,0 are input, Port B bits 1,0 are output   port<unsigned char> OutPort(0x1004,1);      // fixed output portport<unsigned char> InPort(0x0003,0x0007);  // bidirectional portvoid main(void){ StateType *Pt;  unsigned char Input;  Pt=SA;                // Initial State   OutPort.Initialize(0xFF);          // Make Output port outputs   InPort.Initialize(0x00);           // Make Input port inputs   while(1){    OutPort.put(Pt->Out);    Wait(Pt->Time);     // Time to wait in this state     Input=InPort.get()&0x03;  // Input=0,1,2,or 3     Pt=Pt->Next[Input];  }// Program 2.23. Additional member functions for the I/O port class.T operator = (T data){       put(data);              // output to port       return data;}           // returns data itselfoperator T () (T data){       return get();}          // returns port datavirtual T operator |= (T data){       put(data |= get());     // read modify write port access       return data;}           // returns new datavirtual T operator &= (T data){       put(data &= get());     // read modify write port access       return data;}           // returns new datavirtual T operator ^= (T data){       put(data ^= get());     // read modify write port access       return data;}           // returns new data// Program 2.24: Recursion is when a function calls itself.//-----------------------Start of OutUDec-------------------------------------// Output a 16 bit number in unsigned decimal format// Variable format 1 to 5 digits with no space before or after// This function uses recursion to convert a decimal number of //   unspecified length as an ASCII stringvoid OutUDec(unsigned int number){     if (number>=10){         OutUDec(number/10);         OutUDec(number%10);    }    else         OutChar(number+'0');}// Program 2.27: Empirical measurement of dynamic efficiency in C.unsigned short before,elasped;void main(void){   ss=100;   before=TCNT;   tt=sqrt(ss);   elasped=TCNT-before;}// Program 2.29. Another empirical measurement of dynamic efficiency in C.void main(void){// PB7 is connected to a scope   ss=100;   while(1){     PORTB |= 0x80;  // set PB7 high     tt=sqrt(ss);     PORTB &= ~0x80; // clear PB7 low   }}// Program 2.30: A time/position profile dumping into a data array.unsigned short time[100];unsigned short place[100];unsigned short n;void profile(unsigned short p){  time[n]=TCNT; // record current time  place[n]=p;  n++;}unsigned short sqrt(unsigned short s){ unsigned short t,oldt;  profile(0);  t=0;       // based on the secant method  if(s>0) {profile(1);     t=32;   // initial guess 2.0     do{profile(2);       oldt=t;  // calculation from the last iteration       t=((t*t+16*s)/t)/2;} // t is closer to the answer     while(t!=oldt);}    // converges in 4 or 5 iterations profile(3);  return t;} // Program 2.31: A time/position profile using two output bits.unsigned int sqrt(unsigned int s){ unsigned int t,oldt;  PORTB=0;  t=0;       // based on the secant method  if(s>0) {PORTB=1;     t=32;   // initial guess 2.0     do{PORTB=2;       oldt=t;  // calculation from the last iteration       t=((t*t+16*s)/t)/2;} // t is closer to the answer     while(t!=oldt);}    // converges in 4 or 5 iterations PORTB=3;  return t;} 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品视频一区二区| 91在线观看免费视频| 秋霞成人午夜伦在线观看| 国产亚洲精品资源在线26u| 欧美午夜精品久久久久久超碰 | 在线亚洲一区二区| 欧美日韩综合在线| 欧美成人video| 中文字幕成人网| 亚洲免费在线观看视频| 亚洲三级电影网站| 午夜激情久久久| 精品在线免费观看| 成人免费视频app| 欧美剧情片在线观看| 99国产精品久| 日韩精品自拍偷拍| 欧美激情中文字幕一区二区| 亚洲欧美另类久久久精品| 久久99国产乱子伦精品免费| 国产成人精品免费在线| 欧美日韩亚洲综合在线| 国产丝袜欧美中文另类| 亚洲国产精品人人做人人爽| 精品综合久久久久久8888| 色综合天天综合色综合av| 欧美一区二区美女| 亚洲美女少妇撒尿| 国产一区二区三区av电影| 欧美视频在线不卡| 国产欧美日韩精品一区| 亚洲高清视频中文字幕| av男人天堂一区| 日韩免费一区二区| 玉米视频成人免费看| 国产91在线看| 日韩精品一区在线观看| 一区二区成人在线视频| 老司机精品视频在线| 91福利视频网站| thepron国产精品| 欧美一区二区精品久久911| 亚洲欧美精品午睡沙发| 美国三级日本三级久久99| 99久久久精品免费观看国产蜜| 91麻豆精品国产91久久久资源速度| 亚洲欧美综合网| 国产大陆亚洲精品国产| 日韩午夜电影在线观看| 一个色在线综合| 一本大道综合伊人精品热热| 欧美一卡二卡在线| 国产精品一品二品| 欧美精品一区二区精品网| 日本中文一区二区三区| 久久精品国产**网站演员| 欧美精品亚洲一区二区在线播放| 国产日韩欧美a| 免费高清成人在线| 69久久99精品久久久久婷婷| 亚洲18色成人| 51午夜精品国产| 成人免费在线播放视频| 99re热这里只有精品视频| 自拍偷自拍亚洲精品播放| 91丨九色丨蝌蚪丨老版| 国产日韩av一区| 成人一级片在线观看| 国产精品毛片a∨一区二区三区| 精品亚洲欧美一区| 精品国免费一区二区三区| 国产麻豆欧美日韩一区| 久久综合色8888| 国产福利精品一区二区| 欧美电影在哪看比较好| 久久精品国产免费看久久精品| 成人免费观看av| 国产精品国产三级国产普通话蜜臀 | 日韩va欧美va亚洲va久久| 欧美一级xxx| 国产一区美女在线| 国产精品久久久久影视| 色诱亚洲精品久久久久久| 午夜精品123| 久久青草国产手机看片福利盒子| 国产曰批免费观看久久久| 中文字幕精品在线不卡| 欧美视频一二三区| 精品一区二区三区在线观看国产| 久久嫩草精品久久久精品| 99国产精品久久久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品福利二区三区| 成人综合婷婷国产精品久久| 亚洲乱码国产乱码精品精98午夜 | 亚洲免费伊人电影| 欧美一区二区三区视频免费| 国产精品亚洲а∨天堂免在线| 亚洲日本在线a| 欧美日韩精品一区二区天天拍小说 | 亚洲美女免费视频| 欧美哺乳videos| 91啪在线观看| 日本vs亚洲vs韩国一区三区二区 | 精品久久久久久久久久久院品网| 不卡一区在线观看| 日本网站在线观看一区二区三区 | 精品免费视频一区二区| 精品视频免费看| 一个色妞综合视频在线观看| 精品国产青草久久久久福利| 91高清视频免费看| 风流少妇一区二区| 日韩黄色免费网站| 亚洲国产激情av| 日韩精品一区二区三区四区视频| 蜜臀av一级做a爰片久久| 一区二区在线观看av| 久久久久成人黄色影片| 欧美日韩另类国产亚洲欧美一级| 狠狠色丁香久久婷婷综| 日韩av电影免费观看高清完整版| 图片区小说区区亚洲影院| 日本欧洲一区二区| 久久99精品久久久| 国产成人精品免费视频网站| 国产91高潮流白浆在线麻豆 | 欧美在线观看你懂的| 欧美午夜片在线看| 欧美一级日韩免费不卡| 欧美精品一区男女天堂| 国产精品美女一区二区三区| 国产精品全国免费观看高清| 一区二区三区日韩精品| 日韩**一区毛片| 国产久卡久卡久卡久卡视频精品| 成人性生交大片免费看视频在线| 97se亚洲国产综合自在线| 欧美日韩免费在线视频| 精品三级在线观看| 国产精品入口麻豆九色| 亚洲国产乱码最新视频| 狠狠色丁香久久婷婷综合丁香| 国产成人一区在线| 欧美视频一区二| 欧美经典一区二区| 亚洲一区国产视频| 国产在线观看免费一区| 91免费观看视频| 日韩视频一区二区三区在线播放 | 日本精品一区二区三区高清 | 欧美在线一二三四区| 欧美日韩国产区一| 国产日本亚洲高清| 国产精品久久精品日日| 日本aⅴ精品一区二区三区| 亚洲一本大道在线| 大桥未久av一区二区三区中文| 欧美日韩不卡在线| 国产精品―色哟哟| 美女一区二区三区在线观看| 97久久超碰精品国产| 精品成人a区在线观看| 一区二区三区中文字幕电影| 久久99国产精品麻豆| 在线日韩一区二区| 99精品视频在线播放观看| 国产成人免费视频网站高清观看视频| 91国产精品成人| 精品精品国产高清a毛片牛牛| 国产精品第一页第二页第三页| 丝袜脚交一区二区| 成人爱爱电影网址| 久久综合久久综合亚洲| 亚洲一二三四在线观看| 不卡一区在线观看| 精品国内片67194| 婷婷综合另类小说色区| 91香蕉国产在线观看软件| 日韩一区二区在线观看| 中文成人av在线| 麻豆成人综合网| 欧美日韩一区二区三区四区五区| 精品少妇一区二区三区| 麻豆成人av在线| 91精品国产综合久久福利软件| 亚洲一级二级三级在线免费观看| av影院午夜一区| 日本久久一区二区| 最新日韩av在线| 99国产精品国产精品久久| 日本一区二区综合亚洲| 国产一区二区不卡在线| 久久亚洲二区三区| 久久精工是国产品牌吗| 精品美女在线播放| 久久99精品久久久久婷婷| 精品日韩一区二区三区| 麻豆精品国产91久久久久久| 日韩欧美色综合|