【发布时间】:2018-07-10 08:11:39
【问题描述】:
有什么方法可以计算数字引脚上输入方波信号的频率?还是我应该完全依赖pulseIn() 函数?
我已经像这样写了我的代码的ISR
ISR(TIMER1_OVF_vect){
count++;
}
ISR(TIMER1_CAPT_vect){
value = TCNT1;
TCNT1 = load;
}
并尝试在串行监视器上打印值(变量:value 和 load 是 volatile 变量)但它只显示零。我无法弄清楚它出了什么问题。!
程序的声明如下
const uint16_t freqPin = PD5;
const uint16_t load = 0;
volatile unsigned long int count=0;
volatile unsigned int value=0;
void setup()
{
Serial.begin(9600);
DDRD &= ~(1<<freqPin);
TCCR1A = 0;
TCCR1B &= B11111000 | B00000111;
TCNT1 = load;
TIMSK1 |= (1<<ICIE1);
TIMSK1 |= (1<<TOIE1);
TIFR1 |= (1<<TOV1);
sei();
}
请帮忙。提前致谢
【问题讨论】: