#define F_CPU 8000000UL
#include <avr/io.h>
/*
* main -- Main program
*/
int main(void)
{
/* Set OC1A pin to be an output */
DDRD|=(1<<5);
/* Set output compare register value */
OCR1A = 4000;
/* Set timer counter control registers A and B so that
* - mode is - clear counter on compare match
* - output compare match action is to toggle pin OC1A
* - correct clock prescale value is chosen.
* TCCR1C can just stay as default value (0).
*/
TCCR1A |=(1<<COM0A0) | (1<<WGM12);
TCCR1B |= (0<<CS12) | (1<<CS11) | (1<<CS10) | (1<<WGM12) | (1<<WGM12);
while(1){
}
}
У меня есть светодиод, связанный с портом OC1A, но он никогда не вспыхивает, какая-то помощь будет высоко оценена.таймеры в avr-c atmega324a
Я просмотрел лист данных и не понимаю, что еще нужно сделать, чтобы сделать светодиодную вспышку, я уверен, что это было бы просто для кого-то с любым знанием c.
У Вас нет абсолютно никакой логики, что я можно увидеть, чтобы на самом деле сделать светодиодную вспышку (включение и выключение и т. д.). Начните с того, что перед тем, как играть с таймерами, загорится светодиод. – rost0031
@ rost0031 Он пытается заставить светодиод мигать с помощью аппаратных таймеров. – duskwuff
Хорошо, я вижу это сейчас. OP, вы уверены, что светодиод не мигает так быстро, что вы его не видите? Попробуйте отключить таймер и посмотрите, горит ли светодиод, вручную переключая выход. – rost0031