реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> формирование импульса, время отличается от расчетного, при прогонке в AVR studio системное время отличается от реального
andrey videoplus
сообщение Nov 15 2010, 13:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 24-06-10
Из: Киев
Пользователь №: 58 123



Проблема в следующем: формирую импульс длительностью 2 сек. с кварцем 16МГц. Программно ганяю на AVR studio все в порядке
В реальном режиме смотрю осцилографом - около 250мс, ставлю кварц на 8 МГц - около 500 мс.
Использую mega8515, фьюзы выставил так: млад. 11111111 старш. 11001001.

Кто-то может подсказать в где и в чем искать проблему?? Или дайте ссылку где обсуждалось.
Заранее спасибо.
Go to the top of the page
 
+Quote Post
Cyber_RAT
сообщение Nov 15 2010, 14:41
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 7-12-07
Из: Могилев
Пользователь №: 33 064



хотя бы код выложите, а то не все телепаты в в этом мире...

p.s. (а может при оптимизации ваши паузы выкидываются? , но это гадание на кофейной гуще без кода)
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 15 2010, 17:33
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



CKDIV8 ??


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
arttab
сообщение Nov 16 2010, 03:08
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



если CKDIV8, то длительность вырастит в 8 раз, а не уменьшиться.

проверьте настройки симуляции - системную частоту


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Xenia
сообщение Nov 16 2010, 03:14
Сообщение #5


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Но, тем не менее, 2 сек / 250мс = ровно 8.
smile.gif
Go to the top of the page
 
+Quote Post
arttab
сообщение Nov 16 2010, 03:28
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Цитата
формирую импульс длительностью 2 сек. с кварцем 16МГц


Цитата
смотрю осцилографом - около 250мс, ставлю кварц на 8 МГц - около 500 мс


то есть, при включенном делители длительность импульса должна увеличиться в 8 раз. а чтобы она уменьшилась надо поднять частоту тактирования в 8 раз.

утро. надо попить кофе smile.gif и все встанет на свои места


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
andrey videoplus
сообщение Nov 16 2010, 10:15
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 24-06-10
Из: Киев
Пользователь №: 58 123



Спасибо всем кто откликнулся.
Вот эта сволочЪ!!! что самое интересное есть точно такая же, но формирует милисек, (загружает другое число и коэф.деления). Эти места отметил. Но она работает нормально. Осцилографом смотрю - длительность соответствует расчетным.
А эта.............. наверно что-то не доучил. Посмотрите, пожалуйста:
-----------------------------------------------------------------------------------------
в work загружаю кол.секунд для задержки, потом вызываю эту процедуру:
delay_s:
del_t_s1:
;------- установка таймера -------
ldi work3,$80
out TIMSK,work3
ldi work3,low(t_s) ----------- отличие вот здесь!!!!!!!!!!
out TCNT1L,work3
ldi work3,high(t_s) ----------- вот здесь!!!!!!!!!!
out TCNT1H,work3
;------- запуск ----------
ldi work3,$05 ----------- и вот здесь!!!!!!!!!!
out TCCR1B,work3
del_t_s2:
sbrs flag,fl_tim ---- жду флаг таймера
rjmp del_t_s2
cbr flag,fl_tim+1
dec work
brne del_t_s1
;------ остановка таймера
ldi work3,0
out TCCR1B,work3
ret
------------------------------------------------------------
Есть мысли?????

Сообщение отредактировал andrey videoplus - Nov 16 2010, 10:18
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 16 2010, 10:37
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(andrey videoplus @ Nov 16 2010, 13:15) *
Есть мысли?????

ЕСть, в счётные регистры 16- битных таймеров первым всегда загружается старший байт (high) И ТОЛЬКО ПОТОМ МЛАДШИЙ


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
andrey videoplus
сообщение Nov 16 2010, 13:11
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 24-06-10
Из: Киев
Пользователь №: 58 123



Цитата(ILYAUL @ Nov 16 2010, 13:37) *
ЕСть, в счётные регистры 16- битных таймеров первым всегда загружается старший байт (high) И ТОЛЬКО ПОТОМ МЛАДШИЙ


Да, "прошляпил", действительно есть такое в описании. Спасибо)))
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 16 2010, 14:09
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(andrey videoplus @ Nov 16 2010, 16:11) *
Да, "прошляпил", действительно есть такое в описании. Спасибо)))

Работает?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
andrey videoplus
сообщение Nov 16 2010, 14:31
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 24-06-10
Из: Киев
Пользователь №: 58 123



Да, пошло. Вроде не первый год программирую, но....... читать мануал надо всегда!!!!!

Только вот что интересно: почему в процедуре по формированию млсек, не было этого явления. Ведь там тоже 16-разрядная константа загружалась...........
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 16 2010, 16:50
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(andrey videoplus @ Nov 16 2010, 17:31) *
Да, пошло. Вроде не первый год программирую, но....... читать мануал надо всегда!!!!!

Только вот что интересно: почему в процедуре по формированию млсек, не было этого явления. Ведь там тоже 16-разрядная константа загружалась...........

А код?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
andrey videoplus
сообщение Nov 17 2010, 08:38
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 24-06-10
Из: Киев
Пользователь №: 58 123



точно такой же как выставленный выше, только загружались другие константы.
Хотя, может на осциллографе недоглядел и поставил мксек вместо млсек и подумал что все нормально.
Уже не важно, главное помогли найти причину, спасибо.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 01:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01472 секунд с 7
ELECTRONIX ©2004-2016