Добрый день, уважаемые коты. Принимайте в свои ряды новенького.
Итак. Одним ранним утром решил я что пора мне осваивать микроконтроллеры, писать к ним программы и всяческим другим образом повелевать электронами, ибо находить программиста для своих целей очень дорого, да и сама тема уж больно интересная.
Решил, что проще всего начать знакомство с микроконтроллерами по средствам Arduino. выбор пал на отладочную платку 2560. вместе с ней из китая были заказаны: шилд с TFT 3,2", всякие пустышки, УЗ датчики + по мелочи кучу всего на сдачу. Посылочка моя медленно и верно полетела из китая ко мне. лететь будет долго и чувства одиночества без отладочной платы не давало мне уснуть, а посему мною были отрыты из сусеков отладочная платка (которую давно давно делал) с камушком Atmega64. плата представляет из себя - просто atmega64 с выведенными концами по краю, что бы удобно было к ним проводки подводить. все. больше ничего нет. вру. есть. мелочовка - площадки для кварца + два места под кондеры к нему и площадки для резистора и кондера к ножке ресет. на данный момент ничего не припаял.
Далее в наличии на хоз учете имеем пустышку плату. или как она правильно называется?
ООО. забыл упомянуть многострадальный программатор AS3M. почему многострадальный? уж больно много лишних (и самое главное - глупых) действий мне пришлось с ним провернуть, что бы заставить сие работать.
Приступаем к программной части: Камушек на плате видится, читается, программульки простецкие туда записываются. Светодиодиками помигать получилось, кнопочками поиграться тоже, семисегментный индикатор тоже поддался без проблем. а вот ШИМ дался уже с трудностями. Потихоньку "разжигать" светодиод получилось, а вот понимания 50% кода нет. т.е. необходимо мне еще сидеть и сидеть над освоением С++, даташитов контроллера, принципиального понимания физических законов и прочее прочее прочее. ну я какбЭ и не против. Знание - сила.
Уж больно хочется мне упросить себе жизнь, не изобретать с самого начала светодиод (велосипед). И тут на помощь приходит Arduino IDE. тем более что и плата у меня Arduino. Скачал сие ПО, посмотрел. ну все совсем просто. AVR (сейчас уже Atmel) Studio намного приятнее.
И вот поставленна новая задача мною передо мною же. Необходимо в программной среде Atmel Studio 6 сделать надстройку, что бы можно было писать и на языке Wiring (Arduino IDE) и просто C++. Одновременно. Вместе. Рука об руку. Что бы, как гласит исконно мужская пословица - одно другому не мешало. и тут на помощь пришла замечательная статья из трех частей: http://www.jayconsystems.com/tutorial/atmerpt1/
Вуаля. вся та супер "надстройка wiring-а" распознается и понимается компилятором AVR Studio. берем простой скетч Arduino IDE - мигание светодиодом. компилим в AVR Studio. ошибок ноль. все хорошо. hex создался. правда тут объем его 4 КБ. вместо 300 байт - если писать по обычному. но это не беда. отладим все потом. благо у нас камушки мощные и большие. позволяют такие размеры в себя засунуть. и гораздо больше. Зачем все это спросите вы? зачем так изгаляться? "мисье знает толк в извращениях" - возможно кто-то захочет написать. НО!!! подождите и, немного набравшись терпения, прочтите до конца. осталось немного. Смысл всего этого (совмещение wiring и С++) заключается в том, что при данной конструкции среды разработки я могу брать библиотеки для Arduino (например к тому же TFT 3.2" который заказал), вставлять их в свой проект, тупо так копипастить код из скетча-примера и уже дословно разбираться в нем в своей программе. а если не могу что-то понять, то это не будет мешать программе правильно работать. ведь не на каждый вопрос можно найти сразу же ответ.
Ну вот и переходим к заключительной части: вопросу аудитории. в каком файле Arduino находится описание каждой ноги к контроллеру? ведь в платах Arduino нет Atmega64. а у меня есть только она сейчас. правильно ли я понимаю, что тут: pins_arduino.h но как мне расписать этот файл? Подскажите плииз.
Буду рад развить эту тему, возможно она будет полезна многим новичкам.
6. Install ATtiny45 / ATtiny85 support in **Arduino v0023**
- Download: attiny45_85.zip http://hlt.media.mit.edu/wp-content/uploads/2011/06/attiny45_85.zip - Locate your Arduino sketchbook folder (you can find its location in the preferences dialog in the Arduino software) - Create a new sub-folder called “hardware” in the sketchbook folder. - Copy the attiny45_85 folder from the attiny45_85.zip to the hardware folder. - Restart the Arduino development environment.
бегло глянул - надо по подобию отредактировать: boards.txt pins_arduino.c Makefile для меги64
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Оставил пока портирование меги64 на ардуино и переключился на другую задачу: подключение к экранчику 12864 (FDCG12864B-FLYYBW-51XN). Делал все как тут: http://www.radiokot.ru/lab/controller/15/ В Proteus все симулируется отлично. На моем камне нифига. пробовал и с внутренним 8 МГц и с внутренним 1 Мгц. один фиг не выводит. Контрастность регулируется потенциометром. залитую матрицу видно, но не понятно - прошла инициализация экрана или нет. ну и соответственно ничего не выводится на экран. хотя опять-таки в proteus все работает отлично. как так?
Задержки, может надо больше, еще там бывает, не помню уже, разобраться с "правильностью" CS1 CS2
ага. вот вся беда в этих задержках. не понимаю как их подбирать. пробовал методом "кота тыка" - не получается. менял частоту, благо в атмеге 64 без кварца можно поставит 1 или 2 или 4 или 8 МГц - результат аналогичный.
а правильность cs1 / cs2 видна на экране сразу - либо перепутаны половинки либо нет, но мне еще и не дойти до этого момента.
итак. заполняем дальше свой кото-блог писать все-таки продолжил в CodeVision. Atmel Studio оставляем до поры, ибо очень много что там не понятного. особенно не нравится, что размер программульки получается в 3-и раза больше, нежели аналогичная программа компилируется в CodeVision. уже по-моему все настройки крутил. Экранчик поддался сразу. что очень порадовало:
далее настал через датчика температуры DS18B20
в принципе навалом всяких примеров и по 1wire датчик стал показывать температуру.
чем дальше в лес, тем больше дров. Может кто подскажет мне ответ: как мне использовать несколько датчиков? но я должен четко знать где какой стоит, а не опрашивать их по ROM номеру. т.е. у меня 4-и датчика температуры. все показания разные. все датчики втыкаются и вытыкаются когда хотят. так как мне четко необходимо знать, что тут воткнули (ну к примеру верхний левый датчик), то предполагаю, что надо привязываться к пинам мк. весь код для одного датчика такой:
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения