![]() |
Специальные цены | новые товары | ![]() |
![]() |
![]() |
Тема раздела Самодельная электроника, компьютерные программы в категории Общие вопросы; Сообщение от ubd Если бы он ресился то прога начинала работать за ново, это бы было явно заметно, но ведь ...
Всё, я разобрался, дело действительно было в настройке порта MCLR. Как только поменял - всё заработало. И я понял, почему не замечал этого. У меня в коде сначала стоит проверка состояния 4 вывода - как раз GP3/MCLR, если на нём 0, то загорается красный и дальнейшие проверки не проходят. Если там 1, то происходит сброс контроллера. Внешняя индикация от этого не меняется, так как до включения других огней дело никак не доходит.
Таким образом, с этой задачей разобрались. Всем за это спасибо, особенно ubd.
Следующим гвоздём нашей программы по освоению контроллеров будут импульсные устройства. Как можно осуществить управление таким индикатором, как АЛС318? Наверное нужно прописывать сами символы (вроде знакогенератора)? Как учитывать время считывания, чтобы получалось одинаковое время горения сегментов индикатора при динамической индикации? Как можно сделать бегущие символы на индикаторе?
Там в одной из книг, которые я тебе высылал, всё разжёванно по этой теме. Всё волшебство делает орператор LOOKUP. Почитай о нём как он работает.Как можно осуществить управление таким индикатором, как АЛС318?
А что за устройство хочешь делать? Есть много готовых проектов, с применением 7ми сегментных индикаторов: термометр, амперметр/вольтметр.
Это уже дело техники, как разберёшься, как формировать динамическую индикацию, так и бегущие символы сделать можно.Как можно сделать бегущие символы на индикаторе?
Пока что просто изучить контроллер. Рылся в своих радиодеталях, нашёл индикатор АЛС318. Захотел научить контроллер управлять им. Скоро найду 16-кнопочную клавиатуру, захочу с её помощью управлять контроллером.А что за устройство хочешь делать?
А вообще хочу в ближайшее время сделать для работы устройство, напоминающее о пробе тормозов. Ещё хочу сделать регулятор хода двигателя, только в нём будут не такие управляющие сигналы, как в ваших регуляторах.
Также есть задумка сделать макет участка железной дороги и всеми устройствами будут управлять контроллеры. Сейчас я сделал устройство для управления проходным светофором, а ещё будут входные, выходные светофоры (у них одинаковая логика, но разные источники управляющих сигналов), маневровые светофоры, устройства маршрутного управления стрелками... Короче, много чего.
С управляющими сигналами, понятно, можно сделать любые. Но если будешь делать, то у меня есть схемы выходных каскадов, для реверсивных регуляторов хода, на токи от 10 до 35А, можно использовать их.Ещё хочу сделать регулятор хода двигателя, только в нём будут не такие управляющие сигналы, как в ваших регуляторах.
Интересуюсь. На первое время мне ружно всего на пару ампер. На 35 - это немножко попозже....схемы выходных каскадов, для реверсивных регуляторов хода, на токи от 10 до 35А
Регулятор с реверсом с этого сайта на PIC12F675
Вот здесь пост № 46, схема выходного каскада с примером подключения к процу. Та схема, с теми транзисторами, ампер 12-15. Если транзисторы поставить по слабее то ток меньше будет. Можно в SO-8 корпусе (IRF7413 в паре c IRF7416), ампер 6-7 потянет.
Ну, я посмотрел ту схему. Я почему-то привык, что если проводники нарисованы накрест и там не точки, то они электрически изолированы, а если точка есть - то электрически соединены. Это учтено на предлагаемой схеме? Просто там в архиве ещё схема, где этого точно не учтено. Я таким схемам не доверяю. А что значит буква Е рядом с номиналом резистора (например, 10Е)? Насколько я знаю, что номинал в Омах обозначается цифрой без букв.
Драйвер для полевого транзистора нужен когда его нагрузка близка к максимальной или вообще всегда?
Хотелось бы снова возобновить свой вопрос... задавал я его пару месяцев назад...
можно ли на базе АЦП с цифровыми портами сделать свой программатор? ну или хотя бы просто прошить один контроллер, который будет в программаторе?
Та схема которая в хорошем качестве, это моя схема, там всё точно 100 пудов. И где перекрест проводников без точки, это просто перекрест без контакта, а с точкой это соединение.Ну, я посмотрел ту схему. Я почему-то привык, что если проводники нарисованы накрест и там не точки, то они электрически изолированы, а если точка есть - то электрически соединены. Это учтено на предлагаемой схеме?
Схема которая в плохом качестве, это исходная схема, и она то же правильная, её куча народу собрала, всё работает. Если у тебя нагрузки не большие 2-3А, то можешь выходной каскад взять из этой схемы которая в плохом качестве. Если токи 7-8А и выше, то только с драйверами.
Номинал в омах могут обозначать как буквой Е, так и просто цифрой. Просто цифройЮ это пошло с соведских времён, тогда такой был стандарт, в журналах "радио" омы ни как не обозначали, просто цифра. Импортное обозначение, которое встречается сейчас очень часто - буква Е.
Как понять свой программатор? Тебе трудно собрать уже по готовой схеме? Схемы рабочие и легко повторяемые. И зачем в программаторе использовать АЦП? Они там не нужны, там чисто цифровой сигналл - 1 или 0.можно ли на базе АЦП с цифровыми портами сделать свой программатор? ну или хотя бы просто прошить один контроллер, который будет в программаторе?
Если тебе нужно просто прошить один контроллер, то проще собрать программатор по готовой схеме, по другому ни как. В любом случае к компу подсоединять.
Вопрос достоин быть в номинации "самый красивый вопрос ветки"? Голосуйте..можно ли на базе АЦП с цифровыми портами сделать свой программатор? ну или хотя бы просто прошить один контроллер, который будет в программаторе?
А вот вы нам и расскажите, можно или нет. Для этого Вам, правда, придется углубленно почитать раздел "программирование по SPI" даташита того контроллера, который Вы собираетесь программировать. И, возможно, написать свою собственную программу для управления Вашим модулем - должен же ему кто-то скомандовать скока нулей и единиц посылать, куда, когда...
на счет программок для модуля проблем нет...
а вот проблемка такая..
каким образом на контроллеры подается прошивка? с какой то частотой? и т.д....
грубо говаря...расскажите мне последовательность импульсов на какойнить контроллер.. К примеру ATmega16...или любой другой атмел
У тог пика что у Вас отсутствует возможность доступа с своей флеш памяти из программы. Поэтому максимум что Вы сможете - подключить колодку для внутрисхемного программирования.
Если хотите менять программу на лету или менять большие массивы данных, хранимых в памяти программ - используйте PIC16F7хх или старше.
Погуглите бутлоадер для PIC - очень удобная штука))).
Все расписано в даташите, в разделе "Программирование по SPI". Возьмите Евстифеева, (Микроконтроллеры AVR семейства Mega. Руководство пользователя. Евстифеев А. В.), которая представляет собой по сути перевод даташита. И читаете. Раздел 14.2, стр.518.
Последний раз редактировалось EagleB3; 28.06.2010 в 16:18.
Александр, наверное я один понял Ваши вопросы. (другие пытаются найти серьезные ответы..) А звучат они примерно как - "можно ли управлять кнопками микроволновки стиральной машиной"? Ответ без сомнения- "Да"! Там же везде 0-ли и 1-цы...
msv, то что у вас с чувством юмора все нормально я понял... но вы как раз единственный не поняли мой вопрос)))
Суть была не можно ли.... А КАК?.. говорить вашими же сравнениями... кнопки со стиральной машины надо как то же пере подключить? или вам не надо, они и так работают?![]()
Без иронии, искренне рад, что Вы поняли, что мой ответ - шутка. Хотите верьте, хотите нет, но я удалил окончание своего последнего сообщения, уже отредактировав написанное, посчитав избыточным: "Осталось только узнать- как?".
Вы задаете вопрос- "можно ли с помощью одного контроллера (причем не указывая его), запрограммировать другой?". Какой ответ Вы ожидаете?
Я тут задался вопросом, по поводу сброса Сторожевого таймера в BicBasic. Оказывается компилятор PICBasic, втавляет процедуры сброса таймара WDT, везде, что бы проц не завис. Так же есть комманда в компиляторе CLEARWDT, что бы делать сброс дополнительно, в случае если имеются подпрограммы на ассемблере.
Вот что написано в книге Ч. Хелибайка:
Внутренние ассемблерные процедуры всех команд РВС и
РВРго обнуляют содержимое сторожевого таймера, так что сброса микро-
контроллера не происходит, если ваша программа работает нормально.
Сергей- лишний повод переходить на асм/с... "Чем больше компилятор делает за программера, тем меньше возможностей остается у программера"- (с) я...
Сергей, я согласен. Но у меня мозгов не хватает да же на СИ для АВР. А куда мне до асма...
Привет всем! Помогите с вопросом пожалуйста!
Имеется простой програматор на ЛПТ
Программа CodeVisionAVR
И hex файл!
В дебри програмирования мне лезть не нужно, мне просто нужно прошить контроллер, впаянный на плату. Кстати сконектить уже смог и фузы считать тоже.
А мне нужно просто прошить hex файл. Подскажите пожалуйста, где и куда нажимать!
Лучше всего воспользоваться соответствующей главой из книги "CodeVision AVR, Пособие для начинающих" (автор - Лебедев М. Б.).
Если лень - то советую такой порядок:
1) Запускаешь CVAVR, указываешь тип своего программатора и его настройки (Settings -> Programmer. Впрочем, если фузы ты читал через CVAVR, то, наверное, все уже настроено).
2) Запускаешь интерфейс программатора (жмешь Shift+F4)
3) Выбираешь тип своего контроллера
4) Читаешь сигнатуру контроллера = убеждаешься, что программатор работает, камень доступен и готов.
5) Читаешь фузы (Read -> Fuse Bits). Будет предложено принять их за текущие настройки - есть смысл согласиться.
6) Загружаешь свой hex (File -> Load Flash, тип файла = Intel HEX)
7) Изменяешь фузы по потребности и ставишь над ними галочку "Program fuse bits". Галочку ставишь только тогда, когда нужно изменять текущее состояние фузов. В остальное время галочку лучше держать снятой!!!
8) Внизу отмечаешь галочки Check Signature, Check Erasure, Verify
9) Любые другие установки и значения изменяешь с "умолчаний" только если точно сознаешь что ты меняешь и зачем!!!
10) Еще раз проверяшь установку фузов.
11) Программируешь все сразу (Program -> All) или последовательно:
Program -> Erase Chip
Program -> Blank Check
Program -> FLASH
Compare -> FLASH (если будут различия - повторить операции начиная с Program -> Erase Chip)
Program -> Fuse Bit(s) (только если нужно!)
Program -> Lock Bit(s) (только если действительно нужно!!!)
Спасибо за доходчивый ответ!!! Буду пробовать!
В ваших регуляторах хода тяговый электродвигатель отключается при понижении напряжения аккумулятора до некоторого предела . Как это сделано?
Сигнал о выключении моторов приходит на 4ю ногу. Это нога сброса MCLR. Когда напряжение достигает чуть меньше чем напряжние стабилизации L7805, транзистор VT1 закрывается и 4 нога оказывается на минусовом потанциале, происзодит сброс микроконтроллера, и программа начинает работать за ново, т.е. она начинает ожидать нейтраль на канале упраления. Как только ручку перевести в нетраль, можно опять давать ход, но до тех пор пока напряжение опять не достигнет уровня напряжения стабилизации 7805.
Реально ли заставить микроконтроллер проигрывать звуковые файлы с карты памяти? Может быть, использовать части от MP3 плееров? Может есть готовые блоки программ для декодирования VAW или MP3? Мне нужно, чтобы контроллер воспроизводил тот или иной файл в зависимости от входных сигналов.
Надо больше читать!Конечно реально. Воспользуйтесь поиском по "слоновий радиомаяк". Он как раз это и делает. Исходники открыты.
А есть описание самого протокола передачи данных с карт памяти?
Есть.
Если бы слово "Есть" было ссылкой, то меня этот ответ устроил бы.
Скажите,как человек не имеющий представления об архитектуре пользуемого
микроконтроллера напишет для него программу?
Это типа того как ехать на любом автомобиле-компиляторе по незнакомым улицам(архитектуре) города-процессора!
Поэтому ИМХО - архитектуру надо знать независимо от инструмента-компилятора.
Один умнейший в этом деле человек(ник- urry),убедительно советовал начинать с
зазубривания даташита выбранного контроллера,с последующим узучением именно ассемблера,советовал за все про все 6 месяцев на постяжение для среднего интелекта,а уже потом можно и Си подергать.
3 примера с пик877 асм
Зазубривать вряд ли надо. Надо даташит читать. Причем - достаточно один раз бегло, чтобы представлять где что описано, а далее - более вдумчиво те разделы - перефирия которых интересует, и в тот момент, когда вы этой перефирией начинаете пользоваться. Изучать и писать ИМХО проще сначала на языках высокого уровня. Зазубривать даташит - не имеет смысла, потому что завтра захочется переползти на другой проц (пусть даже из этого семейства - регистры могут измениться), или на друго производителя. Конечно понимать ассемблер пика и переползать на АВР, к примеру, это лучше, чем начинать с нуля, но временные затраты не оправдываются. На низкоуровневое программирование надо замахиваться ИМХО лишь в тогда, когда "уперлись" в объем памяти\производительность\ скорость.
Учите С. Более универсально. И с одного производителя на другого перескочить - поменять дефайны только. И для большого компа может когда-нибудь что-то написать придется - тоже плюс.
Напишет. Смотря какую, и на каком языке. Я же говорил, что если что то простое, светодиодом помигать, или подобное что то, то знать архитектуру особо не нужно. Особенно если язык высокого уровня. Если писать большую много функциональную прогу, то тут уже хоть как даташит будешь курить, и апноуты. Особенно если писать на асме.Скажите,как человек не имеющий представления об архитектуре пользуемого
микроконтроллера напишет для него программу?
Алексей правильно говорит, что начинаешь архитектуру изучать, по мере надобности. У меня так и получается. Вот понадобился мне аппаратный ШИМ модулятор, я прочитал о нём всё, теперь шарю, и применил его естественно в своей схеме регулятора хода. (Кстати вот: Регуляторы хода пост №113) Программа это регулятора, полностью написана на высокоуровнем языке (PIC Basic), при этом вопросы по внутенней архитектуре проца, затрагивались очень слабо, только то что нужно для работы этой программы. Всё заменя сделал компилятор. Тем не менее работает офигенно! Ни одного глюка. На этом регуляторе, уже чемпионский титул почти завоевали. И времени на написание программы ушло очень мало.
Коненчно, мне языка PIC Basic не хватает. Всё ни как не могу собраться с силами и перейти на СИ для АВР. Но цель есть, в ближайшее мремя нужно переходить. Книжку только хорошую купить бы. Только в электронном виде не нужно, т.к. читать не удобно, лучше всего когда книга в реальном, бумажном исполнии. Усвоение реальной книги гораздо лучше чем в электронном виде.
Алексей, может быть посоветуешь, книжку для начинающих, что бы с примерами программ ну и всё такое...
не посоветую!... Посоветую хелп из кодевижин. Ну и обращайся если что...
О кодвижне самая разжеванная книга Лебедева,можно скачать вместе с диском-110 МГб,а потом распечатать( 2листа на одном) и сшить- http://svetlana-06-89.mylivepage.ru/...еры_и_ПК ,можно и купить- http://www.ozon.ru/context/detail/id/4877459/ ,еще по кодвижену архивчик крепанул,
софт лучше старый,двоечные поговаривают глюконатные,код она делает конечно покомпактней чем пикбесик, плюс визард отличный , но раза в два три больше чем иар или винавр,но с последними начинающему ж..па полная если что нить стоящее
делать,уж тогда проще и компактней асм.
Конечно это все ИМХО,основанное на моем небогатом опыте-игрался с исходником регулятора на пике629 и тини13,прикручивал его с небольшой адоптацией к хайтеку_пик629,к иару_тини13 и содвижну_тини13,на хайтеке_пик629 код-220байт,на иаре-320байт на содвижне-790байт,реально на кодвижне оптимизация очень не в дугу!
ИАР пробовал 3,4 и 5 версий ,при макс. оптимизации обьем кода был примерно одинаков,
Хайтек пользовал от Иваныча STDv9.60PL3 ,очень понравился-код компактнейший,но с кодвижн проще,например LCD в легкую прикручивается т тд... ,в хайтеке для пиков не представляю как это сделать? Вообще по отзывам много народу на кодвижене сидит,вроде не такой "глюконат" как фловкоде,из плюсов визард для начинающих,из минусов код не компактный!
Последний раз редактировалось Neman2000; 02.08.2010 в 17:02.
urry - мужик авторитетный. Но эта его рекомендация - обязательна для профессионалов и для высокотворческих личностей, желающих творить шедевры и выжимать из камня все, на что тот способен.
Всем прочим настоятельно рекомендуется знать архитектуру в общих чертах - что у камня есть в принципе и для чего оно может пригодиться. Остальное - по мере надобности и стремления к совершенству.