![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: нет Всего: 41 |
Подскажите как программно увеличить TCNTx на единицу ?
Код аналогичный следующему - не вариант.
В связи с нехваткой памяти/регистров для решаемой задачи возникла идея использовать регистры 16 разрядного таймера под счетчик. Это сообщение отредактировал(а) Чучмек - 8.11.2011, 21:01 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Почему? Возможно стоит пересмотреть методы решения задачи? |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: нет Всего: 41 |
6байт - стек 2байта под вызов прерывания 2байта под вызов функций из прерывания 1байт - передача параметров в функции 1байт - сохранение регистров в стек 4байта - 4 отображаемых символа на 7 сегментном индикаторе 2байта - состояние 4х кнопок + антидребезг 2байта - последние, полученные по i2c данные 2байта - счетчики для двух выходных каналов Итого 16*8=128бит - ресурс ATtiny2313 r16-r19 - регистры для вычислений r20-r23- для i2c (адрес микрухи, адресация памяти в микрухе, два байта данных) r24 - счетчик ожидания i2c r25 - указатель меню X,Y - используются Не так уж много остается ![]() А нужно еще много чего - как минимум 5 байт.
Да боюсь, что это, как лезть в окно, когда открыта дверь. Встречал упоминание, что возможно объединение двух 16 разрядных таймеров в 32 разрядный Вот мне и нужно, чтобы переполнение 8 разрядного таймера было тактированием 16 разрядного Это сообщение отредактировал(а) Чучмек - 9.11.2011, 13:27 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
SRAM у этой тини 128 байт. А регистры с r0 по r15? Теперь хватает? ![]() |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: нет Всего: 41 |
Действительно срам.
а насколько свободно их можно использовать? С головой. Но вопрос открытый. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Есть несколько оговорок. Во-первых регистры r0:r1 используются в качестве "неявных" операндов у некоторых команд. Так например команды умножения (которых нет в семействе тини) используют эти регистры для сохранения результата. Команды работы с памятью программ также используют эти регистры для сохранения/загрузки значений. А во-вторых некоторые команды работают только со старшими регистрами (r16:r32). Подробнее смотри документ "avr Instruction Set", там к каждой команде даётся описание допустимых операндов. А в остальном их можно использовать совершенно свободно ![]() В интернетах частенько возникают споры о целесообразности использования регистров ввода/вывода для хранения значений, но как всегда в нужный момент под рукой нет ссылок ![]() Как по мне - недокументированное использование чего-либо ведёт к недокументированным (или по крайней мере не очевидным) ошибкам ![]() |
|||
|
||||
Mazzi |
|
|||
![]() Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 9 Всего: 21 |
Как вариант можно настроить таймер на подсчёт импульсов от внешнего источника и одновременно этот же вывод назначить выходом. Тогда "дёрнув" этой ножкой (Т1 - выв.9 у аттини2313) получим инкремент таймера Т1.
-------------------- Мне нужны помощники. |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: нет Всего: 41 |
К сожалению ног мне тоже не хватает. (на одни и те же ноги вешаю индикатор,кнопки и i2c)
А сейчас узнал, что и RESET под свои цели смогу использовать только после окончательной отладки. И пока не разобрался, как использовать XTAL под выход. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Чучмек, я не знаю что ты там делаешь, но мне кажется что эот происходит как-то неправильно
![]() Тут тоже можно аппаратно изголяться. Во-первых можно использовать две тини (одну в качестве драйвера периферии), можно кнопки и индикатор повесить через сдвиговые регистры. Есть ещё расширители портов, работающие через SPI или I2C. Но опять же - это если возможность дорабатывать железо. |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Конфигурируешь мк, что бы тактировался от внутренней RC цепи (смотри fuse биты CKSEL3..0) и всё. Конфигурируешь PA1 и PA0 как тебе надо и используешь как тебе хочется. |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: нет Всего: 41 |
Шести канальный суточный таймер. Беру что есть. Да не, на раз. Не охота с паяльником сильно замарачиваться. Проще прогу нарыгать. Да и пора хоть краем с МК ознакомиться. Да тут еще знакомый утверждает, что в 2313 такое не влезит. А у меня, пока что, влазит. Осталось только меню и 50% места.
А по умолчанию как? Это сообщение отредактировал(а) Чучмек - 10.11.2011, 11:18 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Ну я имел в виду опытный макет для ниокр, дипломная работа, личная поделка это или что ещё ![]() Ну так для этого есть макетные платы с гнёздами, отладочные платы и другие полуфабрикаты. Не думаю я, что то, что есть под рукой всегда будет хватать ![]() Открываем даташит и читаем:
Т.е. так как нужно. И если тебе хватит дефолтного мегагерца, то fuse биты можно вообще не трогать ![]() |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: нет Всего: 41 |
Да я потому и спросил, что читал об этом.
Но в протеусе выводы XTAL упорно не хотели реагировать на программное изменение. Хоть с fuse по умолчанию, хоть с измененными (пробовал наугад). Однако сейчас попробовал выставить - XTAL подсветились синим. UniBomb, СПАСИБО! Ну а что касается основного вопроса - то пока использую в том варианте, про который писал не предлагать. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Чучмек, а ты даташит то хоть смотрел?
![]() |
|||
|
||||
Чучмек |
|
|||
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: нет Всего: 41 |
Да, только я в англицком ни буб бум
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |