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

Harvester

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Местный
  • День рождения 24.12.1976

Контакты

  • Сайт
    http://

Информация

  • Город
    Королев, М.О.
  1. Просто_Светодиод

    Кто же лучше Вас может знать, где они висят? :cranky:
  2. Добрый день. Разбираю чужие исходники, программа на базе FreeRTOS. Соответственно хотелось бы представить всю совокупность задач ОС и взаимодействия между ними в графическом виде. Вроде бы для этого подходит диаграмма последовательностей UML, но вот как отобразить на ней все эти мьютексы, семафоры, очереди - не понимаю :( Может кто-нибудь решал подобную задачу и может подсказать, как это лучше сделать? PS. Нашел несколько материалов по этой теме, пока разбираюсь. Но любые советы все равно приветствуются :) article2.pdf rt_uml_art1.pdf 04_1_Selic_Watson_RT_UML.tutorial.pdf Task2.1.doc
  3. Не вводите людей в заблуждение! ATMega в этих проектах используется только для управления сервоприводом. Распознаванием занимается ПК.
  4. Помогите разобраться в работе make

    Какой есть. :laughing: Эта библиотека используется в локальном проекте, расположенном в соседней папке. Наверное поэтому разработчик и не стал заморачиваться.
  5. Помогите разобраться в работе make

    Имеется проект из одного файла, для сборки которого используется makefile: [code]CFLAGS ?= -O2 LIBNAME = libmarsh VERSION_MAJOR = 2 VERSION_MINOR = 0 VERSION_RELEASE = 0 LINKER_NAME = ${LIBNAME}.so SONAME = ${LINKER_NAME}.${VERSION_MAJOR} REALNAME = ${SONAME}.${VERSION_MINOR}.${VERSION_RELEASE} TARGET_DIR = ../lib TARGET = ${TARGET_DIR}/${REALNAME} TARGET_STATIC = ${TARGET_DIR}/${LIBNAME}.a SRC = ${wildcard *.cpp} OBJECTS = ${SRC:.cpp=.o} HEADERS = ${wildcard ../include/*.h *.h} CFLAGS += -Wall -fPIC -I../include -I../../ LDFLAGS = -L/usr/lib/ LIBSERIAL_STATIC = -static -L/usr/lib/ -I/usr/include/ ../../libserial-0.6.0rc1/src/.libs/libserial.a LDFLAGS += -lrt CXXFLAGS += -g -std=c++0x -fpermissive CC = g++ all: ${TARGET} ${TARGET_STATIC} Makefile ${TARGET}: ${OBJECTS} Makefile mkdir -p ${TARGET_DIR} ${OBJECTS} ${CC} ${LDFLAGS} ${OBJECTS} ${LIBSERIAL_STATIC} -Wl,-soname,${SONAME} -o ${TARGET} ${LDFLAGS} ln -sf ${REALNAME} ${TARGET_DIR}/${SONAME} ln -sf ${REALNAME} ${TARGET_DIR}/${LINKER_NAME} ${TARGET_STATIC}: ${OBJECTS} Makefile ar cr $@ ${OBJECTS} %.o: %.c ${HEADERS} Makefile ${CC} -c ${CFLAGS} $< -o $@ clean: rm -rf ${OBJECTS} ${TARGET} ${TARGET_STATIC} ${TARGET_DIR}/${SONAME} ${TARGET_DIR}/${LINKER_NAME} .PHONY: all clean [/code] При сборке выполняются следующие команды: g++ -g -std=c++0x -fpermissive -c -o libmarsh.o libmarsh.cpp mkdir -p ../lib g++ -L/usr/lib/ -lrt libmarsh.o -static -L/usr/lib/ -I/usr/include/ ../../libserial-0.6.0rc1/src/.libs/libserial.a -Wl,-soname,libmarsh.so.2 -o ../lib/libmarsh.so.2.0.0 -L/usr/lib/ -lrt ln -sf libmarsh.so.2.0.0 ../lib/libmarsh.so.2 ln -sf libmarsh.so.2.0.0 ../lib/libmarsh.so ar cr ../lib/libmarsh.a libmarsh.o У меня, собственно 2 вопроса: 1. Почему в 1-й команде используется CXXFLAGS, хотя он не указан в правиле, а CFLAGS не используется, хотя и указан. При этом в 3-й команде CXXFLAGS уже не используется, хотя точно также не указан в правиле 2. (Этот вопрос относится, скорее, к идеологии разработки ПО под Линукс) Зачем нужно создавать символические ссылки, если результатом сборки должна быть библиотека ../lib/libmarsh.a?
  6. Цитата(mozg12342 @ Mar 31 2018, 18:07) Кодif(~(PINC|0b11111110))      //если bit 0 порта С равен нулю, то выполнить условие Для проверки бита нужно использовать оператор "логическое И" (&). А для логического отрицания - оператор "!". В вашем исполнении условие всегда истинно, поэтому компилятор его выкидывает.
  7. Собственно, возникла временная потребность в сабже, чтобы найти причину неустойчивой работы изделия с разными хостами. Есть ли у кого-нибудь опыт взятия такого прибора в аренду? Спасибо.
  8. Вопрос по аппаратному SPI в PIC

    Цитата(nicmicola @ Feb 14 2018, 15:16) Подключаемое изделие к микроконтроллеру, может поддерживать SPI только ведомым. Вопрос как настроить регистры интерфейса SPI в микроконтроллере. Что бы импульсы синхронизации выдавал микроконтроллер и одновременно принимал данные. Вы хотите странного. Интерфейс SPI подразумевает, что клок формируется ведущим. Ну а за режим работы отвечает регистр SSPxCON1, биты SSPM<3:0>
  9. Цитата(wim @ Sep 4 2017, 13:48) В тексте говорится об одном из механизмов возникновения дифференциальной помехи. Провода дифференциальной линии должны иметь по возможности одинаковый импеданс относительно земли. Если импеданс разный, то воздействие синфазной помехи приводит к появлению дифференциальной помехи. То есть под "Differential interference" понимается именно помеха? Просто меня смущает, что далее , где говорится о синфазной помехе, она обозначается привычным словом "noise".
  10. Добрый день. Перевожу статью о принципах работы синфазного дросселя. Статья состоит из 3-х частей: Differential Interference Common Mode Noise Common Mode Choke vs. Single Choke Однако несмотря на все мои познания в схемотехнике и английском, я никак не могу понять, о чем идет речь в 1-й части (с остальными двумя проблем нет): ЦитатаDifferential Interference First, we examine differential interference. With differential interference, what occurs through the device is that for any signal transmission from the line side, there should be an equal return on the neutral side. Whatever is crossing from your line (or the topside) back through the neutral (bottom side), should be cross-canceling. What is happening is that you're not going to get any unwanted noise in a differential mode if there is equal signal cancellation. When these types of transmissions are not balanced and cancelling, there will be the occurrence of differential noise. Буду очень признателен, если кто-нибудь сможет сказать, что понимается под терминами "Differential Interference", "signal cancellation", "balanced and cancelling" и хотя бы в общих чертах сможет объяснить, о чем говорится в тексте.
  11. SPI Flash Memory

    Согласен с предыдущим оратором. Раз ID читается нормально, значит на физическом уровне интерфейс настроен правильно. Осталось разобраться с протоколом. P.S. Предлагаю воспользоваться анализатором QSPI для Saleae Logic, который я когда-то нашел на просторах интернета - он показывает не просто значения байтов, а команды в соответствии с протоколом: Saleae QSPI analyzer Закинуть в папку "Analyzers" и перезапустить прогу. Для работы с обычным SPI оставить в настройках DQ2/DQ3 как "none". Цитата(bureau @ Jul 13 2017, 23:21) Стираем чип [attachment=107981:001_erase_chip.png] А Вас не смутило, что бит BUSY оказался сброшенным сразу после стирания (если судить по картинке)? По документации полное стирание занимает от 25 до 60 сек. Аналогично со стиранием страницы. Вы случайно вывод W на ноль не посадили?
  12. SPI Flash Memory

    Цитата(bureau @ Jul 10 2017, 20:20) Хорошо, а как тогда убедится что он отработал Write Enable корректно и установил бит WEL ? Если микросхема доступна для записи, она не может не отработать Write Enable
  13. SPI Flash Memory

    Цитата(bureau @ Jul 10 2017, 18:46) Борюсь с микросхемой SPI Flash памяти M25PE16 ID читается как положено, но вот когда пытаюсь записать что-то в память, то при чтении -- все пусто После отправки WriteEnable читаю STATUS REGISTER. При первом чтении -- 0xFF, при втором -- 0х00. Исходя из логики: WEL бит -- не устанавливается. Или все правильно и так и должно быть? Регистр статуса нужно читать до Write Enable.
  14. сдвигатель к155ир13

    Цитата(fascio27 @ Jun 7 2017, 18:00) из DA должно заноситься в D0 ,а из DB в D7 одновременно,я думаю это нужно , но не пойму как Нельзя.