Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATiny2313A-PU и тактовая частота
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
dotnot
Здравствуйте! Прошу прощение за подробность изложения проблемы, очень хочется разобраться. Это моя первая попытка практической работы с АВР, до этого была практика только в универе на готовом стенде.
Есть схема из книги Ревича

Программа (урезал по максимуму что бы показать только суть проблемы):
CODE
.include "2313def.inc"

.def temp = r16
.def CountTime = r17
.def leds = r18

rjmp RESET
reti
reti
reti
reti
reti
rjmp TIM0
reti
reti
reti
reti

; timer0 int
TIM0:
dec CountTime
breq div256
reti
div256:
inc leds
out PORTB, leds
reti

RESET:
;настройка ног порта на выход
ldi temp, 0xFF
out DDRB, temp

;очистка регистров
clr leds
clr CountTime

;разрешаем прерывания от Таймера 0
ldi temp, (1<<TOIE0)
out TIMSK, temp

ldi temp,0b011;предделитель на 64
out TCCR0,temp

sei;Разрешить обработку прерываний

infLoop:
nop
rjmp infLoop


Фьюзы для выбора тактовой частоты из даташита на тиньку:
Раз:

Два(режимы для кварца):


Мои фьюзы (для начала пробуем кварц):

В этой морде к дудке галочками обозначены запрограммированные биты(то есть нулевые)
Итак чего я жду:
Прерывание от таймера 0 наступает каждые 256 тактов, и это ещё поделено на 256 однобайтным счётчиком (строки в прерывании dec CountTime, breq div256). И ещё домножаем предделитель, должно получиться 256*256*64 и того 4194304, учитывая то что частота 4000000, то время изменения состояния светодиода должно быть около секунды (4194304/4000000).
Но на практике это время получилось намного больше. Глядя на часы я примерно так определил что это около 8и секунд. Если поделить 4194304 на 8 получаем тактирующую частоту микроконтроллера примерно 0.5 МГц

Далее я продолжил эксперимент и поставил предделитель на 256 (ldi temp,0b100), померил время вышло около 33 сек.
По этим данным частота, которая тактирует МК составляет 256*256*256/33, что опять же около 0.5 Мгц
Я подумал что неправильно подключил кварц и попробовал поменять фьюзы на встроенный 4 Мгц

Время опять получилось примерно 30 сек, то есть тот же результат.
Выходит что МК всегда тактируется полумегагерцовой частотой, или я не правильно считаю (но пример из Ревича практически один в один даёт тот же результат)
Заранее спасибо за помощь.
rx3apf
Цитата(dotnot @ May 30 2012, 00:47) *
Выходит что МК всегда тактируется полумегагерцовой частотой,

А имя фьюза "CKDIV8" ни на какие мысли не наводит ?
dotnot
Спасибо большое, то что надо wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.