Добавлено: Сб мар 06, 2010 17:45:10
Ой. Да! Спасибо! С6 не туда прикошачил. Исправляю.
У меня, например "невменяемый" программатор, - 5 проводков+ponyprog, без подтяжки ругается, мол, неизвестное устройство, но все равно шьет, если нажать игнорmaglev писал(а):Не знаю, что за устройство, по названию темы не понять. Однако резисторы на MOSI, MISO, SCK можно смело выкинуть, если программатор хоть чуть вменяемый.
Не спорю, можно и выкинуть. Только это не есть гуд! Вернее хороший тон конструирования. У человека вобще нет программатора и неизсвестно каой он его найдет, вменяемый или нет. А подтяжка всегда пригодится! Эти ноги в воздухе висеть не должны. В этом проекте пофигу конечно, а в серьезной конструкции наводки и помехи могут дрючить МК и потом поди разберись что да почему.maglev писал(а):Не знаю, что за устройство, по названию темы не понять. Однако резисторы на MOSI, MISO, SCK можно смело выкинуть, если программатор хоть чуть вменяемый. Включать внешнее питание параллельно батарее неверно, ее следует отключать.
Сначала пишется программа (предположим, на ассемблере -- именно его использование позволяет лучше всего изучить микроконтроллер, посему лучше с него и начать). Обычно это делается прямо в AVR Studio. После написания программа транслируется и, если ошибок не обнаружено, её можно прошивать. Для этого программатор подключается к компьютеру (поскольку у Вас ноут, то нужен программатор, подключаемый к USB, ну или покупать ещё переходник USB-COM, чтобы программатор для COM-порта можно было прицепить), а к выходу программатора подключается микроконтроллер. Когда всё присоединили, нажимается нужная кнопочка -- и АВР Студио записывает код программы в память программатора. Ну или ругается, что не может этого сделатьEmilЕЛ писал(а):Как происходит программирование МК, не расскажете? а то я вообще понятия не имею, его прошивать после сборки схемы или же до сборки как флешку забить и все?
А я сначала собираю схему, обязательно с ISP разъемом. Потом пишу программу по кускам под собранную схему. Потом дебагю программу в симуляторе. Когда в симуляторе уже работает и нет серьезной опасности спалить что-то в схеме кривым кодом - только тогда шью в контроллер и окончательно отлаживаю, дописываю недостающие куски - обычно математику, bin2bcd и прочее, что не затрагивает периферию.SII писал(а): Сначала пишется программа...
Ну, кто как. Я всегда отлаживаю на реальном железе, а программа пишется по ходу дела и потом достаточно долго доводится до ума (добавляются новые возможности, например, о которых сразу не подумали). Чтобы программно что-то спалить, это очень постараться надо (да и сама схема должна быть не шибко корректная для этого).stas00n писал(а):А я сначала собираю схему, обязательно с ISP разъемом. Потом пишу программу по кускам под собранную схему. Потом дебагю программу в симуляторе. Когда в симуляторе уже работает и нет серьезной опасности спалить что-то в схеме кривым кодом - только тогда шью в контроллер и окончательно отлаживаю, дописываю недостающие куски - обычно математику, bin2bcd и прочее, что не затрагивает периферию.SII писал(а): Сначала пишется программа...
програмно что то спалить можно. если например имееш матрицу соеденений и можно соеденить как высоковольтную пробойку на 10киловольт так и измеритель сопротивления изоляции с входом в ацп контроллера. Я не думаю что контроллер такой железный и 10киловольт выдержит. Это естественно если быть совсем дураком и ацп не защитить вообще ничем.SII писал(а): Чтобы программно что-то спалить, это очень постараться надо (да и сама схема должна быть не шибко корректная для этого).
Тоже, практика показывает что если разу всё написать то повешаешся с отладки и при отладке всё равно придётся искать глюки последовательно отключая и коменнтаря функции, фишечки и прочее. А потом ещё связанные блоки править (которые вдобавок недоконца отлажены) потому что не всегда удаётся удалить косяк не изменив принципа работы программы в целом.SII писал(а): Я всегда отлаживаю на реальном железе, а программа пишется по ходу дела и потом достаточно долго доводится до ума (добавляются новые возможности, например, о которых сразу не подумали)
Ну так о чём и речь. Если схема сделана грамотно, то никакая программная ошибка к выгоранию чего-нибудь приводить не должна. Ну а если такое случилось, то исправлять надо не только программу, но и саму схему.Smirnov писал(а):програмно что то спалить можно. если например имееш матрицу соеденений и можно соеденить как высоковольтную пробойку на 10киловольт так и измеритель сопротивления изоляции с входом в ацп контроллера. Я не думаю что контроллер такой железный и 10киловольт выдержит. Это естественно если быть совсем дураком и ацп не защитить вообще ничем.SII писал(а): Чтобы программно что-то спалить, это очень постараться надо (да и сама схема должна быть не шибко корректная для этого).
Отсюда вывод - делать нужно схему такой чтоб на любые глюки программы ей было всё равно а то вдруг например попросту не повезёт и наполовину горелый чип попадйёся.
Ну, программу типа бегущих огней вполне реально и сразу без ошибок написать, а в этой теме речь именно о таком идёт. Но что-либо более-менее сложное, конечно, нужно создавать и отлаживать по частям.Тоже, практика показывает что если разу всё написать то повешаешся с отладки и при отладке всё равно придётся искать глюки последовательно отключая и коменнтаря функции, фишечки и прочее. А потом ещё связанные блоки править (которые вдобавок недоконца отлажены) потому что не всегда удаётся удалить косяк не изменив принципа работы программы в целом.SII писал(а): Я всегда отлаживаю на реальном железе, а программа пишется по ходу дела и потом достаточно долго доводится до ума (добавляются новые возможности, например, о которых сразу не подумали)
нуу ... у начинающих проблеммы оказываются даже с такой простой программой как, клик кнопкой (нажать и отжать) - светодиод замигал, клик ешё раз светодиод перестал мигать, там обычно идут ошибки начиная с того что путаются в двух регистрах, или стек не проинициализировали а процедуру поставили, или дребезг нечтён, или задержка неправильно подсчитана - светодиод либо постоянно горит либо мигает так слабо что кажется то ничего не работает. Неудивлюсь если и у тебя подобные пробелмы были поначалуSII писал(а): Ну, программу типа бегущих огней вполне реально и сразу без ошибок написать, а в этой теме речь именно о таком идёт. Но что-либо более-менее сложное, конечно, нужно создавать и отлаживать по частям.
ну это я знаю со времён Z80. Тогда все писали и деление сами и арифметику с фиксированной запятой и тд. Нераз пригождались эти знания, даже для архетектуры Inte86. Например для таких мелких модулей которые объеденяются по RS485 в сеть, и управляют промышленными объектами, я делал контроллер температуры и и скорости течения потоков, вся сложная математика в итоге была сделана на сложениях и сдвигах, фильтры, предсказание. вычисление вектора выбега температуры и тд, хоть там и стоял AMD386 аналог интелевского но с флеш диском и досом в ПЗУ и кучей плюшек типа таймера и рс порта, но он вешался на делениях и умножениях, пришлось переписать в формате фикс. запятой.SII писал(а):Применительно к МК таких ошибок у меня не было, но лишь по той причине, что я начинающим программистом уже не былХотя были проблемы другого рода. Например, допустил ошибку в подпрограмме деления, из-за чего в некоторых случаях она давала неверный результат. Причина -- что-то из особенностей АТмеги не учёл, поскольку опыта программирования именно под неё ещё не было. Естественно, заметив ошибочный результат, я быстро нашёл и устранил причину, но тем не менее... Ну а те, кто знают только ассемлер IA-32, в этом плане ещё в худшем положении: обычно они не знают, как нужно делить вручную, поскольку там есть готовые команды деления, а на АТмеге их нет, нужно писать свою подпрограмму (что я и сделал) либо использовать готовую.