alt   В некоторых приложениях необходимо рассчитать контрольную сумму путем 16-битного дополнения до единицы суммы дополнений до единицы всех 16-битных слов. Такой метод подсчета в основном применяется в протоколах internet , таких как  IP,UDP,TCP. Данная подпрограмма ориентирована на 18 серию МК и написана ассемблере . Для того что бы подсчитать КС необходимо указать в регистрах BaitL и BaitH необходимое количество байт для подсчета и  в ОЗУ МК записать сами данные .  

 

 

Понедельник, 17 декабря 2012 04:44

Применение Base64-кодирования в МК.

altКодирование Base64  в микроконтроллерах хоть и не так часто, но все-таки применяется. По этому и было принято решение написать данную статью в надежде что эта информация кому нибудь поможет в реализации задуманного. 

Самому  пришлось столкнуться  с  кодировкой  Base64  когда появилась потребность  в отправке от микроконтроллера  электронных сообщений (почтовый клиент),  где данная кодировка  в основном и применяется. 

 

main 1В некоторых микроконтроллерах есть встроенные модули DAC(цифро-аналоговый преобразователь) в частности PIC12F1822  о котором далее пойдет речь  и хотя в данном МК разрядность модуля не велика, но все равно можно получить относительно неплохой синусоидальный сигнал. Вообще сам метод применим и к другим ЦАП в том числе и сделанным на примитивных R-2R.  

 

 

Суббота, 19 марта 2011 23:32

Модуль PSP

 

При разработки устройств на микроконтроллерах фирмы Microchip (далее МК) иногда возникает необходимость реализации параллельной передачи данных. В некоторых МК производитель предусмотрел такой режим работы, называется  «Ведомый параллельный порт» или режим PSP (Parallel Slave Port - PSP).

 

 

 

Если в вашем приложении включена приоритетная система прерывания, то при составлении программы необходимо придерживаться определенных рекомендаций. Как мы помним у  прерывания с высоким приоритетом  вектор сброса 08h  в памяти программ, а с низким 18h, т.е. для написания кода в высоком приоритете не так и много места, по сути всего несколько команд. По этому лучше по вектору 08h  прописывать только команду перехода на ПП обработки прерывания с высоким приоритетом. 

 

Большинство микроконтроллеров  из серии PIC18FXXXX  позволяют переключать источник тактового сигнала генератора от  основного  к  дополнительному,  с  более  низкой  частотой.  К примеру в PIC18F252 в качестве дополнительного  генератора тактового сигнала можно подключить  генератор таймера TMR1. Низкочастотный резонатор подключается  к выводам  генератора TMR1 (T1OSO, T1OSI портС).

После переключения   микроконтроллер переходит  в  режим  работы  с  малым  энергопотреблением, т.к. будет работать от низкочастотного резонатора до 200 кГц. (Рекомендуется 32 кГц.) Емкость конденсаторов обвязки   33пф..

 

 

Данная подпрограмма была применена в видеоадаптере (http://www.chipmk.ru/index.php/features/44-2011-02-17-08-07-05/125--pic18f46k20) на основе этой программы и рассмотрим пример вывода символа. В этой конструкции применен шрифт 8х8 , значит, для вывода одного символа необходимо задействовать восемь байт. К примеру ,  необходимо вывести символ «Я» .

 

 

 

  Была необходимость применить подпрограмму «Преобразование однобайтного двоичного числа в трёхзначное десятичное число» в «пиках» 18 серии. Для этого пришлось подправить код. Дело в том , что команда «incf» в пиках 16 серии увеличивает значение регистра f на 1 и изменяет только “Z” флаг, а в 18 серии дополнительно изменяет флаги C, DC, Z, OV, N . По ходу программы после команды «incf» идет проверка флага «С» ( btfsc   Status,C ) ,но в результате исполнения команды «incf» в пиках 18 серии флаг «С» сбрасывается и программа работает не корректно...

После выхода ряда статей на этом сайте, часто возникают вопросы, связанные с алгоритмом вывода информации на экран телевизора , что и побудило написать эту статью. Особенно многие встают в ступор, если требуется каким  то образом изменить программу под свои задачи .Здесь я попробую более подробно, на «пальцах», рассказать как сам алгоритм вывода информации , так и об адаптации своего проекта.Надеюсь, что это поможет при разработке устройств .

 

 

altЭто часть статьи, из самоучителя по микроконтроллерам семейства PIC18XXXX, затрагивающая запись данных в память программ .

Процесс записи данных в память программ  отличается от чтения, хотя и используется подобная TBLRD инструкция для табличной записи - TBLWT. Так же  имеет несколько разновидностей, это:

  • TBLWT*   - происходит запись в промежуточный регистр  , указанного по адресу регистра (TBLPTRL, трех последних бит), адрес после выполнения не меняется,.

     

«В началоНазад12345678910ВперёдВ конец»
Страница 1 из 10

Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru