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

Будет частота 0,999993283, разве плохо?
По мне, Плохо. И не частота, а период.

...поди надо кварц специально отобранный...
Частота взята для примера. Вот так студия отрабатывает такую частоту. Ничего не мешает в строке задания частоты установить требуемую и получить такой же результат.

post-26773-1419241260_thumb.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не проще использовать 16-ти разрядный в режиме CTC ?

 

в моем не проще, все равно счет нужен. мне нужно не только считать по 1с. но минимум 25 раз в секунду изменять состояние каждого табло, проще сделать два счетчика, в первом меняем инфу на табло, во втором считаем

 

Ваш код дает интервал 1 секунды, за счёт сравнений в обработчике, на 39мс больше.

 

чем обусловлена эта задержка?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Каждое прерывание Т0, в котором дополнительно чистится TCNT0, наращиваются и сравниваются с уставками счетчики приводит к тому, что обработка идёт не через 256 тактов, а через 266. Вот отсюда и погрешность формирования интервала.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в котором дополнительно чистится TCNT0

 

я выкинул это из кода, оно мне не нужно было, это я ставил по типу вдруг что изменится...))

 

без этого какова погрешность будет?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с Си не дружу) после того как gcc танцы с бубном устраивать заставлял)))))

Значит попробуйте поработать в IAR. Я с ним сразу подружился.

Пример на асме:

//========================================================================
.equ ST_TCNT	= TCNT0
.equ ST_TIMSK	= TIMSK
.equ ST_OCIE	= OCIE0
.equ ST_OCR		= OCR0
.equ ST_TCCR	= TCCR0
.equ CS0		= CS00
.equ CS1		= CS01
.equ CS2		= CS02
//========================================================================

.cseg

//========================================================================
.macro	Init_System_Timer
clr		r16
out		ST_TCNT, r16
in		r16, ST_TIMSK
sbr		r16, 1<<ST_OCIE
out		ST_TIMSK, r16
outi	ST_OCR, (XTAL/64/1000)
in		r16, ST_TCCR
sbr		r16, 1<<CS0 | 1<<CS1
out		ST_TCCR, r16
.endmacro

.macro ReRun_Sys_Timer
in		r16,ST_OCR
subi	r16,-(XTAL/64/1000)
out		ST_OCR,r16
.endmacro
//========================================================================

//========================================================================
Sys_Timer_Comp:
push	r16
in		r16,SREG
push	r16

ReRun_Sys_Timer

sbr		FLAGS,1<<SYS_TICK_FLG

pop		r16
out		SREG,r16
pop		r16
reti
//========================================================================

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По мне, Плохо. И не частота, а период.

А по-моему, очень даже неплохо. Чай не для сервера ntp :) И кстати, батенька, вовсе не период, а именно частота: 7890123 / 256 / 30821

Вы то вообще нерабочий код выложили в посте от Dec 20 2014, 09:56 :) А человек Вам поверит и будет удивляться, почему не фурычит...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, действительно, период будет 256*30821=7890176/7890123=1,000006717259 секунды. Виноват, извините.

Ниже показана работа кода из указанного поста.

post-26773-1419390387_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я одного не понимаю, после первого переполнения в обработчике Ваш ret не поставит на место флаг I в регистре SREG, следовательно, все последующие переполнения не будут вызывать выполнение обработчика... Ааааа, теперь я прошу прощения, хитровыраженная запись brne pc-2 несколько сбивает с толку, особенно глядя на расставленные метки...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...