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

Работа нескольких таймеров в atmega128

Инициализирую таймер 2 кодом

outb (0,TCCR2);

outb (0, TCNT2);

outb (0x06,TCCR2);

Далле разрешается прерывание по перепонению,но в независимости от предделителя(4,2,6 ..) таймер переполняется за ~1мс.

 

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

 

Вопрос при инициализации второго таймера надо как то мудрить с предделителями?

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


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

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

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


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

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

 

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

Изменено пользователем Kris2007

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


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

Вопрос при инициализации второго таймера надо как то мудрить с предделителями?

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

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


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

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

 

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

 

#ifndef outb
    #define    outb(addr, data)    addr = (data)
#endif

 

т.е. вы перепутали местами адрес и данные как вам уже сказали.

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


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

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

 

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

 

А вопрос простой- какаго .. не работает?:)

в TCCR2 именно то что я записываю.

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

Изменено пользователем Kris2007

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


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

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

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


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

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

 

Да с 6 я погорячился:)

т.е. он у меня и при задании внешнего тактирования и его отсутствии прерывался по переполнению каждую 1 мс....:)

 

м-да... похоже не включается предделитель

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


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

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

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


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

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

 

1мс(чуть меньше) вижу на осцилографе,устанавливая в 1 свободный вывод в обработчике прерывания.

outb, ну долго его тут искать - много файлов + ось. Нормально все с ним! Тут outb везде используется в таком виде и в сделанных уже проэктах в таком виде.

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


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

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

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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