Интересные функции и решения

Views: 7171


На заметку разработчику…


Простая функция

// преобразование двоично-десятичного в двоичное
char decbin_bin (char data)
{
char a;
a=data>>4;
a=a*10;
data=data&0b00001111;
data+=a;
return data;
}

Микроконтроллер  PIC18F46K22 модуль eusart2 иногда возникала ситуация, когда не возможно стандартной процедурой сбросить бит переполнения

    if(RC2STAbits.OERR) // проверка переполения
    {
        // EUSART1 error - restart
        RC2STAbits.CREN = 0;    // выключить и включить модуль
        RC2STAbits.CREN = 1;    //
    }

Сброс работал стабильно на 100% когда выполнялась процедура

/* устраняет OERR: Ошибка переполнения если остановился приемник
   в 46к22 востановление возможно на 100% выключением модуля     */    
    RC2STAbits.SPEN = 0;
    RC2STAbits.SPEN = 1;
    ukaz = RC2REG;
    RC2STAbits.CREN = 0; // выключить и включить модуль
    RC2STAbits.CREN = 1;

XC16

Если IDE показывает ошибку типа Неопределенный идентификатор!

Подчеркивает макросы и регистры, но при этом компилятор, ошибок при компиляции не находит, то это значит сам IDE не может определить место где искать описание вашего контроллера.

Исправить это можно указать в настройках. где конкретно они расположены. У меня, на текущий момент, это версия компилятора 1.41

И путь к файлам описания выглядел так

 

C:\Program Files (x86)\Microchip\xc16\v1.41\support\PIC24F\h

Для этого откройте свойства проекта:

Зайдите в предпроцессор и сообщения:

Откройте Си каталоги вложения:

Нажмите кнопку браузер и добавьте путь к папке описания:

 

 

ok, ok – IDE после этого пропарсит проект и неоправданные ошибки пропадут:

 


Это может быть интересно

  • Униполярный шаговый двигатель – часть 2Униполярный шаговый двигатель – часть 2
    Views: 802 В этой части только итог и версия 2.0 универсальной, которая позволяет управлять шаговым двигателем во всех трех режимах и 3.0 специальной библиотеки только для одного полушагового режима. В …
  • Kitchen timer with contactless gesture controlKitchen timer with contactless gesture control
    Views: 579    Кухонний таймер з безконтактним керуванням жестами дозволяє встановити необхідний період часу для приготування страв, не торкаючись пристрою. Дуже зручно під час приготування їжі, коли руки забрудниться. Усі …
  • Дифференциальный терморегуляторДифференциальный терморегулятор
    Views: 3983 Дифференциальный терморегулятор ch-3020 Назначение. Ch-c3020 представляет собой дифференциальный терморегулятор. Основное назначение солнечные системы горячего водоснабжения, а также вентиляционные системы управление притоком свежего воздуха. Контроллер позволяет работать пяти режимах. …
  • PIC18 – модуль DMAPIC18 – модуль DMA
    Views: 1170 Введение   Модуль прямого доступа к памяти (DMA) предназначен для обслуживания передачи данных непосредственно между различными областями памяти без вмешательства процессора. Исключив при этом необходимость в интенсивной  обработки …
  • Проект с использованием MCC часть 16Проект с использованием MCC часть 16
    Views: 1076 Продолжим изучение EUSART. На этом этапе отработает передачи данных с ПК и получения эха. Для этого в основной цикл программы добавим код if(EUSART_DataReady) // проверим флаг готовности данных …
  • Цифровой тахометр для автомобиля CH-С3300Цифровой тахометр для автомобиля CH-С3300
    Views: 1893  Тахометр Ch-С3300 предназначен для индикации и контроля оборотов, времени работы и максимальных оборотов развиваемых двигателем во время поездки. Датчиком может использоваться как обычный контактный прерыватель или выход датчика …
  • MPLAB® Code Configurator and EncoderMPLAB® Code Configurator and Encoder
    Views: 1404 Еще раз про энкодер… Для некоторых приложений очень удобно и экономически выгодно, для настройки и управления использовать энкодер. Такие энкодеры имеют строенную тактовую кнопку которую можно применить для выбора …
  • Проект с использованием MCC часть 05Проект с использованием MCC часть 05
    Views: 1935 Эту часть назовем так как избавься от delay, там где а это реально не надо. Для это нам потребуется научиться использовать прерывания и работать с таймерами. Что такое …
  • LED модуль P10C4V12LED модуль P10C4V12
    Views: 3098 LED панели на обычных регистрах типа 74HC595. Они выпускаются как монохромные так двух и полно цветные, особенность, что они предназначены для текстовой информации и имеют один уровень яркости. Общую яркость …
  • Простой оптический сенсор приближенияПростой оптический сенсор приближения
    Оптический сенсор, назначение оптический концевик, для автоматики, бесконтактный выключатель с функцией автоматического отключения...


Поделись этим!