Перейти к содержанию
    

Помогите освоить MPLAB X IDE

Пришлось мне, всё-таки, расстаться с MPLAB 8.xx. Однако, при освоении новой среды столкнулся с некоторыми странностями.

К примеру, выставляю Configuration bits, но каждый раз после компиляции или при новом открытии проекта они упорно возвращаются к установленным "по умолчанию". Очередная попытка изменить на нужные мне значения сопровождается предупреждением "Pending change must be programmed". Как это понимать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выставляю Configuration bits, но каждый раз после компиляции или при новом открытии проекта они упорно возвращаются к установленным "по умолчанию".

А я в последнее время обленился и вообще их не трогаю. Мне их MCC генерит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы имеете в виду, что они прописаны в программе? Но в старой MPLAB был хотя бы такой чекбокс: "Configuration bits set in code". А здесь я даже такой возможности не вижу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы имеете в виду, что они прописаны в программе?

MCC генерирует кучу исходников, вокруг которых строится мой проект. В том числе исходник MCC.c, где прописаны фьюзы.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не пойму, почему у меня не получается видеть значения переменных в окне Watches (или Variables) во время отладки.

Вот, к примеру, крутится пару строчек для теста:

do
{
  U1 = ADC_5 (0, 0);
  
RB0 = ~RB0;   

} while (1);

Так вот, значение RB0 я могу видеть, а значение U1 - нет. Почему бы это?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не пойму, почему у меня не получается видеть значения переменных в окне Watches (или Variables) во время отладки.

Вот, к примеру, крутится пару строчек для теста:

do
{
  U1 = ADC_5 (0, 0);
  
RB0 = ~RB0;   

} while (1);

Так вот, значение RB0 я могу видеть, а значение U1 - нет. Почему бы это?

В некоторых случаях отладчик не может увидеть значение локальной переменной.

Я так понял, U1 - локальная переменная в какой-то функции, а RB - порт ввода/вывода. RB объявлен как глобальная переменная по определенному MMIO-адресу, скорее всего. Поэтому и видится без проблем.

Объявите U1 глобально и посмотрите.

В Keil, для ARM, по крайней мере, это так. Хотя бывает такое, что и локальные переменные видны. Причины разные - оптимизация (при отладке у должна быть в O0), размещение переменной в регистре... Ваша ситуация видится похожей.

Изменено пользователем Arlleex

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это очень странно. U1 у меня - переменная, объявленная в функции main, то есть, по сути, глобальная. Попытки объявить её как static, register или auto ничего не изменили. На extern ругается и, как бы, понятно почему.

В MPLAB 8.xx не было такой проблемы. Внутри функций виделись локальные переменные, в основной программе - глобальные, как и положено.

Сейчас же в каждой функции по-прежнему нет проблем с видимостью её локальных переменных, но вот в main я, почему-то, могу видеть только SFR или, вот, состояние портов.

 

Как ещё я могу объявить U1 глобальной?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как ещё я могу объявить U1 глобальной?

Вне функции main.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вне функции main.

Я пытался, это ничего не меняет. Или даже выдаёт ошибку. В зависимости от спецификатора, с которым я пытаюсь объявить переменную. Как бы Вы объявили её?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я пытался, это ничего не меняет. Или даже выдаёт ошибку. В зависимости от спецификатора, с которым я пытаюсь объявить переменную. Как бы Вы объявили её?

volatile объявил бы, тогда она была бы всегда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так действительно помогло, спасибо. Поскольку у меня прерывания не используются, то и о volatile не задумывался...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...