Перейти к содержанию

a1000

Members
  • Постов

    2
  • Зарегистрирован

  • Посещение

Электроника

  • Стаж в электронике
    Менее года

Достижения a1000

Новичок

Новичок (1/14)

  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Нашел где накосячил. Предделитель не правильно установил. Надо TCCR1B - 0b00000101
  2. Нужно организовать прерывание на таймере 1 по совпадению OCR1A. Тактовая частота 8 МГц, используем предделитель 1024, возьмём период в 1 сек. Рассчитываю значение для OCR1A 8000000 / 1024 = 7812,5 Берём 7812 или 0х1Е84 Заносим в OCR1A ; настройка OCR1A ldi Temp1,0x1E out OCR1AH,Temp1 ldi Temp1,0x84 out OCR1AL,Temp1 Остальные регистры TCCR1A - 0b00000000 TCCR1B - 0b00000100 TIMSK и TIFR- 0b00010000 В прерывании, для тестирования, просто инвертируем состояние 0 пина порта D и сбрасываем TCNT1 TIM1_COMPA: ;прерывание по совпадению OCR1A sbic PORTD, 0 ; проверка состояния светодиода rjmp NULL ; переход если включён ldi Temp1, 0b00000001 rjmp VIVOD ; переход на вывод NULL: ldi Temp1, 0b00000000 VIVOD: out PORTD, Temp1 ; сбрасываем счётчик в ноль ldi Temp1,0b00000000 out TCNT1H,Temp1 out TCNT1L,Temp1 reti Но светодиод, подключенный к D0 моргает с частотой раза в 2-3 чаще. Подскажите где я накосячил.
×
×
  • Создать...