![]() |
Модераторы: 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 |
Да, только я в англицком ни буб бум
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
UniBomb |
|
|||
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Чучмек, прелесть даташитов в том, что возможные значения расписаны в табличном виде, там совсем чуть-чуть со словарём достаточно посидеть
![]() ![]() Внутренней RC цепи соответствует только два значения битов CKSEL. Биты SUT1..0 и CKDIV8 на выводы XTAL вообще не влияют (первые определяют длительность сброса, второй делитель тактовой частоты). Но если всё равно туго, то могу посоветовать вот такую книгу. Это те де самые даташиты, только переведённые на русский и обобщённые по всем мк семейства. Есть такая же по мегам. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |