Timer Arduino Mega 2560定时器中断
我试图用Arduino Mega 2560和A4988s控制两台步进电机。由于A4988需要一个脉冲来运行,我决定使用定时器中断。我使用的是定时器4和定时器5(没有特别的理由选择它们,如果它们不合适,请让我知道)。我不熟悉微控制器,对定时器有一些基本的了解。我根据我目前的知识编写了以下简单代码,但它并没有像我预期的那样工作。我在引脚36和37上添加了两个LED(在使用电机之前,我使用LED进行验证),这些LED以相同的速度闪烁。但其中一个LED应比另一个LED闪烁更快。请指导我解决此问题Timer Arduino Mega 2560定时器中断,timer,arduino,microcontroller,interrupt,Timer,Arduino,Microcontroller,Interrupt,我试图用Arduino Mega 2560和A4988s控制两台步进电机。由于A4988需要一个脉冲来运行,我决定使用定时器中断。我使用的是定时器4和定时器5(没有特别的理由选择它们,如果它们不合适,请让我知道)。我不熟悉微控制器,对定时器有一些基本的了解。我根据我目前的知识编写了以下简单代码,但它并没有像我预期的那样工作。我在引脚36和37上添加了两个LED(在使用电机之前,我使用LED进行验证),这些LED以相同的速度闪烁。但其中一个LED应比另一个LED闪烁更快。请指导我解决此问题 voi
void setup() {
DDRC |= B00000011;
cli();
OCR4A = 15624;
OCR5A = 7812;
TCCR4B = _BV(WGM42) | _BV(CS40) | _BV(CS42);
TCCR5B = _BV(WGM52) | _BV(CS50) | _BV(CS52);
TIMSK4 |= (1 << OCIE4A);
TIMSK5 |= (1 << OCIE5A);
sei();
}
void loop() {
}
ISR(TIMER4_COMPA_vect)
{
PORTC ^= B00000001;
}
ISR(TIMER5_COMPA_vect)
{
PORTC ^= B00000010;
}
void setup(){
DDRC |=B00000011;
cli();
OCR4A=15624;
OCR5A=7812;
TCCR4B=_BV(WGM42)| u BV(CS40)| u BV(CS42);
TCCR5B=_BV(WGM52)| u BV(CS50)| u BV(CS52);
TIMSK4 |=(1 arduino通常初始化所有计数器以准备PWM,因此我肯定会重新初始化所有相应的寄存器。并且可能尝试一次只测试其中一个。