Вітаю всіх. У сьогоднішній статті мова піде про те, як можна реалізувати власний високорівневий API в керованому коді для роботи з пристроями друку, від встановлення нового монітора друку в системі і до отримання обробленого драйвером пристрою друку документа з порту принтера.

Як і в минулий раз, стаття буде корисна для ознайомлення розробникам молодшого та середнього ланки. В процесі вивчення матеріалу, Ви дізнаєтеся як можна звертатися до низькорівневим DLL WinAPI в C# з допомогою P/Invoke, як встановити, налаштувати і видалити з системи монітори друку, драйвер принтера, сам пристрій друку, відкрити і зв'язати порт для перенаправлення вхідних даних з пристрою друку на монітор, познайомитеся з ключовими моментами застосування маршалирования. Так само ми на практичному прикладі розберемося, як за допомогою нашого API можна зручно маніпулювати пристроями друку в системі, дізнаємося, як можна перехопити оброблені дані після друку принтера і, наприклад, відправити їх на сервер.

Читати далі →

Переходимо з STM32 на російський мікроконтролер К1986ВЕ92QI. Практичне застосування: Опитуємо клавіші, управління яскравістю світлодіода (генеруємо напруга на виводі) з допомогою ШІМ (PWM+TIM+PORT)

Вступ.

У двох попередніх статтях ми генерували за допомогою ШІМ тактовий сигнал потрібної нам частоти, отримуючи на світлодіоді рівний проміжки світіння і його відсутності. Дана задача має місце на практиці (в одній з наступних статей ми з нею точно зіткнемося). Але найчастіше ШІМ використовують за іншим призначенням. Одне з найпоширеніших — керування яскравістю світлодіодів або швидкістю обертання двигунів. Так само за допомогою ШІМ можна генерувати звук (про що буде наступна стаття). А в цій статті мені хотілося б розповісти, як на нашому контролері можна реалізувати керування яскравістю світлодіода.

Читати далі →

Переходимо з STM32 на російський мікроконтролер К1986ВЕ92QI. Практичне застосування: Опитуємо клавіші, генеруємо ШІМ. Порівняння коду на CMSIS і SPL (PWM+TIM+PORT). Частина друга

Вступ.

попередній статті ми з вами повторили загальну структуру таймера і детально розглянули ручний спосіб налаштування ШІМ каналу з використанням CMSIS. Але багатьом не подобається «копатися в регістрах» і вони воліють принципово інший рівень абстракції, що дозволяє, як їм здається, спростити завдання. У цій статті я спробую показати вам всі плюси і мінуси даного підходу.
Читати далі →

Переходимо з STM32 на російський мікроконтролер К1986ВЕ92QI. Практичне застосування: Опитуємо клавіші, генеруємо ШІМ. Порівняння коду на CMSIS і SPL (PWM+TIM+PORT). Частина перша

Вступ

Відступ
З останньою написаної мною статті пройшло вже досить багато часу, за що прошу вибачення: ЄДІ, вступ, початок навчання. Тепер же, коли до сесії ще далеко, а навчальний процес вже забирає не так багато часу, я можу продовжити писати статті про освоєння нашого К1986ВЕ92QI.

План роботи
В коментарях до попередніх статей мене просили висвітлити не тільки роботу з мікроконтролером через налаштування регістрів, але і з використанням SPL (Універсальної бібліотеки для авто налаштування периферії.). Коли ми тільки починали, я не став цього робити, бо спокуса використовувати SPL замість ручного налаштування за коштами CMSIS був би великий, і ви б, дуже ймовірно, всупереч здоровому глузду, почали б використовувати SPL скрізь, де тільки можна було. Зараз же, навчившись роботі з деякими блоками периферії вручну, ми можемо торкнутися SPL і порівняти ККД обох підходів в реальному завдання.

Мета
В якості навчальної мети, давайте помигаем світлодіодом за коштами ШІМ-а (Широтно-імпульсної модуляції.), при цьому регулюючи кнопками його частоту. Кнопки так само будемо опитувати в перериванні, викликаного іншим таймером, а в момент опитування — будемо інвертувати стан другого світлодіода. В реалізації цього завдання нам знадобиться:

1. Налаштувати вивід порту вводу-виводу, підключеного до світлодіоду, для ручного управління. Цим світлодіодом будемо показувати, що ми зайшли до переривання і опитали кнопки.
2. Налаштувати вивід порту вводу-виводу, підключеного до другого світлодіоду, в режим керування від таймера. Саме сюди буде подаватися сигнал ШІМ від першого таймера.
3. Налаштувати перший таймер в режим подачі ШІМ сигналу на другий світлодіод.
4. Налаштувати таймер для виклику переривання, в якому ми будемо опитувати клавіатуру.
5. Дозволити використання переривань на рівні таймера (по конкретній події) і на рівні загальної таблиці векторів переривань від другого таймера в цілому.


Читати далі →