首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用arduino mega 2560的计数器定时器

使用arduino mega 2560的计数器定时器
EN

Stack Overflow用户
提问于 2014-01-06 13:10:33
回答 1查看 7.5K关注 0票数 2

我使用arduino mega 2560,我想使用计时器1的计数器,我给计时器1计数器的引脚11上的时钟100 Hz,我也配置了计时器-1寄存器B和设置CS(时钟选择)位,但由于某种原因它不能工作。下面是我的代码,如果有人能在这里指出我的错误,或者修改代码来纠正它,或者给出任何建议,我将不胜感激。我也附上了这份文件。

代码语言:javascript
运行
复制
int val;
void setup()
{
startCounting();
}

void loop()
{ 
  val =TCNT1;
  Serial.println(val);
}

void startCounting()  //Encoder FrequencyCounter Start
{
/*  Timer 1 would be used for frequency counter. Using event counter mode of timer.*/ 

TCNT1=0x00;          //Reset Timer 1 Counter.
TCCR1A=0x00;
TCCR1B=0x07;       // To set all pins CSn2,CSn1,CSn0 to use external clock source on Tn Pin. Clock on rising edge.
                                    //pin 11 for timer 1 will be used as an external clock.
}
EN

Stack Overflow用户

发布于 2014-01-06 22:15:35

当您声明并拥有CSn2:0 =7时,您正在尝试使用外部时钟源。但是,这种模式下的输入引脚不是OCnA (OC1A=pin 11),而是Tn,后者将驱动CLK(Tn)和增量TCNTn。

不幸的是,在ArduinoMega上只有T0(D38)和T5(D47)是在主板上实现的。其余的T1,2,3和4不是从芯片本身路由。

!别惹Timer0。核心库使用它。

您可以尝试移动到Timer5,并在D47上使用T5作为100 the的输入。

如果您试图创建一个频率计数器,我建议使用输入捕获。有关示例,请参见InputCapture.ino

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20950769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档