Программирование контроллеров
К примеру ATmega16…или любой другой атмел
Все расписано в даташите, в разделе “Программирование по SPI”. Возьмите Евстифеева, (Микроконтроллеры AVR семейства Mega. Руководство пользователя. Евстифеев А. В.), которая представляет собой по сути перевод даташита. И читаете. Раздел 14.2, стр.518.
Александр, наверное я один понял Ваши вопросы. (другие пытаются найти серьезные ответы…) А звучат они примерно как - “можно ли управлять кнопками микроволновки стиральной машиной”? Ответ без сомнения- “Да”! Там же везде 0-ли и 1-цы…
msv, то что у вас с чувством юмора все нормально я понял… но вы как раз единственный не поняли мой вопрос)))
Суть была не можно ли… А КАК?.. говорить вашими же сравнениями… кнопки со стиральной машины надо как то же пере подключить? или вам не надо, они и так работают?😃
Без иронии, искренне рад, что Вы поняли, что мой ответ - шутка. Хотите верьте, хотите нет, но я удалил окончание своего последнего сообщения, уже отредактировав написанное, посчитав избыточным: “Осталось только узнать- как?”.
Вы задаете вопрос- “можно ли с помощью одного контроллера (причем не указывая его), запрограммировать другой?”. Какой ответ Вы ожидаете?
Я тут задался вопросом, по поводу сброса Сторожевого таймера в BicBasic. Оказывается компилятор PICBasic, втавляет процедуры сброса таймара WDT, везде, что бы проц не завис. Так же есть комманда в компиляторе CLEARWDT, что бы делать сброс дополнительно, в случае если имеются подпрограммы на ассемблере.
Вот что написано в книге Ч. Хелибайка:
Внутренние ассемблерные процедуры всех команд РВС и
РВРго обнуляют содержимое сторожевого таймера, так что сброса микро-
контроллера не происходит, если ваша программа работает нормально.
Сергей- лишний повод переходить на асм/с… “Чем больше компилятор делает за программера, тем меньше возможностей остается у программера”- (с) я…
Сергей, я согласен. Но у меня мозгов не хватает да же на СИ для АВР. А куда мне до асма…
Привет всем! Помогите с вопросом пожалуйста!
Имеется простой програматор на ЛПТ
Программа CodeVisionAVR
И hex файл!
В дебри програмирования мне лезть не нужно, мне просто нужно прошить контроллер, впаянный на плату. Кстати сконектить уже смог и фузы считать тоже.
А мне нужно просто прошить hex файл. Подскажите пожалуйста, где и куда нажимать!
Лучше всего воспользоваться соответствующей главой из книги “CodeVision AVR, Пособие для начинающих” (автор - Лебедев М. Б.).
Если лень - то советую такой порядок:
- Запускаешь CVAVR, указываешь тип своего программатора и его настройки (Settings -> Programmer. Впрочем, если фузы ты читал через CVAVR, то, наверное, все уже настроено).
- Запускаешь интерфейс программатора (жмешь Shift+F4)
- Выбираешь тип своего контроллера
- Читаешь сигнатуру контроллера = убеждаешься, что программатор работает, камень доступен и готов.
- Читаешь фузы (Read -> Fuse Bits). Будет предложено принять их за текущие настройки - есть смысл согласиться.
- Загружаешь свой hex (File -> Load Flash, тип файла = Intel HEX)
- Изменяешь фузы по потребности и ставишь над ними галочку “Program fuse bits”. Галочку ставишь только тогда, когда нужно изменять текущее состояние фузов. В остальное время галочку лучше держать снятой!!!
- Внизу отмечаешь галочки Check Signature, Check Erasure, Verify
- Любые другие установки и значения изменяешь с “умолчаний” только если точно сознаешь что ты меняешь и зачем!!!
- Еще раз проверяшь установку фузов.
- Программируешь все сразу (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? Мне нужно, чтобы контроллер воспроизводил тот или иной файл в зависимости от входных сигналов.
Надо больше читать! 😃 Конечно реально. Воспользуйтесь поиском по “слоновий радиомаяк”. Он как раз это и делает. Исходники открыты.
А есть описание самого протокола передачи данных с карт памяти?
Есть.
Если бы слово “Есть” было ссылкой, то меня этот ответ устроил бы.
Там всё ровно нужно знать архитектуру проца. Конечно если просто светодиодом помигать, то архитектуру знать не нужно, а если что то серьёзнее то нужно.
В этом отношении проще всего PIC-Basic, там архитектуру знать не нужно. Всё просто и очень стабильно работает. Я на этом языке уже наделал кучу полезных схем, из них есть регулятор хода с реверсом, и многое другое.
Скажите,как человек не имеющий представления об архитектуре пользуемого
микроконтроллера напишет для него программу?
Это типа того как ехать на любом автомобиле-компиляторе по незнакомым улицам(архитектуре) города-процессора!
Поэтому ИМХО - архитектуру надо знать независимо от инструмента-компилятора.
Один умнейший в этом деле человек(ник- urry),убедительно советовал начинать с
зазубривания даташита выбранного контроллера,с последующим узучением именно ассемблера,советовал за все про все 6 месяцев на постяжение для среднего интелекта,а уже потом можно и Си подергать.
3 примера с пик877 асм
Один умнейший в этом деле человек(ник- urry),убедительно советовал начинать с
зазубривания даташита выбранного контроллера,с последующим узучением именно ассемблера,советовал за все про все 6 месяцев на постяжение для среднего интелекта,а уже потом можно и Си подергать.
Зазубривать вряд ли надо. Надо даташит читать. Причем - достаточно один раз бегло, чтобы представлять где что описано, а далее - более вдумчиво те разделы - перефирия которых интересует, и в тот момент, когда вы этой перефирией начинаете пользоваться. Изучать и писать ИМХО проще сначала на языках высокого уровня. Зазубривать даташит - не имеет смысла, потому что завтра захочется переползти на другой проц (пусть даже из этого семейства - регистры могут измениться), или на друго производителя. Конечно понимать ассемблер пика и переползать на АВР, к примеру, это лучше, чем начинать с нуля, но временные затраты не оправдываются. На низкоуровневое программирование надо замахиваться ИМХО лишь в тогда, когда “уперлись” в объем памяти\производительность\ скорость.
Учите С. Более универсально. И с одного производителя на другого перескочить - поменять дефайны только. И для большого компа может когда-нибудь что-то написать придется - тоже плюс.