Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.01.2008, 18:28
|
|
Частый гость
Регистрация: 25.01.2008
Сообщений: 32
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
AT90S2313 vs Attiny2313-20
Вообщем прошу сильно не пинать, но есть несколько вопросов...
1. С микроконтроллерами никогда раньше не общался, но вот друг попросил собрать схемку для аквариума http://www.piernitzki.de/aqua/Dimmer/dimmer.html ну казалось бы чего проще, собрал, зашил и должно работать, но... есть сомнения. AT90S2313 сейчас в магазинах уже нет, зато есть Attiny2313-20, что собственно и приобрёл. Понадобятся ли изменения в программе? Схема я так понимаю должна остаться прежней. Отсюда второй вопрос
2. Если исходника нет, то декомпилировать .hex уже не получится? Боюсь что написать программу самому - это будет долго, си никогда не изучал... Вот только пытаюсь, собираю всю инфу про программированию AVR
P.S. Попытался связаться с автором сей разработки, на мэйл не работает у него и по всей видимости этот проект затих. Отсюда сделал вывод, что писать программу все ж придётся... Активно начал изучать курс уважаемого AVR123 и есть там совет:
Цитата:
|
Прежде чем "изобретать велосипед", т.е. делать свой вариант какого либо устройства ( и не только электронного ! ) которое наверняка целиком или частично уже было сделано многими людьми и даже трудовыми коллективами - разумно поискать и посмотреть результат их труда и использовать его по максимуму !
|
толкните в нужном направлении!
Нужно вот от такой схемы получить
-- Прилагается рисунок: --
![](https://kazus.ru/nuke/users_images/27012008/240467.JPG)
-- Прилагается рисунок: --
|
|
|
|
28.01.2008, 09:35
|
|
Прохожий
Регистрация: 07.11.2006
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
|
В TYNI отличаются только заводские фьюзы, поправь их как на 90 и заливай старый Hex.
|
|
|
|
28.01.2008, 20:57
|
|
Частый гость
Регистрация: 25.01.2008
Сообщений: 32
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Судя по аппноуту AVR091 отличий гораздо больше... Например:
Changes to Names The following control bits have changed names, but have the same functionality and
placement when accessed as in AT90S2313. These AT90S1200 bit definitions can
therefore be added to the ATtiny2313 definitions file, so no rewriting of the application
code is necessary.
Вообщем эта наверное будет моя первая программа под конкретную цель, благо примеров с PWM написано много, осталось привязать к графику и в дальнейшем попробовать прикрутить туда и часы, которые будут запускать PWM в 7:00 и отключать цикл в 21:00
|
|
|
|
29.01.2008, 10:05
|
|
Временная регистрация
Регистрация: 10.05.2005
Сообщений: 77
Сказал спасибо: 12
Сказали Спасибо 1 раз в 1 сообщении
|
Да ничего не надо переписывать, Вам товарищ постом выше сказал-же что поменять.
Файл определений увязывает адреса и индексы, которые по аппноуту не поменялись, с именами, которые поменялись, но нужны компилятору только для того чтобы он разобрал имена в программе и заменил из на адреса и индексы в hex файле.
Изучение программирования микроконтроллеров конечно процесс весьма интересный и полезный, но потребует пару месяцев даже если Вы до этого имели опыт программирования для обычных компутеров, а Вашем случае придется умножить необходимое время на два.
С другой стороны схемка весьма простая и для первого проекта вполне подходящая.
И еще, не трогайте на первом этапе Си. Ассемблер значитально понятней, плюс Вы сможете подсмотреть как сделано в имеющемся у Вас файле, для этого его достаточно прогнать через любой поддерживающий камень дизассемблер.
И совсем уж еще: В Вашем проекте, на сколько я понял (в немецком не силен), есть еще и экзешник который выполняемый файл который должен взаимодействовать с контроллером через ком порт и увязка с которым на первом этапе будет не сильно простой.
|
|
|
|
29.01.2008, 12:41
|
|
Прописка
Регистрация: 12.11.2006
Сообщений: 127
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Цитата:
|
И еще, не трогайте на первом этапе Си. Ассемблер значитально понятней
|
Давно ли асм стал понятнее Си?
Тогда перепишите пожалуйста мне на асм вот это выражение
Код:
|
return (*((int *) &__ds18b20_scratch_pad.temp_lsb) & bit_mask[resolution])*0.0625; |
Да и нафига сегодня асм, когда таже mega8 стоит 60 рублей? Да еще с привязкой к конкретному процу...
А уж если начинать изучать МК атмеловские, то начинать следует с Си и камня вроде мега8 или мега16.
А всякие тиньки2313 нафиг не нужны - копеечная экономия потом вылезет в переделку целого проекта, проверено на собственном опыте.
|
|
|
|
29.01.2008, 14:38
|
|
Гражданин KAZUS.RU
Регистрация: 24.06.2005
Сообщений: 535
Сказал спасибо: 262
Сказали Спасибо 216 раз(а) в 118 сообщении(ях)
|
Цитата:
|
Да и нафига сегодня асм, когда таже mega8 стоит 60 рублей? А уж если начинать изучать МК атмеловские, то начинать следует с Си и камня вроде мега8 или мега16.
А всякие тиньки2313 нафиг не нужны - копеечная экономия потом вылезет в переделку целого проекта, проверено на собственном опыте
|
Дело не только в цене. Я пока изучал МК накупил их немало разных с доставкой за более 1000 км. Лично у меня как-то не возникает тягя собирать простые устройства на Mega8 Mega16.
Более серьезные делал на Mega16.[/quote]
|
|
|
|
29.01.2008, 16:19
|
|
Прописка
Регистрация: 13.06.2004
Адрес: Москва
Сообщений: 193
Сказал спасибо: 11
Сказали Спасибо 32 раз(а) в 18 сообщении(ях)
|
Сообщение от day177
|
Цитата:
|
И еще, не трогайте на первом этапе Си. Ассемблер значитально понятней
|
Давно ли асм стал понятнее Си?
Тогда перепишите пожалуйста мне на асм вот это выражение
Код:
|
return (*((int *) &__ds18b20_scratch_pad.temp_lsb) & bit_mask[resolution])*0.0625; |
Да и нафига сегодня асм, когда таже mega8 стоит 60 рублей? Да еще с привязкой к конкретному процу...
А уж если начинать изучать МК атмеловские, то начинать следует с Си и камня вроде мега8 или мега16.
А всякие тиньки2313 нафиг не нужны - копеечная экономия потом вылезет в переделку целого проекта, проверено на собственном опыте.
|
Пишу как на ассемблере, так и на языках высокого уровня. Что касается ассемблера, то он намного "прозрачнее", то есть я знаю все, что будет делать процессор по моей программе. Для языков высокого уровня трудно бывает понять что сделает программа по той или иной команде. Это несущественно для вычислительных задач, но может быть критично для задач управления в реальном времени.
Другое отличие - ассемблерная программа ЗНАЧИТЕЛЬНО более компактная и быстродействующая. И, если компактность кода сегодня это только вопрос цены камня, которая быстро падает, то быстродействие камня ограничено. Кстати, камни с большой памятью, как правило, медленнее. Поэтому иногода я на языке высокого уровня отлаживаю алгоритм, а затем переписываю его на ассемблере.
Разница в скорости исполнения кода огромная!
|
|
|
|
29.01.2008, 17:06
|
|
Прописка
Регистрация: 17.10.2006
Сообщений: 147
Сказал спасибо: 2
Сказали Спасибо 22 раз(а) в 11 сообщении(ях)
|
Сообщение от day177
|
[quote
копеечная экономия потом вылезет в переделку целого проекта, проверено на собственном опыте.
|
Хыхыхы копеечная экономия, говоришь... У меня вот Тини2313 стоит 26 рублей, тут почти втрое дороже. При тираже устройства хотя бы 300 штук в месяц это значительная копеечка выходит. Тем более что вся прибыль идет мне в карман лично.
Хватило бы портов так я бы и Тини11 заюзал. Цена в 11 рублей меня воодушевляет
А ассемблер он и вправду проще и понятней. Особенно для новичка. Т.к. если программа на Си не работает, то она просто не работает и понять где там затык гораздо сложней чем в асмовской проге. Особенно когда отлаживаешь в какой либо АВР студии и глядишь на все регистры и переменные лично.
|
|
|
|
29.01.2008, 17:13
|
|
Прописка
Регистрация: 17.10.2006
Сообщений: 147
Сказал спасибо: 2
Сказали Спасибо 22 раз(а) в 11 сообщении(ях)
|
По теме
Изначально ступанул и в АВР студии писал код под определения АТ902313 заливал я их естественно в Тини2313. Ничо, все работало без глюков. Так что скорей всего проканает на раз. Обрати только внимание на то, что у Тини2313 есть фьюз делителя частоты на 8 (CLKDIV ![Горд собой](images/smilies/icon_dovl.gif) он по дефолту установлен ([ ]) и поэтому частота при SKEL 0100 (8Mhz) реально становится 1Мгц. Поэтому его от греха подальше лучше сбросить ([x]).
Там главное отличие в таймерах и уарте ,как я понял. Но вроде как совместимо вниз. Ну и изначальные фьюзы нужно выставить на ту же частоту на которую расчитанна программа.
|
|
|
|
29.01.2008, 18:03
|
|
Частый гость
Регистрация: 25.01.2008
Сообщений: 32
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Цитата:
|
Обрати только внимание на то, что у Тини2313 есть фьюз делителя частоты на 8 (CLKDIV он по дефолту установлен ([ ]) и поэтому частота при SKEL 0100 (8Mhz) реально становится 1Мгц. Поэтому его от греха подальше лучше сбросить ([x]).
|
Что ж, спасибо за дельный совет! Вечером попробую ещё раз. Хотя теперь уже спортивный интерес возник, написать что то самому, хотя бы для начала для этого проекта. С Си уже начал немного разбираться что зачем, а вот ассемблер по моему посложнее будет. Да и если использовать кусочки других уже написанных программ, томне показалось что на Си их побольше будет. Сейчас использую связку кодевижн+вмлаб для обучения и конечно огорчает что в WMLab нет ATtiny2313. Первый опыт портирования простенькой программы из задач курса с меги16 на 90S2313 оказался удачным, конечно же воодушевляет...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:02.
|
|