atmega2650 切换 OC1C以 arduino mega 为主导

问题描述

我正在尝试使用 1024 预分频器、CTC 模式 4 切换 LED。

LED 在 1 秒后亮起并保持亮起。

我做错了什么?

#include "Arduino.h"
    
void setup() {
  //PORTB ^= (0 << PB7);
  DDRB = (1 << PB7);
  TCNT1 = 0;
  OCR1C = 100;
    
  TCCR1A = 0; // thought maybe arduino was setting other bits?
  TCCR1B = 0; //
    
  TCCR1A = (0 << COM1C1) | (1 << COM1C0) | (0 << WGM11) | (0 << WGM10);
  TCCR1B = (0 << WGM13) | (1 << WGM12) | (1 << CS12) | (0 << CS11) | (1 << CS10);
}
    
void loop() {}

更新

#include "Arduino.h"
    
void setup() {
  //PORTB ^= (0 << PB7);
  DDRB = (1 << PB7);
  TCNT1 = 0;
  
    
  TCCR1A = 0; // 
  TCCR1B = 0; //

  OCR1A = 100; // OCR1A is the CTC mode 4 top

    
  TCCR1A = (0 << COM1C1) | (1 << COM1C0) | (0 << WGM11) | (0 << WGM10);
  TCCR1B = (0 << WGM13) | (1 << WGM12) | (1 << CS12) | (0 << CS11) | (1 << CS10);
}
    
void loop() {}

清除TCCR1A和TCCR1B后设置OCR1A

正如 Mike 所说,OCR1A 是模式 4 的首选

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)