Микроконтроллер
Микроконтроллер
Jump to TINA Main Page & General Information
ТИНА поддерживает много (ПОС, AVR, Ардуино, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) микроконтроллеры; новые MCU постоянно добавляются. Вы можете видеть, изменять и отлаживать программу, работающую в процессоре, и, конечно же, вы можете создавать свой собственный код.
Существует два способа предоставления программы для микроконтроллеров в TINA. Вы можете использовать двоичный код и файл отладки, созданные стандартным компилятором (например, MPLAB для PIC), или вы можете просто загрузить свой код сборки для запуска и отладки в TINA, используя встроенный ассемблер-отладчик.
В TINA микроконтроллеры можно моделировать не только отдельно, но и вместе с аналоговыми, цифровыми, HDL или другими моделями.
Запуск и редактирование кода MCU
Загрузите схему PIC Flasher.TSC из папки examplesMicrocontrollersPic.
Следующая схема с использованием микроконтроллера PIC 16F73 появится вместе с микроконтроллером PIC 16F73:

Эта схема просто считает один за другим. нажмите
Дисплей должен шагнуть вперед один за другим.
Дважды щелкните MCU, чтобы увидеть код ASM в нем. (подробности см. в руководстве Быстрый старт).

TINA имеет отличную функцию, благодаря которой вы можете редактировать и изменять исходный код непосредственно в TINA.
Давайте сделаем следующее изменение в коде:
Измените инструкцию (выделенную выше) в строке 25 (номер строки можно увидеть в правом нижнем углу окна редактора кода):
из дополнения 01H
добавить 02H
Сохраните измененный код в TINA, нажав
Если вы нажмете
Обратите внимание, что измененный код будет автоматически сохранен в файле TINA .TSC.
Использование отладчика
Давайте посмотрим на другое приложение с большей интерактивностью.
Загрузите пример TINA PIC16F84interrupt_rb0.TSC из папки examplesMicrocontrollersPic.

Нажмите
Однако, если вы нажмете на переключатель SW-HL1., Дисплей будет перемещаться вперед на 1 каждый раз, когда переключатель переключается с низкого на высокий.
Возможность обработки прерываний PIC позволит нам обнаружить изменения в коммутаторе.
Теперь давайте посмотрим на операцию более подробно, используя интерактивный отладчик ASM TINA.
Чтобы активировать отладчик, выберите «Опция» в меню «Анализ». Затем установите флажок «Включить отладчик кода MCU», как показано ниже в диалоговом окне «Параметры анализа».

Нажмите кнопку OK, и появится отладчик MCU:

Давайте пошагово проследим за выполнением программы, нажав
После примерно щелчка 14 мы попадаем на метку PT1:, где программа, кажется, находится в бесконечном цикле.
PT1: INCF TEMP, F GOTO PT1


NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
увеличьте СЧЕТЧИК и скопируйте в ПОРТ A, и на выходе будет 1. После этого программа вернется к «бесконечному циклу» в PT1.
Редактирование кода в отладчике
Теперь давайте внесем небольшое изменение в программу, чтобы продемонстрировать использование отладчика. Дублируйте оператор INCF COUNTER, F, используя Copy и Paste, следующим образом:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Теперь, когда вы нажимаете

Нажмите Да и нажмите
Вы также можете проверить цепь в режиме непрерывной работы отладчика, нажав
Даже если отладчик будет работать быстро, вы все равно сможете увидеть «бесконечный цикл», а затем перейти к серверной части прерывания (INT_SERV:) при смене переключателя.
Создание точки останова
Используя пошаговый режим, часто невозможно добраться до определенной точки в программе. Даже если вы достаточно терпеливы, чтобы пройти тысячу шагов, поток программы может не позволить вам идти туда, куда вы хотите.
Чтобы остановиться на определенной строке, вы можете пометить целевой оператор, установив «точку останова».
Запустите программу в непрерывном режиме отладчика, используя
Чтобы продемонстрировать это, щелкните оператор приращения на нашем сервере прерываний после метки INT_SERV: и нажмите
Теперь нажмите
Даже если вы установили точку останова, выполнение кода не остановится, потому что оно никогда не достигнет точки останова. Тем не менее, когда вы переключите переключатель с низкого на высокий уровень, программа остановится на отмеченном операторе:
INT_SERV: INCF COUNTER, F
Теперь вы можете продолжить любой шаг за шагом