Перейти к содержанию
    

xgcyo

Участник
  • Постов

    8
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о xgcyo

  • День рождения 14.04.1985

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. Есть ли что-нибудь подобное в Риге? Нужно делать прямоугольные отверстия под lcd индикаторы и кнопки в пластиковом корпусе.
  2. Здравствуйте, недавно приобрёл с плату с МК lpc1768, на которой имеется периферия, дисплей и отдельный МК, который выполняет функции программатора/дебаггера Jlink. До этого работал с AVR и MSP430. Поставил Keil, открыл проект из папки примеров. Затем откомпилировал и запустил. Всё прошилось и запустилось, светодиоды замигали. Поставил брэкпойнт, дебаггер остановил выполнение программы. Переменные и регистры МК отображались. Всё отлично. Затем я решил подробнее рассмотреть исходный код. 1. Увидел, что в файлах .c подключаются ассемблерные файлы .s при помощи директивы #include, как я понял это фича Keilа. В аnsi C так делать нельзя, нужно скомпилить asm файл, добавить появившийся обьектный файл к линкеру, затем в .c файле указать вызываемую функцию с аттрибутом external. Ассемблерный файл лежал в директории проекта примера. Вопрос: Если я создаю новый проект, где мне взять этот ассемблерный файл? Я могу скопировать из папки примера, но что будет, если требуется написать для гипотетического lpc17692? 2. Посмотрел как декларируются функции, обрабатывающие прерывания. Ссылки на адреса этих функций находятся в ассемблерном файле. Вопрос: Можно ли мне создать проект, но не использовать ассемблерные файлы вообще? Если да, то как объявить функцию, обрабатывающую прерывание? 3. Данные ацп отсылаются в уарт посредством вызова функции printf. LPC1768 имеет как минимум 4 уарта. Код инициализации уарта имеется, но вот в какой из них пишет printf по исходникам примера не понять. Вопрос: Как задать конкретный уарт, в который пишет функция printf? Как мне сделать так, чтобы во время выполнения программы, printf в зависимости от моих потребностей printf писал бы в 4-ый уарт, затем в 1-ый, затем в софтварный, затем в программный буффер, затем в усб порт? 4. Литературы на русском по Keilу нет, и по Соrtex-M3 архитектуре тоже нет. Есть всего одна книжка на английском: "The definitive guide to the arm cortex-m3". В стране полным ходом развиваются нанотехнологии, а книжек по современным МК нет. Неужели государство не может выделить 5-10 тыс. у.е. на написание книги. Пусть хоть 100 тыс по смете будет, но мне книга по кортексам нужна, а не словарь нанотерминов. Вопрос: Какая есть литература на русском, и какие ещё есть книги на английском? 5. LPC1768 очень неплохой микроконтроллер за те деньги, которые за него просят. Нужно устройство, которое принимает данные по усб, записывает их во внешний флэш объёмом 1ГБайт, затем подключается при помощи модуля к вайфай сети и отсылает "нужные" данные. Все сохранённые во флеше данные отображаются на дисплее, а "нужные" выбираются при помощи тачскрина. Т.е. нужно отрисовывать графические элементы и обрабатывать сигналы тачскрина. Вопрос: На что мне нужно обращать внимание и на что не нужно, чтобы сделать такое устройство и чтобы не убить на это слишком много времени? Под словами "слишком много" понимается время, через которое появится новое поколение МК, а сабжевые устареют и/или заметно (их) поднимут(ся) в цене.
  3. USB->Com->Windows

    Работоспособность функции Ignore Hardware Serial Number зависит от версии установленных FTDIшных драйверов. В зависимости от драйвера манипуляции с реестром могут иметь требуемый эффект, а могут и не иметь.
  4. Мы делали следующим образом. Бутлоадер зашивался по джэйтэгу, ну а прошивка в зашифрованном виде по уарту. DTR и RTS линии использовалисть для сброса МК и переключения между бутлоадером и рабочей программой соответственно. К МК подключен мост от FTDI, который по 7-8 долларов у нас. Бутлоадер компилировался обычным образом, никаких "перемещений" векторов в нём нет. Функции всех прерываний бутлоадера содержали инструкцию безусловного перехода (branch) по адресам "сдвинутых" прерываний рабочей программы. Эти адреса задавались в скрипте для компоновщика. "Сдвинутые" прерывания находятся во флеше, сначала были в RAM, но от этой идеи отказались, т.к. возможны неприятные последствия, какие именно уже не помню. Ещё надо разграничить адресное пространство для бутлоадера и рабочей программы, чтоб не перекрывались. Вот команды для компоновщика IAR, включая "перемещённые" вектора прерываний рабочей программы. Для бутлоадера. // Constant data -Z(CONST)DATA16_C,DATA16_ID,DIFUNCT=EA00-FFDF // Code -Z(CODE)CSTART,ISR_CODE=EA00-FFDF -P(CODE)CODE=EA00-FFDF // Interrupt vectors -Z(CODE)INTVEC=0xFFE0-0xFFFF -Z(CODE)RESET=FFFE-FFFF Для рабочей программы. // Constant data -Z(CONST)DATA16_C,DATA16_ID,DIFUNCT=4040-FFFF // Code -Z(CODE)CSTART,ISR_CODE=4040-FFFF -P(CODE)CODE=4040-FFFF // Interrupt vectors -Z(CODE)INTVEC=0x4000-0x403F -Z(CODE)RESET=403E-0x403F Чтоб задействовать в IARе: Project -> Options -> Linker -> Config -> Linker command file -> Override default снять. Скопировать файл, который там указан в директорию своего проекта и добавить вышеописанные команды. Вы разберётесь. Вобщем всё это интересно, можно свою мини-ось написать с отдельными экзешниками, мультизадачностью... Был бы вагон времени только. :)
  5. API операционной системы - зло, используйте кроссплатформенные библиотеки. :)
  6. Собсно выдержка из документа: "Малошумящий широкополосный усилитель тока содержит четыре токовых зеркала (ТЗ) 1-4, включенных последовательно между шинами положительного 9 и отрицательного 10 питания, и цепи выходных комплементарных транзисторов (Т) 5,6 и 7,8." Складывается впечатление, что патентуют всякую несуразицу, не понимая, не рассчитывая, не симулируя, не проверяя. А когда в твоей схеме найдут похожий кусок, скажут давай денег, мы первые это придумали. Интересно такие случае в истории бывали?
  7. В схеме очень порадовали четыре диода, подключенные к питанию в прямом (!) направлении. У Хоровица такого не припомню. Или я отстал от современной схемотехники или авторы данной конструкции что-то напутали. Разъясните суть. :D
  8. Флоатами получается очень медленно и громоздко. Для своего вольтметра все делал делением и вычислением остатка на интегерах. Вывод на три 7-сегментных светодиодных индикатора. Могу сурсы дать. Существует какой-либо быстрый алгоритм разложения 16-битного целого на десятичные составляющие, с шифтами например? На аттини26 делением и остатками при 1МГц у меня эта операция занимает 200мкс. Интересно, подсчетом вычитаний 1000, 100, 10 быстрей будет?
×
×
  • Создать...