• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: arduino  库文件  

资源简介

flexitimer2库,arduino计时器中断库文件,适用于颜色识别模块的颜色识别过程中的计时器中断

资源截图

代码片段和文件信息

/*
  FlexiTimer2.h - Using timer2 with a configurable resolution
  Wim Leers 

  based on MsTimer2
  Javier Valencia 

  History:
    16/Dec/2011 - Added Teensy/Teensy++ support (bperrybap)
   note: teensy uses timer4 instead of timer2
    25/April/10 - based on MsTimer2 V0.5 (from 29/May/09)

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License or (at your option) any later version.

  This library is distributed in the hope that it will be useful
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not write to the Free Software
  Foundation Inc. 51 Franklin St Fifth Floor Boston MA  02110-1301  USA
*/

#include 

unsigned long FlexiTimer2::time_units;
void (*FlexiTimer2::func)();
volatile unsigned long FlexiTimer2::count;
volatile char FlexiTimer2::overflowing;
volatile unsigned int FlexiTimer2::tcnt2;

void FlexiTimer2::set(unsigned long ms void (*f)()) {
    FlexiTimer2::set(ms 0.001 f);
}


/**
 * @param resolution
 *   0.001 implies a 1 ms (1/1000s = 0.001s = 1ms) resolution. Therefore
 *   0.0005 implies a 0.5 ms (1/2000s) resolution. And so on.
 */
void FlexiTimer2::set(unsigned long units double resolution void (*f)()) {
float prescaler = 0.0;

if (units == 0)
time_units = 1;
else
time_units = units;

func = f;

#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega328P__) || defined (__AVR_ATmega1280__) || defined (__AVR_ATmega2560__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
TIMSK2 &= ~(1< TCCR2A &= ~((1< TCCR2B &= ~(1< ASSR &= ~(1< TIMSK2 &= ~(1<
if ((F_CPU >= 1000000UL) && (F_CPU <= 16000000UL)) { // prescaler set to 64
TCCR2B |= (1< TCCR2B &= ~((1< prescaler = 64.0;
} else if (F_CPU < 1000000UL) { // prescaler set to 8
TCCR2B |= (1< TCCR2B &= ~((1< prescaler = 8.0;
} else { // F_CPU > 16Mhz prescaler set to 128
TCCR2B |= ((1< TCCR2B &= ~(1< prescaler = 128.0;
}
#elif defined (__AVR_ATmega8__)
TIMSK &= ~(1< TCCR2 &= ~((1< TIMSK &= ~(1< ASSR &= ~(1<
if ((F_CPU >= 1000000UL) && (F_CPU <= 16000000UL)) { // prescaler set to 64
TCCR2 |= (1< TCCR2 &= ~((1< prescaler = 64.0;
} else if (F_CPU < 1000000UL) { // prescaler set to 8
TCCR2 |= (1< TCCR2 &= ~((1< prescaler = 8.0;
} else { // F_CPU > 16Mhz p

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1205  2012-02-14 01:16  flexitimer2库\wimleers-flexitimer2-7338cfb\examples\FlashLed\FlashLed.pde

     文件       6515  2012-02-14 01:16  flexitimer2库\wimleers-flexitimer2-7338cfb\FlexiTimer2.cpp

     文件        518  2012-02-14 01:16  flexitimer2库\wimleers-flexitimer2-7338cfb\FlexiTimer2.h

     文件         63  2012-02-14 01:16  flexitimer2库\wimleers-flexitimer2-7338cfb\keywords.txt

     目录          0  2018-12-21 16:25  flexitimer2库\wimleers-flexitimer2-7338cfb\examples\FlashLed

     目录          0  2018-12-21 16:25  flexitimer2库\wimleers-flexitimer2-7338cfb\examples

     目录          0  2018-12-21 16:25  flexitimer2库\wimleers-flexitimer2-7338cfb

     目录          0  2018-12-21 16:25  flexitimer2库

----------- ---------  ---------- -----  ----

                 8301                    8


评论

共有 条评论