Микроконтроллер

Микроконтроллер

Jump to TINA Main Page & General Information 

ТИНА поддерживает много (ПОС, AVR, Ардуино8051, HCS, STM, ARM, ТИ-Тива, ТИ-Ситара, Infineon-XMC, ESP32 ) микроконтроллеры; новые MCU постоянно добавляются. Вы можете видеть, изменять и отлаживать программу, работающую в процессоре, и, конечно же, вы можете создавать свой собственный код.

Существует два способа предоставления программы для микроконтроллеров в TINA. Вы можете использовать двоичный код и файл отладки, созданные стандартным компилятором (например, MPLAB для PIC), или вы можете просто загрузить свой код сборки для запуска и отладки в TINA, используя встроенный ассемблер-отладчик.

В TINA микроконтроллеры можно моделировать не только отдельно, но и вместе с аналоговыми, цифровыми, HDL или другими моделями. 

Запуск и редактирование кода MCU

Моделирование микроконтроллера ESP32C3

Загрузите схему PIC Flasher.TSC из папки examplesMicrocontrollersPic. 

Следующая схема с использованием микроконтроллера PIC 16F73 появится вместе с микроконтроллером PIC 16F73:

Микроконтроллерная схема, изображение 1

Эта схема просто считает один за другим. нажмите

Дисплей должен шагнуть вперед один за другим.

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

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

Давайте сделаем следующее изменение в коде:

Измените инструкцию (выделенную выше) в строке 25 (номер строки можно увидеть в правом нижнем углу окна редактора кода):

из дополнения 01H

добавить 02H

Сохраните измененный код в TINA, нажав значок и закройте открытые окна MCU.

Если вы нажмете

Обратите внимание, что измененный код будет автоматически сохранен в файле TINA .TSC.

Использование отладчика

Давайте посмотрим на другое приложение с большей интерактивностью.

Загрузите пример TINA PIC16F84interrupt_rb0.TSC из папки examplesMicrocontrollersPic.

Нажмите

Однако, если вы нажмете на переключатель SW-HL1., Дисплей будет перемещаться вперед на 1 каждый раз, когда переключатель переключается с низкого на высокий.

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

Теперь давайте посмотрим на операцию более подробно, используя интерактивный отладчик ASM TINA.

Чтобы активировать отладчик, выберите «Опция» в меню «Анализ». Затем установите флажок «Включить отладчик кода MCU», как показано ниже в диалоговом окне «Параметры анализа».

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

Давайте пошагово проследим за выполнением программы, нажав

После примерно щелчка 14 мы попадаем на метку PT1:, где программа, кажется, находится в бесконечном цикле.

PT1: INCF TEMP, F GOTO PT1

Теперь нажмите переключатель SW-HL1 и измените его на High. (Вы должны щелкнуть, когда курсор изменится на стрелку, направленную вверх Î). Вернитесь в отладчик и нажмите кнопку Трассировка в кнопку дважды. Программа распознает прерывание и перейдет в


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

Теперь вы можете продолжить любой шаг за шагом