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

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

?? main.c

?? EM4094示例Firmware
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
          sof = 2; 
        } else {
          if ((bit_pos == 1) && (z >= (uint8_t)(pulsesPerBit2+TOLERANCE)))
            store_bit(1, 0);
          store_bit(0, 1);
        }
      } else {
        if ((bit_pos == 1) && (z >= (uint8_t)(pulsesPerBit2+TOLERANCE)))
          store_bit(1, 0);
        store_bit(0, 1);
      }
    } else {                          //raw capture

      capt >>= 5;
      store_pulse(capt);              //x
      store_pulse(z);

    }

    old_capture = icr;
  }

  last_capture = icr;
}

// ==================================================================

void dual_subcarrier_polling(void) {

  //do not use local register variables

  uint8_t z;
  uint16_t capt;
  uint16_t icr;
  uint8_t toggle;
  uint8_t x;
  uint8_t last_x;
  uint8_t y;
  uint8_t yvld;
  uint8_t correction;

  last_z = TCNT0;
  last_x = 0;
  correction = 0;
  toggle = 9 * (pulsesPerBit >> 3);

  while ( TIMSK & (1<<TOIE2) ) {          //wait until done

    z = TCNT0 - last_z;  
    if (z >= toggle) {

      icr = ICR1;   

      capt = icr - last_capture;
      x = capt >> 3;                      //(y/8)

      if ((debug_mode & 1) == 0) {        //decode

        if (capt < 2*halfDataRate) {      //if the half bit period is not so long

          x += correction;                //apply correction
          correction = 0;

          if (bit_pos == 0) {             //resolve the bit for each captured pair

            if (pulsesPerBit == 8) {      //high data rate

              if (last_x + x > 77) {        //one more pulse is measured, save it to next bit period
                correction = 4;
                x -= correction;
              } 

//              store_pulse( last_x + x );

              y = 0;
              if ( (last_x <= 0x27) && (x <= 0x27) ) y = 1;

              yvld = 0;
              if ((last_x >= 0x28) && (last_x <= 0x2A) && (x == 0x25)) yvld = 1;

//              store_pulse(last_x);
//              store_pulse(x);

              store_bit( y, yvld );
          
            } else {                      //low data rate

              if ((uint16_t)last_x + x > 0x130) {        //one more pulse is measured, save it to next bit period
                correction = 4;
                x -= correction;
              } 

              y = 0;
              if ( (last_x <= 0xA0) && (x <= 0xA0) ) y = 1;

              yvld = 0;
              if ((last_x >= 0xA1) && (last_x <= 0x2A) && (x == 0x25)) yvld = 1;

//              store_pulse(last_x);
//              store_pulse(x);

              store_bit( y, yvld );

            }

          }
          
        } else {                          //quite good pause? => error
          store_bit(0, 1);                //
        }

      } else {                            //raw data capture

        if (capt < 2*halfDataRate) {     

          x += correction;                //apply the correction
          correction = 0;

          //raw capture
          store_pulse(z);                 //z

          if (bit_pos == 0) {             //resolve the correctuib for each captured pair
            if (pulsesPerBit == 8) {      //high data rate
              if (last_x + x > 77) {      //one more pulse is measured, save it to next bit period
                correction = 4;
                x -= correction;
              }
            } else {                      //low data rate

            }
          }

          store_pulse(x);                 //y

        } else {                          //quite good pause? => error

          store_pulse(0xFF);              //
          store_pulse(capt);
          store_pulse(capt>>8);
        }

//#ifdef DEBUG
//        PORTC = PINC ^ (1<<DBG_TRANS);
//#endif
      }

      bit_pos ^= 1;
      toggle = (bit_pos | 8) * (pulsesPerBit >> 3);
      if (correction != 0) toggle--;

      last_z += z;
      last_x = x;
      last_capture = icr;
    }
  }

  //there is no information about EOF
  //data validity check is left on CRC
  sof = 2;


#if 0
//#ifdef DEBUG
  UDR = capture_cnt;
  while (!(UCSRA & (1<<UDRE)))
    {}; 
  UDR = dbg_cnt;
  while (!(UCSRA & (1<<UDRE)))
    {}; 
  UDR = x;
  while (!(UCSRA & (1<<UDRE)))
    {}; 
  UDR = TCNT0;
  while (!(UCSRA & (1<<UDRE)))
    {}; 
  UDR = last_z;
  while (!(UCSRA & (1<<UDRE)))
    {}; 
#endif
}


// ==================================================================
// Down Link setup function
// Requires: maxCaptureTimeLow and maxCaptureTimeHi
//   (located here instead of level2 because of register variables)

void Capture(uint8_t style) {

  uint8_t last_cnt;

  TCCR0 = 0;                                //disable Counter0
  TCCR1B = 0;                               //disable Counter1

  pulsesPerBit2 = 2 * pulsesPerBit;
  pulsesPerBit3 = 3 * pulsesPerBit;

  if (!bufferClean) ClearCaptureBuffers();
  bufferClean = 0;

  previous_delay = 0;
  captured_bit_count = 0;                   //reset some values
  capture_cnt = 0;
  bit_pos = 1;
  sof = 0;
  last_valid = 0;
  last_capture = TCNT1;                     
  old_capture = TCNT1;

  currentMaxTimeHi = ~maxCaptureTimeHi;     //set hi byte of maximum capture timer2 timeout
  TCNT2 = ~maxCaptureTimeLow;               //set low byte timer2 timeout
  TCNT0 = 0;                                //clear timer0
  TIFR = TIFR | (1<<ICF1) | (1<<TOV1) | TIFR | (1<<OCF2) | (1<<TOV2);      //clear pending interrupts

  sbi( TIMSK, TOIE2);                       //enable timer2 overflow for both
  if((decode_number & 1) == 0) {
    sbi( TIMSK, TICIE1 );                   //enable timer1 capture for ASK only
  }

  enable_capture = style;                   //set capture style
  TCCR0 = 6;                                //external clock source, falling edge
  TCCR1B = counter1set;                     //run! at clk
  TCCR2 = 3;                                //run! at clk/32

#if 0
//#ifdef DEBUG
  PORTD = PIND ^ (1<<DBG_FORWARD);
#endif

  if((decode_number & 1) == 0) {
    while ( TIMSK & (1<<TOIE2) )            //wait until done for ASK
      {}
  } else {
    dual_subcarrier_polling();              //do polling until done for FSK
  }

  TCCR0 = 0;                                //stop all
  TCCR1B = 0;
  TCCR2 = 0;
  TIMSK = TIMSK & (0xFF ^ ((1<<TICIE1) | (1<<TOIE2))); //disable timer1 capture, timer2 overflow
  TIFR = TIFR | (1<<ICF1) | (1<<TOV1) | TIFR | (1<<OCF2) | (1<<TOV2);      //clear pending interrupts

//#if 0
#ifdef DEBUG
  PORTD = PIND ^ (1<<DBG_FORWARD);
#endif

  last_cnt = TCNT0;  
  if (debug_mode != 1) {

    while (captured_bit_count != 0)           //flush captured bits
      store_bit(0,1);

  } else {
    if ((decode_number & 1) == 0)             //store number of pulses of last chunk for ASK
      store_pulse(last_cnt);
    else                                      //flush captured pulses for FSK
      store_pulse((uint8_t)(last_cnt - last_z));
  }

  if((decode_number & 1) == 0) {              //ASK EOF resolution
    if ((sof == 1) && (last_cnt >= (3*pulsesPerBit-TOLERANCE)) && (last_cnt <= (3*pulsesPerBit+TOLERANCE)))   //kludge for very long delays
      sof = 2; 
  }

  enable_capture = 0;
}

// ==================================================================
// Wait

void Wait(uint16_t period) {

  period = -period;
  TCCR2 = 0;                                //disable Counter2
  TCNT2 = period;                           //set timer with initial time

  TIFR = TIFR | (1<<OCF2) | (1<<TOV2);      //clear pending interrupts
  currentMaxTimeHi = period >> 8;
  sbi(TIMSK, TOIE2);                        //enable overflow

  TCCR2 = 3;                                //run! at clk/32
  while ( TIMSK & (1<<TOIE2) )              //wait until done
    {}
  TCCR2 = 0;                                //stop

#if 0
//#ifdef DEBUG
  cbi(PORTC, DBG_TRANS); 
  sbi(PORTC, DBG_TRANS); 
  cbi(PORTC, DBG_TRANS); 
#endif
}


// ==================================================================
// ==================================================================
// INTERRUPT ROUTINES
// ==================================================================

SIGNAL (SIG_OVERFLOW2)
{
  if (currentMaxTimeHi++ == 0xFF) {                 //hi datarate
    TIMSK = 0;                                    //finished, disable all
  }
}

// ==================================================================
// ==================================================================
// ==================================================================
int main(void)
{

  SetLEDOn();   

  watchdog_reset = bit_is_set(MCUCSR, WDRF);     //capture watchdog resets

  avr_ini();			                 // initialization

  main_receiver();

  return(0);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频一区三区九区| 国产日韩影视精品| 欧美性猛交一区二区三区精品| 国产精品1024| 国产高清精品网站| 国产乱码精品一区二区三 | 99热在这里有精品免费| 国产精品自拍网站| 国产精华液一区二区三区| 国产精品综合一区二区| 国产美女精品人人做人人爽| 国产精品一区2区| 国产成人亚洲综合a∨婷婷| 成人综合在线视频| 91麻豆.com| 欧美性猛交xxxxxx富婆| 欧美日韩国产成人在线免费| 欧美日韩国产综合一区二区| 欧美一区二区三区四区久久| 精品日韩欧美在线| 久久免费视频一区| 国产精品免费久久| 亚洲精品乱码久久久久久黑人 | 久久国产婷婷国产香蕉| 久久国产精品99精品国产| 国产一区二区三区在线观看精品 | 一区二区三区欧美在线观看| 中文字幕亚洲不卡| 亚洲综合区在线| 另类小说图片综合网| 国产精品123| 一本色道亚洲精品aⅴ| 欧美日韩你懂得| 精品欧美乱码久久久久久| 亚洲国产精品t66y| 亚洲综合成人网| 久久99热国产| 91啪亚洲精品| 欧美一区二区久久| 中文字幕免费观看一区| 一区二区三区免费在线观看| 日韩电影在线免费看| 国产黄色精品视频| 日本高清视频一区二区| 欧美一区二区二区| 国产精品污www在线观看| 一片黄亚洲嫩模| 激情都市一区二区| 色偷偷88欧美精品久久久| 欧美电视剧在线看免费| 亚洲素人一区二区| 日韩不卡免费视频| 91在线观看污| 欧美成人精品1314www| 日韩美女视频一区| 美女脱光内衣内裤视频久久网站| av一本久道久久综合久久鬼色| 在线播放视频一区| 国产精品污污网站在线观看| 日韩va欧美va亚洲va久久| 成年人网站91| 2023国产精品自拍| 午夜国产精品一区| 不卡一区在线观看| 亚洲精品在线电影| 亚洲图片自拍偷拍| 成人中文字幕在线| 精品av综合导航| 亚洲va中文字幕| 99精品视频一区| 精品国产免费一区二区三区香蕉| 一区二区不卡在线播放| 大胆欧美人体老妇| 日韩欧美成人一区二区| 一个色妞综合视频在线观看| 国产精品自产自拍| 欧美日韩国产电影| 亚洲欧美国产毛片在线| 国产高清久久久| 精品国产一区二区国模嫣然| 日韩和欧美一区二区三区| 色婷婷久久综合| 久久嫩草精品久久久精品| 奇米四色…亚洲| 欧美精品aⅴ在线视频| 亚洲精品日日夜夜| 99riav一区二区三区| 久久精品男人天堂av| 麻豆精品一二三| 欧美一区二区三区免费视频 | 国产69精品久久99不卡| 日韩一区二区在线看| 天天综合日日夜夜精品| 在线观看av一区二区| 日韩伦理av电影| av一本久道久久综合久久鬼色| 亚洲国产高清不卡| 国产精品18久久久| 国产日产亚洲精品系列| 国产精品一二一区| 久久久久久久久97黄色工厂| 久久99精品久久久| 欧美电影免费观看完整版| 日本特黄久久久高潮| 欧美精品aⅴ在线视频| 日韩精品免费视频人成| 欧美日韩高清一区二区| 亚洲一区在线播放| 色婷婷久久久亚洲一区二区三区| 最新国产成人在线观看| 成人免费视频app| 国产精品久久久久久福利一牛影视 | 成人高清免费观看| 国产精品久久综合| av一本久道久久综合久久鬼色| 国产精品婷婷午夜在线观看| 成人av先锋影音| 亚洲视频每日更新| 色狠狠av一区二区三区| 一级精品视频在线观看宜春院| 欧美视频完全免费看| 性做久久久久久免费观看| 欧美电影在线免费观看| 秋霞电影一区二区| 欧美tickling网站挠脚心| 国产剧情在线观看一区二区| 国产精品污污网站在线观看| 91视频xxxx| 婷婷国产在线综合| 欧美不卡视频一区| 国产成人在线观看| 综合网在线视频| 在线观看视频一区二区| 青青草原综合久久大伊人精品优势| 欧美一区二区日韩| 国产精品一区2区| 亚洲精品少妇30p| 日韩一区二区麻豆国产| 国产一区二区福利视频| 国产精品另类一区| 欧美私模裸体表演在线观看| 日本不卡中文字幕| 欧美国产欧美亚州国产日韩mv天天看完整| 成人av网站免费观看| 亚洲综合色自拍一区| 日韩视频在线一区二区| 粉嫩av亚洲一区二区图片| 亚洲精品日韩专区silk| 日韩免费成人网| 99久久精品免费| 日韩电影免费在线观看网站| 国产亚洲精品久| 欧美三级资源在线| 国产成人av自拍| 五月婷婷久久综合| 国产日本欧美一区二区| 欧美三级电影在线观看| 精品一区二区在线视频| 成人免费在线播放视频| 91精品国产91热久久久做人人| 成人晚上爱看视频| 免费在线观看成人| 亚洲精品成人悠悠色影视| 精品日韩在线观看| 欧美色国产精品| 成人伦理片在线| 免费看欧美女人艹b| 亚洲欧美激情插| 久久久不卡影院| 欧美精品乱码久久久久久 | 久久久不卡影院| 在线电影国产精品| 成人免费va视频| 狠狠色狠狠色综合| 亚洲一区av在线| 成人免费小视频| 国产日韩高清在线| 日韩精品中午字幕| 在线精品视频一区二区| 国产福利视频一区二区三区| 日韩va亚洲va欧美va久久| 亚洲精品免费电影| 欧美国产成人精品| 精品免费视频一区二区| 精品视频999| 色美美综合视频| 成人免费视频网站在线观看| 国内成+人亚洲+欧美+综合在线| 亚洲大片免费看| 亚洲精品一卡二卡| 国产精品无码永久免费888| 精品国产乱子伦一区| 欧美理论片在线| 欧美在线一区二区三区| 91片黄在线观看| eeuss鲁片一区二区三区| 国产精品一区二区视频| 裸体一区二区三区| 天堂va蜜桃一区二区三区漫画版| 亚洲黄色性网站|