Herz 4 25 июля, 2018 Опубликовано 25 июля, 2018 · Жалоба Пришлось мне, всё-таки, расстаться с MPLAB 8.xx. Однако, при освоении новой среды столкнулся с некоторыми странностями. К примеру, выставляю Configuration bits, но каждый раз после компиляции или при новом открытии проекта они упорно возвращаются к установленным "по умолчанию". Очередная попытка изменить на нужные мне значения сопровождается предупреждением "Pending change must be programmed". Как это понимать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 10 26 июля, 2018 Опубликовано 26 июля, 2018 · Жалоба выставляю Configuration bits, но каждый раз после компиляции или при новом открытии проекта они упорно возвращаются к установленным "по умолчанию". А я в последнее время обленился и вообще их не трогаю. Мне их MCC генерит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 26 июля, 2018 Опубликовано 26 июля, 2018 · Жалоба Вы имеете в виду, что они прописаны в программе? Но в старой MPLAB был хотя бы такой чекбокс: "Configuration bits set in code". А здесь я даже такой возможности не вижу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 10 26 июля, 2018 Опубликовано 26 июля, 2018 · Жалоба Вы имеете в виду, что они прописаны в программе? MCC генерирует кучу исходников, вокруг которых строится мой проект. В том числе исходник MCC.c, где прописаны фьюзы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 28 июля, 2018 Опубликовано 28 июля, 2018 · Жалоба Не пойму, почему у меня не получается видеть значения переменных в окне Watches (или Variables) во время отладки. Вот, к примеру, крутится пару строчек для теста: do { U1 = ADC_5 (0, 0); RB0 = ~RB0; } while (1); Так вот, значение RB0 я могу видеть, а значение U1 - нет. Почему бы это? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 29 июля, 2018 Опубликовано 29 июля, 2018 (изменено) · Жалоба Не пойму, почему у меня не получается видеть значения переменных в окне Watches (или Variables) во время отладки. Вот, к примеру, крутится пару строчек для теста: do { U1 = ADC_5 (0, 0); RB0 = ~RB0; } while (1); Так вот, значение RB0 я могу видеть, а значение U1 - нет. Почему бы это? В некоторых случаях отладчик не может увидеть значение локальной переменной. Я так понял, U1 - локальная переменная в какой-то функции, а RB - порт ввода/вывода. RB объявлен как глобальная переменная по определенному MMIO-адресу, скорее всего. Поэтому и видится без проблем. Объявите U1 глобально и посмотрите. В Keil, для ARM, по крайней мере, это так. Хотя бывает такое, что и локальные переменные видны. Причины разные - оптимизация (при отладке у должна быть в O0), размещение переменной в регистре... Ваша ситуация видится похожей. Изменено 29 июля, 2018 пользователем Arlleex Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 30 июля, 2018 Опубликовано 30 июля, 2018 · Жалоба Это очень странно. U1 у меня - переменная, объявленная в функции main, то есть, по сути, глобальная. Попытки объявить её как static, register или auto ничего не изменили. На extern ругается и, как бы, понятно почему. В MPLAB 8.xx не было такой проблемы. Внутри функций виделись локальные переменные, в основной программе - глобальные, как и положено. Сейчас же в каждой функции по-прежнему нет проблем с видимостью её локальных переменных, но вот в main я, почему-то, могу видеть только SFR или, вот, состояние портов. Как ещё я могу объявить U1 глобальной? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 30 июля, 2018 Опубликовано 30 июля, 2018 · Жалоба Как ещё я могу объявить U1 глобальной? Вне функции main. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 30 июля, 2018 Опубликовано 30 июля, 2018 · Жалоба Вне функции main. Я пытался, это ничего не меняет. Или даже выдаёт ошибку. В зависимости от спецификатора, с которым я пытаюсь объявить переменную. Как бы Вы объявили её? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 30 июля, 2018 Опубликовано 30 июля, 2018 · Жалоба Я пытался, это ничего не меняет. Или даже выдаёт ошибку. В зависимости от спецификатора, с которым я пытаюсь объявить переменную. Как бы Вы объявили её? volatile объявил бы, тогда она была бы всегда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 4 30 июля, 2018 Опубликовано 30 июля, 2018 · Жалоба Так действительно помогло, спасибо. Поскольку у меня прерывания не используются, то и о volatile не задумывался... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться