Начал читать статьи в обучалке и параллельно моделировать все то что там приводится в PROTEUS(нет возможности спаять схемку).
Дошел до примеров работы с таймерами/счетчиками http://radiokot.ru/start/mcu_fpga/avr/11/
Собственно все вроде понятно и дай думаю сделаю задержку на переключение между светодиодами в 1 секунду при работе контроллера на частоте 4 МГц.Расчеты под спойлером
Спойлер
При работе МК с частотой 4 МГц, период будет равняться 250 нсНадо подобрать частоту таймера что бы он считал 65536 чуть дольше чем 1 секунда.
65536*250 нс=16,384 мс
16,384 * 8= 131,072 мс не подходит
16,384 *64=1048,576 мс Вот оно=)
Значит 4 МГц будем делить на 64
Тактовая частота таймера в 64 раза меньше частоты кварца. Значит ее период - в 64 раза больше:
250 нс * 64 = 16 мкс.
Нам нужно, чтобы сравнение происходило в момент времени, отстоящий от запуска таймера на 1 сек.
Считаем количество тактовых импульсов, которое пройдет за это время:
1 сек /16 мкс = 62500 (10) имп. = F424 (16)
Программу переписал,числа по регистрам "разложил"
Спойлер
Код: Выделить всё
.include "2313def.inc"
.cseg
.org 0
rjmp Reset
rjmp INT_0
rjmp INT_1
rjmp Timer1_capt1
rjmp Timer1_comp1
rjmp Timer1_OVF1
rjmp Timer0_OVF0
rjmp UART_RX
rjmp UART_UDRE
rjmp UART_TX
rjmp ANA_COMP
;Reset:
INT_0:
INT_1:
Timer1_capt1:
;Timer1_comp1:
Timer1_OVF1:
Timer0_OVF0:
UART_RX:
UART_UDRE:
UART_TX:
ANA_COMP:
reti
reset:
ldi r17,255; настройка портов
out DDRB,R17
ldi r17,0b01000000;разрешить прерывание комаратора
out TIMSK,R17
ldi r17,0b00000011;тактовый сигнал СК/64
out TCCR1B,r17
;настройка компаратора 62500
ldi r17,0xF4
out OCR1AH,r17
ldi r17,24
out OCR1AL,r17
ldi R25,RamEnd ;загрузить в регистр адрес последней ячейки ОЗУ
out SPL,R25 ;вывести в SPL значение из Temp
ldi R18,0b00000001
ldi r17,0
out tcnt1h,r17
out tcnt1h,r17
sei
inf:
rjmp inf
Timer1_comp1:
ldi r17,0
out TCNT1H,r17
out TCNT1L,r17
cpi r18,0b00000001
breq Zagruzka
lsr r18
rjmp outputport
zagruzka:
ldi r18,0b10000000
outputport:
out portB,r18
retiПрограмму засунул в МК, включаю моделирование и...
диоды мигают, но с задержкой ~ 8 секунд.
Хотелось бы узнать где я допустил ошибку или идти на форум по работе с протеусом!
Настройка МК и Моделирование на картинках