murmur 0 8 мая, 2012 Опубликовано 8 мая, 2012 · Жалоба Друзья, образовалась проблемка. На место сгоревшей ATMega32A была спешно впаяна ATMega324PA. USART и компаратор перенастроила без проблем, а вот с TIMER1 трудности. ПРограммирую в CodeVision 2.05. Есть такой регистр TCNT1. Несмотря на то что он двухбайтный и где-то писалось что нужно работать по отдлеьности со старшим и младшим регистрами, у меня получалось обходиться операцией с регистром целиком, ибо операции было всего две - TCNT1=0x00 и a=TCNT1. Эти операции не нуждаются в побайтовой возне. А вот с установкой нового контроллера и соответсвующей заменой хидера компилятор перестал понимать TCNT1 - нет, говорит, такой переменной. ЧТо делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 8 мая, 2012 Опубликовано 8 мая, 2012 · Жалоба Пример проекта, где оба процессора поддерживаются, лежит здесь: http://www.cqham.ru/forum/showthread.php?t=9688 Фапйл hardware.c, функция hardware_elkey_timer_initialize() и другие, использующие этот таймер посмотрите. А у codevision только определения половинок регистра есть. Размышляя, могу предложить добавить в свои исходные тексты собственное определение этого регистра наподобии того, как это сделано в ATMEGA32. А в WinAVR/AVR toolchain это всё есть... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 9 мая, 2012 Опубликовано 9 мая, 2012 · Жалоба Что-то не нашла определения этого регистра... МОжет следлать так #define TCNT1 (TCNT1H<<8)|TCNT1L ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться