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