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

igorle

Свой
  • Постов

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

  • Посещение

Весь контент igorle


  1. Поддерживаю предыдущего оратора. И еще. "функции" без точки с запятой в конце, сбивают механизм автоматической индентации. Например, я сейчас напечатал в виме код, и он выровнял мне его так: if (1) aaa() bbb(); А это некрасиво. И это уже достаточный повод не делать этого.
  2. Такой результат получится с любым исправным компилятором. Если есть под рукой GCC - посмотрите результат препроцессора. У меня под рукой нет. Поэтому сделаем препроцессинг вручную. if (0) if (1) aaa(); превращается в if (0) if (1) ; { printf("Good style saves you\n"); }; Или, после причесывания if (0) if (1) ; { printf("Good style saves you\n"); }; А вывод один - обрамляйте любую макрофункцию, состоящую более чем из вызова одной функции, do {} while(0), и будет вам счастье. Ruslan1, выше был пример. Но я повторю его, так как выше смешал два случая: #define aaa() { printf("XXX\n"); } if (1) aaa(); else printf("Yo are so wrong\n"); просто не скомпилируется.
  3. Элементарно. Я исхожу из предположения, что точка с запятой здесь (WDELAY_RESTART(); ) поставлена умышленно: #define aaa(); { printf("Good style saves you\n"); } int main() { int i = 0; if (0) if (1) aaa(); return 0; } Будет напечаттано сообщение? Проверьте здесь Теперь предположим, что точка с запятой стоят ошибочно (а это скорее всего так и есть) Попытайтесь скомпилировать этот код: #define aaa() { printf("XXX\n"); } int main() { if (0) if (1) aaa(); else printf("Yo are so wrong\n"); return 0; }
  4. Отладка в Keil

    Хм. Логично. Во время выполнения регистр будет использоваться для разных нужд. Так что лучше "не искушать". Читать ассемблер даже полезно. А как насчет первого вопроса? Как посмотреть - где я был, когда пришел интеррапт?
  5. Отладка в Keil

    Кейл. STM32F1. - Если я нахожусь в обработчике прерывания - могу ли я узнать, где мы находились в момент прерывания (куда вернемся из прерывания) - Если для автоматической переменной в функции используется регистр, то в "call stack + locals" я эту переменную не вижу. Могу ли я узнать - какой регистр соответствует этой переменной, без того, чтобы дизассемблировать код?
  6. У меня использование операции "остаток от деления" значительно увеличивает размер скомпилированного кода. Я бы сдеалал как-то так: #define CAPACITY 5 #define DIVIDER 10000 /* DIVIDER should be 10^(CAPACITY - 1) */ char b[CAPACITY] = {0}; int i; int divider = DIVIDER; for (i = 0; i < CAPACITY; i++) { while (v > divider) { v -= divider; b[i]++; } divider /= 10; }
  7. рекомендую использовать функцию memcpy() Она обычно оптимизирована для каждой платформы. В крайнем случае она сделает то же самое копирование байт за байтом, но в большинстве случаев она работает быстрее. Функция принимает два указателя на void. Так что любой другой указатель приведется к типу (void *) без ворнинга.
  8. А почему не пригодны? Я отложил в сторону ISD5100 - хочу поиграть с нею в долгие зимние вечера.... Мне казалось, что она для хомяка - самое то - не дорогая и, кажется, простая в управлении. Какие с ней проблемы?
  9. для осуществления обратной связи используется протокол RTCP
  10. если часы в приемнике медленнее - по мере переполнения буфера пакет-другой выбрасывается. Если часы в приемнике быстрее - то при опустошении буффера звук/картинка останавливается для буфферизации. Поскольку часы относительно точные - проблемы возникают не часто.
  11. Я согласен. Я не занимаюсь производством. Делаю прототипы разных решений для собственного удовольствия. Сейчас у меня в арсенале есть PLM - модем для передачи данных по сети. И мне не нравится то, что имея 220 на борту, я рядом размещаю еще один адаптер. 220AC/5DC. Это при том, что плата с PLM не перегружена. (платы 5х5 см.) Занятие мое совершенно иррационально. Возможно, я просто перенесу детали с USB адаптера к себе. Все-равно при цене 80 центов за адаптер детали обойдутся дороже.
  12. Спасибо. Пошел смотреть. На всякий случай поясню - я знаю принцип работы импульсного блока питания. Меня интересует именно обратная связь, которая выполнена с использованием оптрона. Я разломал с десяток блоков питания разных производителей (мне коллеги приносят свои, когда они перестают работать), и вижу, что все они отличаются или серьезностью фильтров на входе, или выпрямителем на выходе. Но загадочный оптрон есть у всех. Вопрос был про обратную связь через оптрон. По поводу напряжений - я знаю и умею. Мой Power Line Modem (через 220) работает отлично. Я как раз к нему и собираюсь добавить блок питания.
  13. Во многих блоках питания вижу оптрон рядом с небольшим трансформатором. Похоже, что это стандарт на сегодня. Я купил по 80 центов маленьких адаптеров для USB и сую в свои самоделки. Теперь, для экономии места, хочу встроить схему в печатку. В связи с этим вопросы: - Как называется такая схема блока питания? (чтобы знать что искать) - Можете ли посоветовать книгу (желательно - pdf) или хорошую статью, объясняющую принцип действия? - Где берут трансформаторы для таких блоков? Речь идет о нескольких десятках штук. PS. К сожалению, поиском по этому форуму ничего не нашел. Хотя наверняка эта тема здесь обсуждалась. Если кто помнит подходящую ветку - дайте линк, пожалуйста.
  14. Боюсь представить, с какой скоростью у вас наматывается шнур, если геркон не успеет сработать. Ну и концевой датчик в любом случае надо делать для дублирования. Завяжите устричный узел на шнуре, пропустите сквозь петлю на концевике и отключайте питание железно (без CPU) по срабатыванию.
  15. Ну я так понял по контексту, что речь идет не о металлическом тросе. Поскольку магнит вплетают. А о синтетическом шнуре.
  16. Ну, раз вы даете "добро" - попробую так. Сарказм виден, но не оправдан. На двух элементах, полученных бесплатно из TI, можно сделать все устройство. Я любитель, а не профи. Но что-то мне подсказывает, что даже в небольшой серии это не дорого (90 центов MSP и 40 центов LDO). Спасибо. Посчитаю - проверю себя еще раз.
  17. Речь идет о проекте "выходного дня" Друг попросил сделать таймер для розетки. Чтобы включать тостер на короткое время. Я нашел "двойник", у которого можно оставить одну розетку, а во вторую втиснуть электронику. Имеем реле на 12 вольт (коммутация до 10 ампер), MSP430, две кнопки и леды. Есть LDO, с входным напряжнием до 28 вольт Планирую по кнопкам выбирать время включения. Например - 1 минута, 2, 3,5,10,15 Вопрос, как запитать схему. Надо 12 вольт 10 мА. Стабильность - не критична. Что этому реле сделается? Если сделать делитель напряжения на двух конденсаторах 0.47 и 4.7 микрофарад, затем однополупериодный выпрямитель на одном диоде, сглаживающий конденсатор. От этого напряжения питать реле и LDO. Должно работать? Я ничего не упускаю?
  18. Спасибо. Эти выходные буду изучать тему по Вашим ссылкам. Кстати, у меня большая радость. Оказалось что в нашем здании и даже на нашем этаже есть представительство ST. И люди что сидят там - как раз и занимаются поддержкой разработчиков. Так что я договорился о встрече на следующей неделе. Обещали не только дать ссылки, но и совместно скомпилировать то что мне надо и проверить результат на моем борде.
  19. Я когда нашел для себя (год назад) MSP430 и пищал от восторга (сделал несколько проектов для себя и друзей), то слышал от "теоретиков", мол брось ты его. Осваивай АРМ, например STM32. Для АРМа, говорят, есть масса библиотек и готовых проектов. Практически любую задачу уже решили и выложили код. Костяк любого разумного проекта, мол, будешь брать готовый прямо с сайта ST. А сейчас я не могу найти даже готовый проект "Diskonkey". Чтобы PC видел стандартное USB устройство, а накопителем работала SD карточка. :( А ведь и USB, SPI и файловая система - стандартные вещи. То-ли все не так радужно, то-ли пока не разобрался, как искать. Желательно чтобы машина (PC) могла удалять файлы. Но в крайнем случае от этого можно и отказаться. В принципе, контроллер может сам удалять старые файлы. Единственно, я хотел бы иметь возможность форматировать SD c PC, но и от этого можно отказаться. Вынимать карточку, ставить ее в адаптер и форматировать отдельно. Я могу сообщить контроллеру, что сейчас идет форматирование и писать ничего не надо. Но читать надо "на лету".
  20. От идеи USB хоста я уже отказался. SD карта выглядит более реальным вариантом. А вот то, что таких проектов нет готовых - не ожидал. Надеялся что задача тривиальная и многократно решенная, в том числе и в открытых проектах. Жаль. Спасибо. Я все-же попытаюсь. Я видел на сайте ST несколько пакетов для работы с USB. Кто-нибудь делал/видел обзор? Кто-нибудь их использует и может порекомендовать?
  21. Мне надо компактно и из имеющихся материалов. А имею STM32F103C8 Странно, но я не нашел готового примера с USB "стика" для моего чипа. Есть один старый 2009 года. Но он с моим кейлом уже не совместим. Не в смысле формата проекта, а в смысле используемых инклюдов. Старый проект использует stm32f10x_lib.h. Сейчас вместо него Кейл определяет stm32f10x.h. И просто замена одного файла другим не работает :(
  22. Вот здесь есть подробности. И сто с лишним комментариев.
  23. Возникла потребность, для рабочих нужд, сделать на скорую руку накопитель информации на флэшке. В идеале результат вижу так: - Подключаем к устройству Diskonkey - Подключаем устройство к PC (USB) PC должен видеть флэшку, как будто она подключена к нему напрямую (или через хаб) Устройство должно иметь возможность записывать файлы в файловую систему. Цель - устройство пишет файлы на флэш, с компьютера данные считываются и стираются из флэшки. Устройство нужно для собственных нужд, пользоваться буду я сам и коллеги. Так что можно пережить отдельные неудобства. Например, я могу не трогать текущий файл, открытый на запись устройством. По сути, надо реализовать USB хост, USB устройство и файловую систему. Что-то подсказывает мне, что идея не нова, и есть готовые проекты для этого. Кто-то видел подобное и может дать ссылки? Чтобы не изобретать велосипед. По силам это, например STM32F1? PS. Я вот тут пораскинул мозгами. Может быть проще SD карточку приспособить, в качестве накопителя? Не надо будет USB хост городить...
  24. Я вот здесь зарегистрировался специально чтобы выложить материал. Там есть и проект, и файлы для производства. Срого не судите и сильно не доверяйте. Я его проверил, работает. Но оптимальность не гарантирую. Это мой учебный борд. Я на нем учусь не только прогаммировать STM32F1, но и разводить под него печатку.
×
×
  • Создать...