Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
25.10.2007, 19:06
|
|
Частый гость
Регистрация: 23.06.2007
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
LPC2000+Keil+Proteus
В учебном заведении осваиваем на примере контроллера ARM7 LPC2138 программирование основных устройств в среде KEIL с дальнейшей симуляцией в Proteus 7.1. Уже освоено программирование Дискретного ввода-вывода, Сторожевого таймера, Основных таймеров (Т0 и Т1), прерываний и ШИМ. На очереди АЦП, ЦАП, Последовательный асинхронный приемопередатчик. За прошедшее время накопился некоторый опыт, но и появилось много вопросов, прежде всего к уважаемому Тени. В последующих постах я постараюсь их изложить и/или ответить на возможные вопросы.
|
|
|
|
25.10.2007, 19:11
|
|
Частый гость
Регистрация: 23.06.2007
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Связка LPC2138+Keil+Proteus+Глобальные переменные.
Уважаемый Тень! Наиболее серьезной проблемой в указанной связке наблюдается прекращение функционирования программ в среде Proteus при объявлении в программе на С глобальных переменных. Это конечно можно обойти, создавая определения переменных в оперативной памяти (как для регистров), но для неопытных пользователей является существенной проблемой.
|
|
|
|
25.10.2007, 19:17
|
|
Частый гость
Регистрация: 23.06.2007
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Связка LPC2138+Keil+Proteus+WDT.
Уважаемый Тень! При программировании сторожевого таймера мы столкнулись с проблемой feed - последовательности: для сброса сторожевого таймера в LPC2138 используется последовательность 0x55 0xAA. Так вот, при симуляции в самой KEIL последовательность одна, а в Proteus - обратная! Кому верить, если "железных" контроллеров у нас еще нет? И еще, после сброса от WDT выполнение программы в среде Proteus прекращается, или вернее, происходит не предсказуемым образом...
|
|
|
|
25.10.2007, 19:51
|
|
Частый гость
Регистрация: 23.06.2007
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Связка LPC2138+Keil+Proteus+RESET.
Во вложении архив с примером.
При запуске проекта в Proteus содержимое регистра идентификации источников сброса всегда равно 0.
Если несколько раз подряд нажать кнопку, подключенную к сбросу (особенно быстро) то программа в микроконтроллере "повисает" и вопрос решается только остановкой симуляции.
[/i]
|
|
|
|
25.10.2007, 19:53
|
|
Частый гость
Регистрация: 23.06.2007
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Простите, обещаное вложение.
Прикрепленный файл: 2064896.zip
|
|
|
|
25.10.2007, 20:22
|
|
Частый гость
Регистрация: 23.06.2007
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Связка LPC2138+Keil+Proteus+WDT.
Уточняю: Keil "считает" верной feed последовательностью 0xAA 0x55, Proteus же выполняет feed последовательность если она 0x55 0xAA.
Так же нужно быть аккуратным при задании коэффициентов умножения и деления ФАПЧ и частоты кварца - например, при 5 * 2 * 10 МГц корректный сброс не происходил.
Пример, во вложении.
Прикрепленный файл: 9353443.zip
|
|
|
|
25.10.2007, 20:28
|
|
Частый гость
Регистрация: 23.06.2007
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Связка LPC2138+Keil+Proteus+FIQ+EINT.
Рассмотрен пример симуляции быстрого прерывания от внешнего источника. Все работает, но может быть кому интересно...
Прикрепленный файл: 1977681.zip
|
|
|
|
25.10.2007, 20:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: LPC2000+Keil+Proteus
Сообщение от donchenko
|
В учебном заведении осваиваем на примере контроллера ARM7 LPC2138 программирование основных устройств в среде KEIL с дальнейшей симуляцией в Proteus 7.1.
Уже освоено программирование Дискретного ввода-вывода, Сторожевого таймера, Основных таймеров (Т0 и Т1), прерываний и ШИМ. На очереди АЦП, ЦАП, Последовательный асинхронный приемопередатчик.
|
А зачем для этого Proteus ???
KEIL сам все это симулирует ВЕЛИКОЛЕПНО и НАГЛЯДНО !!!
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
25.10.2007, 20:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
За примеры спасибо !
==============
Кстати PROTEUS не работает с .elf сделаным компилятором ImageCraft.com для LPC2000.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
25.10.2007, 21:47
|
|
Частый гость
Регистрация: 23.06.2007
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
›А зачем для этого Proteus ???
›KEIL сам все это симулирует ВЕЛИКОЛЕПНО и НАГЛЯДНО
Проблема в том, что эти примеры только первый этап. Proteus позволяет подключить в проект обширную перефирию и даже симулировать аналоговые цепи в виде лапласовых компонент (для нас это важно). Еще важна и наглядность - особенно для учебного заведения.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:34.
|
|