SysRED_ON(); - это включается светодиод для тестирования
Он мигает где то с частотой 2Гц на глаз
а должен менять свое состояние 1кГц
причем библиотечная задержка работает правильно _delay_ms(1000); SysRED_ON(); _delay_ms(1000);
GCC, WinAVR , внешний кварц 16МГц
Где я гоню?
Либо таймеры неправильно , либо тактируется откуда-то не оттуда откуда надо
Фьюзы прикрепил
Забыл сказать на примере (lufa) USB-HID устройство планирую и вот добавляю свой функционал
(lufa же не использует для своих целей таймеры?)
Он мигает где то с частотой 2Гц на глаз
а должен менять свое состояние 1кГц
причем библиотечная задержка работает правильно _delay_ms(1000); SysRED_ON(); _delay_ms(1000);
GCC, WinAVR , внешний кварц 16МГц
Где я гоню?
Либо таймеры неправильно , либо тактируется откуда-то не оттуда откуда надо
Фьюзы прикрепил
Забыл сказать на примере (lufa) USB-HID устройство планирую и вот добавляю свой функционал
(lufa же не использует для своих целей таймеры?)
Код: Выделить всё
#define F_CPU 16000000UL
#include "avr\io.h"//описаны имена портов в том числе
#include "util\delay.h"
#include <avr/interrupt.h>
#include "GenericHID.h"
ISR( TIMER1_OVF_vect ) // 1 кГц
{
TCNT1H=0x00;//переустановка таймера
TCNT1L=0x06;
if (g==0) {SysRED_ON(); g=1;} else {SysRED_OFF();g=0;}
}
//настройка таймеров
TCCR1A=0x00;
TCCR1B=0x03; //предделитель до 250 кГц
TCNT1H=0x00;
TCNT1L=0x06;//переустановка чтобы 250кГц / (256-6) = 1кГц
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
OCR1CH=0x00;
OCR1CL=0x00;
TIMSK1=0x01;
- Вложения
-
- фьюзы.jpg
- (30.63 КБ) 434 скачивания
