четверг, 27 ноября 2014 г.

Если AcrobatReader не открывает PDF, созданный pdflatex

Иногда бывает, что PDF, который создаёт pdflatex потом не открывается в AcrobatReader. Особенно часто это происходит с AcrobatReader старых версий. Если получился такой PDF, то его можно исправить используя GhosScript. Нужно прогнать PDF через следующую команду:

gs -sOutputFile=output.pdf -sDEVICE=pdfwrite -dNOPAUSE -dBATCH наш_проблемный_файл.pdf

Если ещё при этом нужно преобразовать PDF в чёрно-белый, то команду нужно видоизменить следующим образом:

gs -sOutputFile=output.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray  -dNOPAUSE -dBATCH наш_проблемный_файл.pdf

Ещё данный способ помогает если PDF не принимают некоторые глупые системы приёма статей в некоторых журналах.

четверг, 16 октября 2014 г.

Использование MSP430-Launchpad в качестве программатора

Руководство предназначено тем, кто уже имеет MSP430-Launchpad, освоил микроконтроллеры MSP430-ValueLine и задумывается о том, чтобы перейти на более продвинутые МК MSP430, но пока не решился на то, чтобы приобрести профессиональный программатор MSP430-JTAG или MSP430-UIF. Но это не страшно. В качестве программатора можно пока будет использовать Launchpad. Ниже я расскажу как это сделать.

воскресенье, 12 октября 2014 г.

Как подружить КОМПАС и LaTeX

КОМПАС --- это САПР для трёхмерного твёрдотельного моделирования с поддержкой ГОСТов ЕСКД из коробки. В КОМПАСе достаточно удобный 2D редактор, поэтому студенты часто его используют для рисования рисунков в курсачи. Выпускает его известная отечественная компания АСКОН.

Под катом приведён способ как экспортировать чертёж из КОМПАСа так, чтобы его можно было вставить в LaTeX. Проблема является актуальной, как показало обсуждение на dxdy.ru .

Тем не менее, если предполагается в дальнейшем использовать LaTeX для написания статей и т.п., а не сдать курсач/диплом и забыть про него, то данный способ использовать НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЕТСЯ! Нужно освоить профессиональное ПО для подготовки publication-ready графики: Inkscape, TikZ, Metapost и т.п.

воскресенье, 17 августа 2014 г.

Дополнительные режимы работы АЦП в MSP430. Часть 2.

Это руководство посвящено многоканальному режиму АЦП в микроконтроллере MSP430G2553 на плате Launchpad. В предыдущей части был рассмотрен одноканальный режим АЦП с прямым доступом к памяти DMA. Точно так же можно использовать АЦП и во многоканальном режиме. АЦП будет автоматически пересылать результаты преобразования со всех каналов на заданный адрес в памяти. В этом процессе ядро микроконтроллера не задействовано и может заниматься другими делами (например расчётами). Операции с АЦП выполняются как бы в отдельном потоке. Таким образом реализуется примитивная аппаратная многозадачность. Как это сделать рассмотрено под катом.

вторник, 5 августа 2014 г.

Дополнительные режимы работы АЦП в MSP430. Часть 1.

В этой части рассказывается о том как запустить АЦП на плате Launchpad и воспользоваться продвинутыми режимами работы АЦП: одноканальным многократным и многоканальным многократным и взаимодействием с контроллером прямого доступа в памяти --- DMA. Благодаря этим режимам АЦП можно автоматизировать процесс аналого-цифрового преобразования, в отличие от PIC и AVR где нужно каждый раз дёргать бит в управляющем регистре, потом ждать конца преобразования и извлекать результат. Достаточно настроить АЦП один раз и потом АЦП будет автоматически пересылать результаты на нужный адрес в памяти без вмешательства со стороны пользователя. Несмотря на то, что микроконтроллер MSP430G2553, который идёт в комплекте с платой Launchpad, относится к категории бюджетных, плата позволяет получать результаты недостижимые для МК семейств PIC и AVR. О подробностях см. под кат.

Как задействовать функцию printf() в MSP430-GCC

Функция printf() бывает очень полезна при отладке различных устройств на MSP430 по UART. Ещё с помощью неё можно выводить сообщения на дисплеи и т.п. Printf() для MSP430 ничем не отличается от printf() из стандартной библиотеки С.

 Задействовать её очень просто. Нужно в любом месте программы определить функцию putchar(). В зависимости от функции putchar() будет различаться поведение функции printf(). Если putchar() выводит символ на UART, то printf() будет печать строку на UART. Если putchar() выводит символ на дисплей, то printf() напечатает строку на дисплее. Например в проекте из предыдущего поста определим функцию putchar() в файле uart.c вот так:
int putchar(int c)
{
    uart_putc(c);
    return c;
}
 
И теперь можно использовать отладочную печать на UART: Например вот так:

printf("P1.5 pin voltage = %d mV\n",mV);

воскресенье, 27 июля 2014 г.

Работа с последовательным портом из консоли Linux

В предыдущем посте было показано как запустить UART на отладочной плате Launchpad для MSP430. Теперь рассмотрим как общаться с платой при помощи средств командной строки Linux. Используется плата с прошивкой из предыдущего поста. Для подробностей - см. под кат

суббота, 26 июля 2014 г.

Запускаем UART на MSP430 Launchpad

Это рукодство посвящено тому как запустить аппаратный UART на плате MSP430-Launchpad. Мы будем рассматривать старый Launchpad для контроллеров ValueLine. Он идёт в комплекте с двумя МК: MSP430G2452 и MSP430G2553. Аппаратный UART имеется только в микроконтроллере MSP430G2553, поэтому использовать будем его. Все действия я буду выполнять для ОС Linux, поэтому используется компилятор msp430-gcc. Предполагается что читатель знаком с базовыми принципами работы с MSP430 в ОС Linux, про которые можно прочитать например в серии статей вот здесь . Итак, под катом будет пример работающего кода для коммуникации MSP430 по UART.

суббота, 8 февраля 2014 г.

Новый Draft SightV1R5.0 не открывает файлы.

Недавно вышел новый DraftSightV1R5.0. Я обновился до него и обнаружил неприятный баг. DraftSight отказывается открывать любые файлы и выдаёт сообщение об ошибке: "Не удалось открыть указанный чертежный файл.Убедитесь, что файл существует."
Потом правда оказалось, что это относится не ко всем файлам, а только к тем у которых есть в пути русские буквы. Если их переименовать/переложить так, чтобы в имени и в пути были только латинские буквы, то всё открывается отлично. Так что всем, кто обновился на новый DraftSight следует иметь это в виду и переименовать свои файлы, либо вообще не обновляться.