HI-TECH | MCU Space

Архив

Публикации с меткой ‘HI-TECH’

DS18xxx

29 сентября 2015

ds18_В данном посте приведу пример работы с DS1820 по интерфейсу 1-WIRE рассмотренном в прошлом посте.

Руководствуясь даташитом накидал пример по извлечению температуры из DS1820 — проверял в железе, но и добавил возможность подключения DS18B20  — различие лишь в переводе температуры в человекопонятный вид. Так же осуществлен обмен с несколькими датчиками на 1й шине и организован обмен с учетом паразитного питания.

ds_all

Код чтения следующий:

Читать далее…

Измерения , , ,

USB HID

28 ноября 2014

logo-usb

В сети куча примеров по работе с HID, так как MC распространяет(ял) примеры но под компилятор C18, а в настоящее время под компилятор XC, для Hi-Tech увы примеры отсутствуют.  В связи с этим был переработан первый попавшийся в сети пример из C18 в  Hi-Tech 9.80.

Так же данный проект отвязан от библиотек МС — лишь нужные включены в проект.

Подключение следующее, так же не стоит забывать о кварце 20 МГц подключенному к МК:

hid_usb_chem

Верхушка написана на MS Visual C# 2010, выглядит следующим образом:

Читать далее…

Протоколы обмена , , , ,

Watchdog Sleep

2 октября 2014

wdt_p

Порой требуется запускать МК на очень короткое время, производить какие либо действия(измерение температуры и т.п.) и снова засыпать для экономии заряда батареи, для этих целей удобно использовать Watchdog. В МК серии PIC18F все довольно просто.  Нужно лишь правильно указать нужное время сна в регистре предделителя таймера Watchdog . В даташите написано следующее:

Для PIC18F2420/2520/4420/4520 устройств, WDT тактируется от внутренней RC. Номинальный период WDT составляет 4 мс и имеет такую ​​же стабильность, как INTRC генератор.  Сон  WDT может быть от 4 мс до 131.072 сек (2.18 минуты).  Регистр WDTPS может принимать значение от 1 до 32768WDT и предделитель очищаются при любом из следующих событий: выполнение команды SLEEP или CLRWDT,  IRCF бит (OSCCON <6:4>) изменен или произошел сбой тактирования.

Т.е. при предделителе равном 256, мы имеем 0,004 х 256 = 1,024 секунды сна.

В данном примере зажигаем светодиод на 50 мс каждую секунду:

Отсчет времени , , ,

1-Wire

1_wire1-Wire становится популярен среди протоколов обмена, рассмотрим протокол от Dallas

 

 

 

Накидал небольшую библиотеку:

Читать далее…

Протоколы обмена , , ,

Конфигурация генератора контроллера

8 апреля 2014

HC-49 (alto)Размазанные сведения в даташите по конфигурации контроллера порой не стыкуются с компилятором, первой палкой в колесо оказывается — конфигурация генератора контроллера. В данной статье будет рассмотрен пример с компилятором HI-TECH PICC18 v9.80 и микроконтроллера PIC18F2520.

В даташите на данный микроконтроллер присутствует следующее описание конфигурации режима работы генератора:

osc1

Рассмотрим самые востребованные 2 режима работы — работа от кварцевого резонатора или генератора, а так же работу микроконтроллера от внутреннего генератора.

Читать далее…

Конфигурация , ,

Timer1

4 апреля 2014

Timer1В прошлой статье я  рассказал про Timer0, настало время Timer1 — которым мы будем считать импульсы пришедшие на вход. Данный урок поможет совместно с Timer0 легко написать программу для частотомера или цифровой шкалы для приемника.

timer1_prot

 Пример работы с данным таймером:

Читать далее…

Отсчет времени , , ,

PWM(ШИМ)

11 марта 2014

SHIMШИМ — одно из замечательных изобретений человека, наверняка каждый в быту видел плавное управление яркостью лампы накаливания, оборотами электродвигателя и т.п. В настоящее время ШИМ присутствует практически в каждой умной вещи, примером даже может стать зарядное устройство для телефона — в котором ШИМ чаще всего работает на частоте 30-150 кГц. На ранних порах изучения МК я всячески избегал аппаратного ШИМ в МК, и извращался при помощи прерываний и таймеров, но потом всё таки уловил его «сладкий вкус». Самой сложной задачей — является конфигурирование ШИМ, а именно расчет и установка периода.  В данном примере буду использовать контроллер PIC18F2520, у которого CCP1 и CCP2  работают в связке с Timer2.

pwm_prot

 

Пришло время расставить все точки над «И», начнем:  Читать далее…

Управление , , , , ,

KS0108

ks0108_iconОтличный дисплей в плане управления. Но из минусов — отсутствие 4 битной шины, только 8 бит, и в основном в продаже с синей подсветкой и белыми пикселями. Думаю сама стекляшка у ST7920 и KS0108 одинаковая, и поменять местами вероятно возможно.

ks0108

Нашел модель для Proteus‘a — но она кривая — в железе всё отрабатывается отлично.  Накидал библиотеку умеет следующее:

Читать далее…

Индикация , , ,

ST7920

20 февраля 2014

st79Покупал данный индикатор не зная что он окажется очень неудобным в управлении. Складывается ощущение что ST7920 разрабатывался для вывода текста или китайских иероглифов — к этому располагает его стандартный текстовый режим и организация графической памяти блоками 8х8 бит в расширенном режиме. А прямой вывод пикселя отсутствует — т.е. нужно сначала считать 2 байта на нужно позиции блока, изменить в нужном байте цвет пикселя и вернуть обратно 2 байта — это из теории, пока до этого руки не дошли.

У данного дисплея своеобразная адресация графической памяти
Верхняя половина экрана:
y=0 ..31
x=0.. 7
Нижняя половина экрана:
y=0 .. 31
x=8 ..15

st7920

st79_prot

Было принято решение запустить его на 4 битной параллельной шине, ибо забирать больше одного порта под управление дисплеем не хотелось. Он имеет и последовательный интерфейс, но при этом страдает и быстродействие, поэтому решил остановиться на первом варианте.
Читать далее…

Индикация , , ,

Timer0

7 февраля 2014

Timer0При изучении МК обязательно следует обратить внимание на таймеры, т.к во многих проектах требуется отсчитывать точное время или вести счет внешних импульсов. Для расчета всех регистров данного таймера удобно использовать программу PIC Timer Calculator о которой я рассказывал ранее. Все довольно просто: выбирается частота,  нужный период  и программа рассчитывает значения регистров таймера.

Timer0_prot

Рассмотрим принцип работы с Timer0:

Читать далее…

Отсчет времени , , ,