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

 
 
 
Reply to this topicStart new topic
> Работа нескольких таймеров в atmega128
Kris2007
сообщение Jul 31 2007, 08:56
Сообщение #1


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

Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193



Инициализирую таймер 2 кодом
outb (0,TCCR2);
outb (0, TCNT2);
outb (0x06,TCCR2);
Далле разрешается прерывание по перепонению,но в независимости от предделителя(4,2,6 ..) таймер переполняется за ~1мс.

В программе есть еще таймер 1, а активно используется (он включен в ОС).

Вопрос при инициализации второго таймера надо как то мудрить с предделителями?
Go to the top of the page
 
+Quote Post
GDI
сообщение Jul 31 2007, 10:18
Сообщение #2


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



outb это у вас макросы какие то или функции? местами регистр и значение не перепутали случайно?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Kris2007
сообщение Jul 31 2007, 10:33
Сообщение #3


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

Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193



Цитата(GDI @ Jul 31 2007, 14:18) *
outb это у вас макросы какие то или функции? местами регистр и значение не перепутали случайно?


нет все нормально значения в регистры пишутся я проверял.

Сообщение отредактировал Kris2007 - Jul 31 2007, 10:34
Go to the top of the page
 
+Quote Post
bzx
сообщение Jul 31 2007, 10:43
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



Цитата(Kris2007 @ Jul 31 2007, 12:56) *
Вопрос при инициализации второго таймера надо как то мудрить с предделителями?

А вопрос то в чём заключается? Непонятно для чего предделитель чтоли? Или как сделать прерывания с заданным интервалом?


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post
lech196
сообщение Jul 31 2007, 11:04
Сообщение #5





Группа: Новичок
Сообщений: 14
Регистрация: 6-02-07
Из: Минск
Пользователь №: 25 110



Цитата(Kris2007 @ Jul 31 2007, 13:33) *
нет все нормально значения в регистры пишутся я проверял.


Если вы используете в своём проекте библиотеку AVRlib и подключили файл avrlibdefs.h (AVRlib global defines and macros) то это кажется странным, т.к. внутри файла эти макросы объявлены вот так:

Код
#ifndef outb
    #define    outb(addr, data)    addr = (data)
#endif


т.е. вы перепутали местами адрес и данные как вам уже сказали.
Go to the top of the page
 
+Quote Post
Kris2007
сообщение Jul 31 2007, 11:50
Сообщение #6


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

Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193



Цитата(lech196 @ Jul 31 2007, 15:04) *
Если вы используете в своём проекте библиотеку AVRlib и подключили файл avrlibdefs.h (AVRlib global defines and macros) то это кажется странным, т.к. внутри файла эти макросы объявлены вот так:


Не использую,тут свои библиотеки (дописанные и переписанные) и макрос опрелен именно в таком порядке(ну вот сделали так и все!).

А вопрос простой- какаго .. не работает?smile.gif
в TCCR2 именно то что я записываю.
Тут в даташите вычитал что блок предделителей отчасти общий для всех таймеров, никаких сборос этого блока не надо при включении нового таймера?

Сообщение отредактировал Kris2007 - Jul 31 2007, 11:50
Go to the top of the page
 
+Quote Post
GDI
сообщение Jul 31 2007, 12:31
Сообщение #7


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Вообще то для Т2 загрузка значения 0х06 в TCCR2 - это включение внешнего тактирования(как и 0х07) может в этом проблема?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Kris2007
сообщение Jul 31 2007, 13:09
Сообщение #8


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

Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193



Цитата(GDI @ Jul 31 2007, 16:31) *
Вообще то для Т2 загрузка значения 0х06 в TCCR2 - это включение внешнего тактирования(как и 0х07) может в этом проблема?


Да с 6 я погорячилсяsmile.gif
т.е. он у меня и при задании внешнего тактирования и его отсутствии прерывался по переполнению каждую 1 мс....smile.gif

м-да... похоже не включается предделитель
Go to the top of the page
 
+Quote Post
GDI
сообщение Jul 31 2007, 13:23
Сообщение #9


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



А откуда известно про значения в регистрах? и время 1 мс на железе получается или в симуляторе? если в симуляторе, то это ничего еще не значит. прескалер включен всегда, может все же сто то с функциями не то? с outb? можно на код их взглянуть?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Kris2007
сообщение Jul 31 2007, 14:41
Сообщение #10


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

Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193



Цитата(GDI @ Jul 31 2007, 17:23) *
А откуда известно про значения в регистрах? и время 1 мс на железе получается или в симуляторе? если в симуляторе, то это ничего еще не значит. прескалер включен всегда, может все же сто то с функциями не то? с outb? можно на код их взглянуть?


1мс(чуть меньше) вижу на осцилографе,устанавливая в 1 свободный вывод в обработчике прерывания.
outb, ну долго его тут искать - много файлов + ось. Нормально все с ним! Тут outb везде используется в таком виде и в сделанных уже проэктах в таком виде.
Go to the top of the page
 
+Quote Post
GDI
сообщение Jul 31 2007, 15:08
Сообщение #11


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



может Ось мешает блокируя прерывания? а сколько должно получиться время прерывания от Т2? Что за ось стоит?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 22:32
Рейтинг@Mail.ru


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