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

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

?? chap6.c

?? 摩托羅拉Mc6811利程
?? C
字號:
// Chapter 6 6811 C programs// Jonathan W. Valvano// This software accompanies the book,// Embedded Microcomputer Systems: Real Time Interfacing// published by Brooks Cole, 1999//  Program 6.3. Periodic interrupt using input capture and an external clock.// MC68HC11A8// PA0 input = external signalunsigned int TIME;   // incrementedvoid Init(void){asm(" sei");   // make atomic   TCTL2 = (TCTL2&0xFC)|0x01;   TMSK1 |= 0x01;  // Arm IC3   TFLG1=0x01; // initially clear     TIME=0;  asm(" cli");}#pragma interrupt_handler IC3Hanvoid IC3Han(void){     if((TFLG1&0x01)==0) asm(" swi");    TFLG1=0x01;   // acknowledge    TIME++;}   //  Program 6.6. C language period measurement.// MC68HC11A8// PA2/IC1 input = external signal// rising edge to rising edge// resolution = 500ns // Range = 36 祍 to 32 ms, // no overflow checking// IC1 interrupt each period,unsigned int Period;  // units of 500 nsunsigned int First;   // TCNT first edgeunsigned char Done;   // Set each rising void Ritual(void){    asm(" sei");    // make atomic     TCTL2 = (TCTL2&0xCF)|0x10; // rising    First = TCNT;  // first will be wrong    Done=0;         // set on subsequent    TFLG1 = 0x04;   // Clear IC1F     TMSK1 |= 0x04;  // Arm IC1     asm(" cli");}#pragma interrupt_handler TIC1handler()void TIC1handler(void){    Period=TIC1-First;       First=TIC1;  // Setup for next    TFLG1=0x04;  // ack by clearing IC1F    Done=0xFF;}//  Program 6.10. C language 32-bit period measurement.// MC68HC11A8unsigned int MsPeriod,LsPeriod;    unsigned int First;     unsigned int Count;     unsigned char Mode;#pragma interrupt_handler TOhandler()void TOhandler(void){     TFLG2=0x80;              Count++;     if(Count==65535){ // 35 minutes        MsPeriod=LsPeriod=65535;        TMSK1=0x00;         TMSK2=0x00;  // Disarm        Mode=2;}}#pragma interrupt_handler TIC1handler()void TIC1handler(void){  if(Mode==0){    First = TIC1; Count=0; Mode=1;    if(((TIC1&0x8000)==0)       &&(TFLG2&0x80)) Count--;}    else {      if(((TIC1&0x8000)==0)        &&(TFLG2&0x80))Count++;      MsPeriod=Count; Mode=2;      LsPeriod=TIC1-First;      if (TIC1<First) MsPeriod--;       TMSK1=0x00; TMSK2=0x00;} // Disarm   TFLG1=0x04;}  // ack, clear IC1Fvoid Ritual(void){  asm(" sei");    // make atomic   TFLG1 = 0x04;   // Clear IC1F   TMSK1 |= 0x04;  // Arm  IC1   TCTL2 = (TCTL2&0xCF)|0x10;  // rising   TFLG2 = 0x80;   // Clear TOF   TMSK2 |= 0x80;  // Arm TOF   Mode=0;   asm(" cli"); }//  Program 6.13. C language pulse width measurement.// MC68HC11A8unsigned int Measure(void) { unsigned int Rising; TCTL2=(TCTL2&0xF3)|0x04; // Rising edge TFLG1=0x02;      // clear IC2F  PORTB&=0x7F; PORTB|=0x80;     // rising edge on PB7  while(TFLG1&0x02==0){}; // wait rise    Rising=TIC2;     // TCNT at rising edge  TCTL2=(TCTL2&0xF3)|0x08; // Falling edge TFLG1=0x02;      // clear IC2F while(TFLG1&0x02==0){}; // wait fall     return(TIC2-Rising-1000); }   void Init(void){ TMSK1=0x00;}     // no interrupts  TMSK1=0x00;}     // no interrupts//  Program 6.15. C language pulse width measurement.// MC68HC11A8unsigned int PW;     // units of 500 ns unsigned int Rising; // TCNT at risingunsigned char Done;  // Set each falling#define PA2 0x04     // the input signal #pragma interrupt_handler TIC1handler()void TIC1handler(void){  if(PORTA&PA2){    // PA2=1 if rising     Rising=TIC1;}  // Setup for next  else{        PW=TIC1-Rising; // the measurement      Done=0xFF;}  TFLG1=0x04;}       // ack, IC1F=0 void Ritual(void){     asm(" sei");    // make atomic     TCTL2 |= 0x30;   // IC1F set on both rising and falling     Rising = TCNT;  // current TCNT      Done=0;         // set on falling     TFLG1 = 0x04;   // Clear IC1F      TMSK1|= 0x04;   // Arm IC1     asm(" cli");}//  Program 6.17. C language pulse width measurement using two input captures.// MC68HC11A8unsigned int PW;     // units of 500 ns unsigned char Done;  // Set each falling#pragma interrupt_handler TIC1handler()void TIC1handler(void){  PW=TIC1-TIC2; // time from rise to fall   Done=0xFF;  TFLG1=0x04;} // ack by clearing IC1Fvoid Ritual(void){  asm(" sei");     // make atomic   TCTL2=(TCTL2&0xCF)|0x20; // falling edges of IC1, TCNT->TIC1  TCTL2=(TCTL2&0xF3)|0x04; // rising edges of IC2, TCNT->TIC2  Done=0;   // set on the falling edge  TFLG1 = 0x04;     // Clear IC1F   TMSK1|= 0x04;     // Arm IC1, not IC2  asm(" cli");}//   Program 6.21. C language periodic interrupt using output compare.// MC68HC11A8#define Rate 2000#define OC5  0x08unsigned int Time;  // Inc every 1ms #pragma interrupt_handler TOC5handler()void TOC5handler(void){   TFLG1=OC5;      // Ack interrupt    TOC5=TOC5+Rate; // Executed every 1 ms   Time++; }void ritual(void) { asm(" sei");    // make atomic   TMSK1|=OC5;  // Arm output compare 5   Time = 0;   TFLG1=OC5;  // Initially clear OC5F   TOC5=TCNT+Rate; // First one in 1 msasm(" cli"); }//   Program 6.24. C language squarewave using output compare.// MC68HC11A8unsigned int Period;   // Period in usec // Number of Cycles Low and number High  #pragma interrupt_handler TOC3handler()void TOC3handler(void){     TOC3=TOC3+Period;  // calculate Next     TFLG1=0x20;}       // ack,  OC3F=0void ritual(void){     asm(" sei");     // make atomic      TFLG1 = 0x20;    // clear OC3F      TMSK1|= 0x20;    // arm OC3      TCTL1 = (TCTL1&0xCF)|0x10;  // PA5 toggle on each interrupt      TOC3  = TCNT+50; // first right away      asm(" cli"); }//  Program 6.27. C language pulse-width modulated squarewave using output compare.// MC68HC11A8unsigned int High; // Num of Cycles Highunsigned int Low;  // Num of Cycles Low  // Period is High+Low Cycles#pragma interrupt_handler TOC3handler()void TOC3handler(void){   if(TCTL1&0x10){    // PA5 is now high       TOC3=TOC3+High; // 1 for High cyc      TCTL1&=0xEF;}   // clear on next   else {             // PA5 is now low      TOC3=TOC3+Low;  // 0 for Low cycles       TCTL1|=0x10;}   // set on next int     TFLG1=0x20;}     // ack, clear OC3F void ritual(void){    asm(" sei");    // make atomic   TFLG1 = 0x20;   // initially OC3F=0   TMSK1|= 0x20;   // arm OC3    TCTL1|= 0x30;   // PA5 set on next int   TOC3 = TCNT+50; // first right away    asm(" cli"); }void main(void){      High=8000; Low=2000;     ritual();     while(1);}// Program 6.28. C language delayed pulse output using output compare.// MC68HC11A8void Pulse(unsigned int Delay,     unsigned int Width){  asm(" sei");  // make atomic  TOC1=TCNT+Delay;  TOC3=TOC1+Width;  OC1M=0x20;    // connect OC1 to PA5/OC3  OC1D=0x20;    // PA5=1 when TOC1=TCNT    TCTL1=(TCTL1&0xCF)|0x20; // PA5=0 when TOC3=TCNT  TFLG1 = 0x20;     // Clear OC3F   TMSK1|= 0x20;     // Arm OC3F  asm(" cli");}#pragma interrupt_handler TOC3handler()void TOC3handler(void){  OC1M=0;  // disconnect OC1 from PA5  OC1D=0;   TCTL1&=0xCF;  // disable OC3  TMSK1&=0xDF;} // disarm OC3F  //  Program 6.30. C language frequency measurement.// MC68HC11A8#define IC1F 0x04   // connected here#pragma interrupt_handler TIC1handler()void TIC1handler(void){  Count++;      // number of rising edges   TFLG1=IC1F;}  // ack, clear IC1F#define Rate 20000  //  10 ms #define OC5F 0x08#pragma interrupt_handler TOC5handler()void TOC5handler(void){    TFLG1= OC5F;      // Acknowledge     TOC5 = TOC5+Rate; // every 10 ms     Freq = Count;     // 100 Hz units    Done = 0xff;    Count = 0; }      // Setup for next void ritual(void) { asm(" sei");          // make atomic     TMSK1|=OC5F+IC1F; // Arm OC5 and IC1    TOC5=TCNT+Rate;   // First in 10 ms     TCTL2 = (TCTL2&0xCF)|0x10; /* IC1F set on rising edges */    Count = 0;        // Set up for first     Done=0;          /* Set on the subsequent measurements */     TFLG1=OC5F+IC1F;  // clear OC5F, IC1F asm(" cli"); }//  Program 6.33. C language implementation of period measurement.// MC68HC11A8#define resolution 2000#pragma interrupt_handler TOC3handler()void TOC3handler(void){     TOC3=TOC3+resolution;  // every 1 ms      TFLG1=0x20;     // ack, clear OC3F     Cnt++;     if(Cnt==0) OverFlow=0xFF;}#pragma interrupt_handler TIC1handler()void TIC1handler(void){     TFLG1=0x04;   // ack, clear IC1F     if(OverFlow){         Period=65535;         OverFlow=0;}     else         Period=Cnt;     Cnt=0;     Done=0xFF;}void Ritual(void){     asm(" sei");  // make atomic      TFLG1 = 0x24;    // Clear OC3F,IC1F      TMSK1 = 0x24;    // Arm OC3 and IC1      TCTL2 = 0x10;    // rising edges      while((TFLG1&0x04)==0); // wait for first rising     TFLG1 = 0x04;    // Clear IC1F      TOC3=TCNT+resolution;     Cnt=0; OverFlow=0; Done=0;     asm(" cli"); } //  Program 6.36. C language implementation of frequency measurement.// MC68HC11A8#define IC1F 0x04    // connected here#pragma interrupt_handler TIC1handler()void TIC1handler(void){  Count++;      // number of rising edges  TFLG1=IC1F;}  // ack, clear IC1F#define Rate 50000  //  25 ms #define OC5F 0x08#pragma interrupt_handler TOC5handler()void TOC5handler(void){    TFLG1= OC5F;      // Acknowledge    TOC5 = TOC5+Rate; // every 25 ms    if (++FourHundred==400){       Freq = Count;   //  0.1 Hz units        FourHundred=0;       Done = 0xff;       Count = 0; }}  // Setup for nextvoid ritual(void) { asm(" sei");    // make atomic     TMSK1|=OC5F+IC1F; // Arm OC5 and IC1     TOC5=TCNT+Rate;  // First in 25 ms     TCTL2 = (TCTL2&0xCF)|0x10; /* IC1F set on rising edges */    Count = 0;       // Set up for first    Done=0;  // Set on subsequent meas    FourHundred=0;    TFLG1 = OC5F+IC1F; // Clear OC5F IC1Fasm(" cli"); }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区女人| 亚洲欧洲一区二区在线播放| 国产亚洲欧美日韩日本| 一区二区三区四区不卡在线| 国产精品中文字幕一区二区三区| 91成人网在线| 国产精品久久久久久户外露出| 美日韩一区二区| 欧美三电影在线| 亚洲精品日韩一| 国产69精品久久777的优势| 日韩无一区二区| 亚洲线精品一区二区三区| 91视频在线观看| 中文字幕不卡在线播放| 国产一区二区三区在线观看免费视频 | 国产精品亚洲专一区二区三区| 欧美肥妇bbw| 亚洲一二三区视频在线观看| 99国产精品久久久久久久久久久| 久久亚洲春色中文字幕久久久| 日韩电影一区二区三区四区| 欧美色图免费看| 一区2区3区在线看| 欧美专区在线观看一区| 一区二区三区精品在线观看| 色婷婷综合久久久久中文一区二区| 欧美国产精品一区| 国产不卡视频一区| 国产精品久久久久久久久免费相片 | 高清成人免费视频| 中文字幕乱码日本亚洲一区二区 | 欧美区一区二区三区| 亚洲午夜激情av| 欧美理论在线播放| 男男视频亚洲欧美| 精品国产一区二区三区久久久蜜月| 青青草视频一区| 精品久久国产97色综合| 国产麻豆精品在线观看| 中文字幕二三区不卡| 91丨九色丨蝌蚪丨老版| 亚洲国产sm捆绑调教视频| 欧美狂野另类xxxxoooo| 美洲天堂一区二卡三卡四卡视频| 欧美成人一区二区三区| 国产91精品久久久久久久网曝门 | 国产精品久久久久久久浪潮网站| 99在线精品观看| 亚洲激情图片一区| 在线播放视频一区| 国内精品伊人久久久久av影院| 久久久一区二区三区| hitomi一区二区三区精品| 夜夜嗨av一区二区三区中文字幕| 欧美日本国产一区| 精品一区二区国语对白| 日本一区二区三区视频视频| 99久久精品99国产精品| 亚洲午夜视频在线| av中文字幕在线不卡| 亚洲二区在线视频| 久久免费的精品国产v∧| 99精品视频中文字幕| 五月婷婷激情综合| 国产欧美久久久精品影院| 色乱码一区二区三区88| 日韩成人免费在线| 最新国产精品久久精品| 欧美一级久久久| 日本黄色一区二区| 国产一区视频导航| 一区二区久久久| 亚洲国产精品av| 欧美一二区视频| 97se亚洲国产综合在线| 激情综合色综合久久综合| 亚洲综合色成人| 国产欧美一区二区三区鸳鸯浴| 国产成人av一区二区三区在线| 亚洲综合一区二区| 国产精品视频免费看| 欧美成人高清电影在线| 欧美日韩在线一区二区| 国产精品99久| 日韩和欧美一区二区| 亚洲日本成人在线观看| 欧美va日韩va| 51精品秘密在线观看| 欧美系列日韩一区| www.欧美亚洲| 国产二区国产一区在线观看| 美国毛片一区二区| 日韩和欧美的一区| 亚洲国产一二三| 欧美韩日一区二区三区| 久久综合视频网| 欧美不卡一区二区| 欧美一区二区三区视频免费播放| 在线视频你懂得一区二区三区| 成人动漫在线一区| 高清av一区二区| 国产成人精品综合在线观看| 韩国精品一区二区| 国内外成人在线| 国产乱码精品一区二区三区忘忧草 | 欧洲生活片亚洲生活在线观看| 成人免费精品视频| 国产一区二区免费在线| 久久国产精品区| 久久精品国产亚洲5555| 日日噜噜夜夜狠狠视频欧美人| 夜色激情一区二区| 亚洲一区二区三区四区五区中文 | 日韩美女视频19| **网站欧美大片在线观看| 亚洲免费观看高清完整版在线| 亚洲视频资源在线| 国产精品久久久久永久免费观看| 国产三级精品三级| 国产精品国产三级国产普通话三级 | 欧美精品123区| 日韩午夜三级在线| 精品国产免费一区二区三区四区| 精品国产人成亚洲区| 久久久亚洲欧洲日产国码αv| 国产拍揄自揄精品视频麻豆| 国产精品久久久久婷婷| 亚洲欧美激情一区二区| 亚洲国产va精品久久久不卡综合| 日韩成人av影视| 久久99久久久久久久久久久| 激情另类小说区图片区视频区| 奇米影视一区二区三区小说| 国产精品系列在线观看| 一本色道亚洲精品aⅴ| 91蜜桃在线免费视频| 在线成人免费视频| 久久精品人人做人人爽97 | 久久天天做天天爱综合色| 日本一区二区三区dvd视频在线| 国产精品国产三级国产普通话99| 一区二区三区精品久久久| 亚洲久本草在线中文字幕| 亚洲高清在线精品| 国产一区二区三区四区五区入口| 99国产精品国产精品毛片| 欧美日韩aaaaa| 国产午夜精品一区二区三区视频 | 国产91精品精华液一区二区三区 | 尤物av一区二区| 日本系列欧美系列| av不卡在线观看| 日韩免费视频一区二区| 亚洲视频每日更新| 九九九精品视频| 91丨九色丨黑人外教| 久久久一区二区| 日韩黄色免费电影| 色中色一区二区| 久久精品人人做人人综合| 亚洲激情男女视频| 国产麻豆精品95视频| 欧美色综合网站| 国产精品成人一区二区艾草 | 亚洲资源中文字幕| 激情综合五月婷婷| 欧美人与z0zoxxxx视频| 亚洲欧洲精品天堂一级| 久久99精品网久久| 欧美久久一区二区| 久久久久国色av免费看影院| 亚洲一区成人在线| 成人av在线一区二区三区| 精品毛片乱码1区2区3区| 久久在线免费观看| 全国精品久久少妇| 欧美日本一区二区三区| 一区二区三区久久久| 99r精品视频| 欧美韩日一区二区三区| 捆绑变态av一区二区三区| 欧美日韩aaaaa| 亚洲成人先锋电影| 在线观看日韩电影| 国产精品看片你懂得| 韩国女主播成人在线观看| 欧美一级精品在线| 欧美96一区二区免费视频| 精品视频色一区| 亚洲素人一区二区| 一本久久精品一区二区| 亚洲三级在线播放| 99久久精品国产一区| 亚洲色图欧美偷拍| 91高清视频在线| 亚洲综合一二区| 欧美精品亚洲二区| 奇米影视一区二区三区| 欧美精品一区二区久久婷婷|