Микроконтролни вериги
Микроконтролни вериги
Jump to TINA Main Page & General Information
TINA подкрепя много (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) микроконтролери; постоянно се добавят нови MCU. Можете да видите, модифицирате и отстранявате грешки в програмата, работеща в процесора и, разбира се, можете да създадете свой собствен код.
Има два начина за осигуряване на програмата за микроконтролери в TINA. Можете да използвате двоичния код и файла за отстраняване на грешки, направен от стандартен компилатор (напр. MPLAB за PIC), или просто да заредите кода за сглобяване, за да стартирате и отстранявате грешки в TINA, използвайки вградения в асемблер дебъгер.
В TINA микроконтролерите могат да се симулират не само самостоятелно, но и заедно с аналогови, цифрови, HDL или други модели.
Стартиране и редактиране на MCU код
Заредете веригата PIC Flasher.TSC от папката "exampleMicrocontrollersPic".
Следното схематично използване на микроконтролера 16F73 PIC ще се появи с микроконтролера 16F73 PIC:
Тази схема просто брои напред един по един. Натисни
Дисплеят трябва да напредва един по един.
Щракнете два пъти върху MCU, за да видите ASM кода в него. (вижте повече подробности в ръководството за бърз старт).
TINA има страхотна възможност, чрез която можете да редактирате и променяте изходния код директно в TINA.
Да направим следната промяна в кода:
Променете инструкцията (избрана по-горе) в ред 25 (можете да видите номера на реда в долния десен ъгъл на прозореца на редактора на код):
от addlw 01H
за добавяне на 02H
Запазете променения код в TINA, като натиснете бутона
Ако натиснете
Обърнете внимание, че промененият код ще бъде автоматично запазен в TINA файла .TSC.
Използване на дебъгера
Нека видим друго приложение с повече интерактивност.
Заредете PIC16F84interrupt_rb0.TSC примера на TINA от папката ExamplesMicrocontrollersPic.
Натиснете
Въпреки това, ако кликнете върху ключа SW-HL1, дисплеят ще пристъпи напред с 1 всеки път, когато превключите от нисък към висок.
Възможностите за прекъсване на работата на PIC ще ни позволят да откриваме промените в превключвателя.
Сега нека видим операцията по-подробно, използвайки интерактивния дешифер на ASM на TINA.
За да активирате програма за отстраняване на грешки, изберете Опция в менюто Анализ. След това задайте „Активиране на полето за отстраняване на грешки на MCU Code“, както е показано по-долу в диалоговия прозорец Опции за анализ.
Натиснете бутона OK и ще се появи MCU дебъгерът:
Нека следваме стъпка по стъпка изпълнението на програмата, като натискаме бутона
След около 14 кликвания стигаме до етикета PT1: където програмата изглежда е в безкраен цикъл.
PT1: INCF TEMP, F GOTO PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
увеличаване на COUNTER и копиране в PORT A, а изходът ще бъде 1. След това програмата ще се върне към "безкрайния цикъл" на PT1.
Редактиране на кода в дебъгера
Сега нека направим малка промяна в програмата, за да демонстрираме използването на дебъгера. Дублирайте декларацията INCF COUNTER, F, като използвате Копиране и поставяне по следния начин:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Сега, когато натиснете бутона
Натиснете Да и натиснете
Можете също така да проверите веригата в непрекъснат режим на работа на дебъгера, като натиснете бутона
Въпреки че дебъгерът ще работи бързо, все още можете да видите “безкрайния цикъл” и след това да преминете към частта на сървъра за прекъсване (INT_SERV:), когато промените ключа.
Създаване на точка на прекъсване
С помощта на стъпка по стъпка често е невъзможно да се стигне до определена точка в програмата. Дори ако сте достатъчно търпеливи, за да стъпите на хиляда стъпки, потокът на програмата може да не ви позволи да стъпите там, където искате.
За да спрете на конкретен ред, можете да отбележите целта, като зададете "точка на прекъсване".
Стартирайте програмата в непрекъснат режим на дебъгера, като използвате
За да демонстрирате това, кликнете върху декларацията за нарастване в нашия прекъсващ сървър след етикета INT_SERV: и натиснете бутона
Сега натиснете
Въпреки че сте задали точка на прекъсване, изпълнението на кода няма да спре, защото никога не стига до точката на прекъсване. Въпреки това, когато промените ключа от нисък към висок, програмата ще спре при маркираното изявление:
INT_SERV: INCF COUNTER, F
Сега можете да продължите или стъпка по стъпка