Родились сегодня:
goldssky@yandex.ru


Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

770

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

343

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

279

Россия, Санкт-Петербург


ID: 325460

CradleA

Мастер-Эксперт

212

Беларусь, Минск


ID: 137394

Megaloman

Мастер-Эксперт

148

Беларусь, Гомель


ID: 400815

alexleonsm

6-й класс

130


ID: 400669

epimkin

Профессионал

120


8.8.15

09.05.2021

JS: 2.8.21
CSS: 4.5.5
jQuery: 3.6.0
DataForLocalStorage: 2021-05-13 03:16:01-standard


Создание программ на языках C и C++.

Администратор раздела: CradleA (Мастер-Эксперт)

Консультация онлайн # 200296

Раздел: С / С++
Автор вопроса: puaro (Посетитель)
Дата: 19.02.2021, 13:19 Консультация закрыта
Поступило ответов: 1

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
MPLAB X IDE 5.4, XC8, PIC18F14K22.
При симуляции с использованием PICkit3 если установить breakpoint в теле программы, то программа останавливается в этой точке. Если я ее устанавливаю в другом месте программы, все ок. Но если я пытаюсь идти пошагово, то программа выходит в прерывание и все время крутится там. В чем прикол не пойму. Раньше такого не было.

Ответ # 280772 от CradleA
Здравствуйте, puaro!
При работе с микроконтроллером в пошаговом режиме отладки, периферия микроконтроллера продолжает работать.
Пошаговое выполнение для микроконтроллера медленное и периферия успевает нагенерировать прерывания в которое попадает ваш МК после того или иного шага. К примеру, вы завели таймер на 100 мс установили точку останова в теле программы, делаете шаги со скоростью 50 мс, то на втором шаге вы попадаете в прерывание по таймеру.
Для отладки режима работы с прерываниями, можно настроить трассировочные сообщения, к примеру на UART. И выводить сообщения читая их в реальном времени через терминал.

CradleA

Мастер-Эксперт
23.02.2021, 13:28
Мини-форум консультации # 200296

q_id

CradleA

Мастер-Эксперт

ID: 325460

1

= общий =    19.02.2021, 13:51

ну значит у вас настроено прерывание какоето.
когда идете пошагово к примеру вотчдог может срабатывать или еще что-то. а когда программа крутится быстро этой сработки не происходит.

=====
to live is to die

q_id

puaro

Посетитель

ID: 404726

2

= общий =    19.02.2021, 14:02

Вотчдог и ему подобное покуда все отключено. На этапе отладки это не должно мешать. Прерывание разрешено только Таймеру 2. Он считает до числа, записанного регистр PR2, а по его прерыванию тактируются уже другие счетчики.

q_id

CradleA

Мастер-Эксперт

ID: 325460

3

= общий =    19.02.2021, 14:05

ну вот вы висите в точке останова а таймер крутится поэтому и попадаете в прерывание.

=====
to live is to die

q_id

puaro

Посетитель

ID: 404726

4

= общий =    19.02.2021, 15:14

А разве, когда переходишь в пошаговый режим таймер не останавливается?
Прерывание используется в большинстве программ, в таком случае в пошаговом режиме отлаживать программы невозможно.

q_id

CradleA

Мастер-Эксперт

ID: 325460

5

= общий =    19.02.2021, 15:16

Таймер не отключается он аппаратно работает и в пошаговом режиме.
Да при отладке программ с прерываниями используют другие механизмы отладки, не пошаговый режим.

=====
to live is to die

q_id

puaro

Посетитель

ID: 404726

6

= общий =    19.02.2021, 15:37

Я понял. Если не секрет, какие еще есть способы проверки в реальном времени.Чисто в пошаговом режиме (без PICkit) программа отрабатывает свой алгоритм, но когда запускаешь на макете с реальным железом, программа куда то улетает (причем периодически) и найти это покуда не получается. Поэтому я взял на время PICkit и думал также его приобрести для себя, но вижу, что пользы от него не очень много. Он даже не позволяет поставить несколько точек остановки.

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

7

= общий =    19.02.2021, 22:07
puaro:

Честно говоря, Ваш вопрос ниочем, так чисто риторические, т.е. философские разсуждения: У меня есть код и он тормозит.
smile
Скажите. что не так?
smile

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

puaro

Посетитель

ID: 404726

8

= общий =    23.02.2021, 13:16

Если вы действительно специалист, то должны прекрасно понимать, о чем я спросил, я достаточно точно описал свою проблему. Я ведь не прошу, чтобы вы за меня ее делали.
Несколько лет назад я впервые взял в руки ПЛК, но был специалист, который давал мне консультации, при чем не очень много, была техподдержка, в итоге пару станков работают.
Сейчас пытаюсь освоить PIC. Уже несколько простых программ написаны и успешно работают.
Если вы можете помочь, помогите пожалуйста, а на флуд у меня нет времени!!

q_id

CradleA

Мастер-Эксперт

ID: 325460

9

= общий =    23.02.2021, 13:23
puaro:

Кроме стандартного отладчика можно использовать трассировочные сообщения, которые будут выводиться к примеру в UART.

=====
to live is to die

q_id

puaro

Посетитель

ID: 404726

10

= общий =    23.02.2021, 13:33

Спасибо

q_id

puaro

Посетитель

ID: 404726

11

= общий =    22.03.2021, 11:43

Добрый день.
Не подскажете, в MPLAB X IDE v5.45 в редакторе при написании программы если нажать на ENTER, то курсор переходит на новую строку не в ее начало, а чуть ли не на середину строки. Перепробовал все варианты, но ничего не получается. В идеале чтобы курсор переходил в начало следующей строки. Приходится каждую строку редактировать, а это сильно раздражает. В предыдущих версиях такого не было.

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

CradleA

Мастер-Эксперт

Рейтинг: 212

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 74

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 74

Хватов Сергей

Академик

Рейтинг: 26

Степанов Иван /REDDS

4-й класс

Рейтинг: 1

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0