Всем привет.
Друзья нужна ваша помощь.
Работаю с: Atmega128 в CodeVision AVR (2.04.4a).
Запустил первый счетчик на измерение длительности положительного импульса (с прерыванием по захвату) - работает как часы.
Теперь необходимо запустить третий счетчик для точно такой же функции. Вроде все просто, но... Компайлер ругается; "undefined symbol ICR3" и "undefined symbol TCNT3". В чем проблема, не могу понять. Очень прошу вашей помощи.
Зарание благодарен.
Страница 1 из 1
Проблемы С Третьим Таймером-Счетчиком На Atmega128 "undefined symbol TCNT3".
#2
Отправлено 02 Январь 2013 - 11:21
Смотрите содержание вашего хейдера (если прикреплен тот что надо). Если он прикрепляется автоматом то смотрите настройки среды (выберите нужный мка в среде).
#3
Отправлено 02 Январь 2013 - 13:13
Привет korsaj. Спасибо за ответ и за помощь.
Хедер прикреплен правельный, проверил. Первый счетчик работает великолепно, а вот третий... В хедере прописаны TCNT1 и ICR1 как 16-ти разрядные регистры, но TCNT3 и ICR3 нет (только TCNT3H,TCNT3L,ICR3H и ICR3L, как 8-ми разрядные). Собственно говоря поэтому компайлер и ругается, но может кто нибудь знает как их прописать в хедере как 16-ти разрядные?
Хедер прикреплен правельный, проверил. Первый счетчик работает великолепно, а вот третий... В хедере прописаны TCNT1 и ICR1 как 16-ти разрядные регистры, но TCNT3 и ICR3 нет (только TCNT3H,TCNT3L,ICR3H и ICR3L, как 8-ми разрядные). Собственно говоря поэтому компайлер и ругается, но может кто нибудь знает как их прописать в хедере как 16-ти разрядные?
#4
Отправлено 03 Январь 2013 - 08:54
Добавь в хедер после строки #pragma used-
строки:
#define ICR3 (*(unsigned int *) 0x80) // 16 bit access
#define TCNT3 (*(unsigned int *) 0x88) // 16 bit access
тогда кодвижен будет понимать их как 16 битные регистры.
строки:
#define ICR3 (*(unsigned int *) 0x80) // 16 bit access
#define TCNT3 (*(unsigned int *) 0x88) // 16 bit access
тогда кодвижен будет понимать их как 16 битные регистры.
#5
Отправлено 03 Январь 2013 - 10:15
Попробую. Спасибо за совет. Как добавлю и проверю, так сразу дам знать если работает.
#6
Отправлено 06 Январь 2013 - 17:12
Ну а ещё, как вариант, можно работать напрямую с регистрами TCNT3H, TCNT3L, ICR3H, ICR3L. Дабы не привязываться к хедерам именно кодвижена.
Но главное при этом учитывать порядок записи и чтения слов в эти регистры.
Но главное при этом учитывать порядок записи и чтения слов в эти регистры.
#7
Отправлено 06 Январь 2013 - 18:09
Привет админ. Я именно так и сделал. Работал напрямую с регистрами TCNT3H, TCNT3L, ICR3H, ICR3L. Все работает великолепно.
Хочу попробовать как korsaj выше посоветовал, просто сейчас на это времени нет.
Спасибо за помощь!
Хочу попробовать как korsaj выше посоветовал, просто сейчас на это времени нет.
Спасибо за помощь!
Поделиться темой:
Страница 1 из 1