четверг, 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. Используется плата с прошивкой из предыдущего поста. Для подробностей - см. под кат