Kris2007 0 31 июля, 2007 Опубликовано 31 июля, 2007 · Жалоба Инициализирую таймер 2 кодом outb (0,TCCR2); outb (0, TCNT2); outb (0x06,TCCR2); Далле разрешается прерывание по перепонению,но в независимости от предделителя(4,2,6 ..) таймер переполняется за ~1мс. В программе есть еще таймер 1, а активно используется (он включен в ОС). Вопрос при инициализации второго таймера надо как то мудрить с предделителями? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 31 июля, 2007 Опубликовано 31 июля, 2007 · Жалоба outb это у вас макросы какие то или функции? местами регистр и значение не перепутали случайно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kris2007 0 31 июля, 2007 Опубликовано 31 июля, 2007 (изменено) · Жалоба outb это у вас макросы какие то или функции? местами регистр и значение не перепутали случайно? нет все нормально значения в регистры пишутся я проверял. Изменено 31 июля, 2007 пользователем Kris2007 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bzx 0 31 июля, 2007 Опубликовано 31 июля, 2007 · Жалоба Вопрос при инициализации второго таймера надо как то мудрить с предделителями? А вопрос то в чём заключается? Непонятно для чего предделитель чтоли? Или как сделать прерывания с заданным интервалом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lech196 0 31 июля, 2007 Опубликовано 31 июля, 2007 · Жалоба нет все нормально значения в регистры пишутся я проверял. Если вы используете в своём проекте библиотеку AVRlib и подключили файл avrlibdefs.h (AVRlib global defines and macros) то это кажется странным, т.к. внутри файла эти макросы объявлены вот так: #ifndef outb #define outb(addr, data) addr = (data) #endif т.е. вы перепутали местами адрес и данные как вам уже сказали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kris2007 0 31 июля, 2007 Опубликовано 31 июля, 2007 (изменено) · Жалоба Если вы используете в своём проекте библиотеку AVRlib и подключили файл avrlibdefs.h (AVRlib global defines and macros) то это кажется странным, т.к. внутри файла эти макросы объявлены вот так: Не использую,тут свои библиотеки (дописанные и переписанные) и макрос опрелен именно в таком порядке(ну вот сделали так и все!). А вопрос простой- какаго .. не работает?:) в TCCR2 именно то что я записываю. Тут в даташите вычитал что блок предделителей отчасти общий для всех таймеров, никаких сборос этого блока не надо при включении нового таймера? Изменено 31 июля, 2007 пользователем Kris2007 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 31 июля, 2007 Опубликовано 31 июля, 2007 · Жалоба Вообще то для Т2 загрузка значения 0х06 в TCCR2 - это включение внешнего тактирования(как и 0х07) может в этом проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kris2007 0 31 июля, 2007 Опубликовано 31 июля, 2007 · Жалоба Вообще то для Т2 загрузка значения 0х06 в TCCR2 - это включение внешнего тактирования(как и 0х07) может в этом проблема? Да с 6 я погорячился:) т.е. он у меня и при задании внешнего тактирования и его отсутствии прерывался по переполнению каждую 1 мс....:) м-да... похоже не включается предделитель Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 31 июля, 2007 Опубликовано 31 июля, 2007 · Жалоба А откуда известно про значения в регистрах? и время 1 мс на железе получается или в симуляторе? если в симуляторе, то это ничего еще не значит. прескалер включен всегда, может все же сто то с функциями не то? с outb? можно на код их взглянуть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kris2007 0 31 июля, 2007 Опубликовано 31 июля, 2007 · Жалоба А откуда известно про значения в регистрах? и время 1 мс на железе получается или в симуляторе? если в симуляторе, то это ничего еще не значит. прескалер включен всегда, может все же сто то с функциями не то? с outb? можно на код их взглянуть? 1мс(чуть меньше) вижу на осцилографе,устанавливая в 1 свободный вывод в обработчике прерывания. outb, ну долго его тут искать - много файлов + ось. Нормально все с ним! Тут outb везде используется в таком виде и в сделанных уже проэктах в таком виде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 31 июля, 2007 Опубликовано 31 июля, 2007 · Жалоба может Ось мешает блокируя прерывания? а сколько должно получиться время прерывания от Т2? Что за ось стоит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться