Κύκλωμα μικροελεγκτή
Κύκλωμα μικροελεγκτή
Jump to TINA Main Page & General Information
Η TINA υποστηρίζει πολλά (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) μικροελεγκτές νέα MCUs προστίθενται συνεχώς. Μπορείτε να δείτε, να τροποποιήσετε και να διορθώσετε το πρόγραμμα που εκτελείται στον επεξεργαστή και, φυσικά, μπορείτε να δημιουργήσετε τον δικό σας κωδικό.
Υπάρχουν δύο τρόποι παροχής του προγράμματος για μικροελεγκτές στην TINA. Μπορείτε να χρησιμοποιήσετε τον δυαδικό κώδικα και το αρχείο εντοπισμού σφαλμάτων που γίνεται από έναν τυπικό μεταγλωττιστή (π.χ. MPLAB για PIC) ή μπορείτε απλώς να φορτώσετε τον κωδικό συναρμολόγησης για να τρέξετε και να εντοπίσετε σφάλματα στο TINA χρησιμοποιώντας το built-in assembler-debugger.
Στους μικροελεγκτές TINA μπορούν να προσομοιωθούν όχι μόνο μεμονωμένα, αλλά και μαζί με αναλογικά, ψηφιακά, HDL ή άλλα μοντέλα.
Εκτέλεση και επεξεργασία κώδικα MCU
Τοποθετήστε το κύκλωμα PIC Flasher.TSC από το φάκελο ExamplesMicrocontrollersPic.
Το παρακάτω σχήμα με τη χρήση του μικροελεγκτή PIC 16F73 θα εμφανιστεί με τον μικροελεγκτή PIC 16F73:
Αυτό το κύκλωμα απλώς μετρά μπροστά ένα προς ένα. Πάτα το
Η οθόνη θα πρέπει να προχωρήσει προς τα εμπρός μία προς μία.
Κάντε διπλό κλικ στο MCU για να δείτε τον κώδικα ASM σε αυτό. (δείτε περισσότερες λεπτομέρειες στο εγχειρίδιο γρήγορης εκκίνησης).
Το TINA διαθέτει ένα εξαιρετικό χαρακτηριστικό το οποίο μπορείτε να επεξεργαστείτε και να αλλάξετε τον πηγαίο κώδικα απευθείας στο TINA.
Αφήνει να γίνει η ακόλουθη αλλαγή στον κώδικα:
Αλλάξτε την εντολή (επιλεγμένη παραπάνω) στη γραμμή 25 (μπορείτε να δείτε τον αριθμό γραμμής στην κάτω δεξιά γωνία του παραθύρου επεξεργασίας κώδικα):
από την προσθήκη 01H
να προσθέσετε 02H
Αποθηκεύστε τον αλλαγμένο κωδικό στην TINA πιέζοντας το
Αν πατήσετε το κουμπί
Σημειώστε ότι ο αλλαγμένος κώδικας θα αποθηκευτεί αυτόματα στο αρχείο TINA .TSC.
Χρησιμοποιώντας το πρόγραμμα εντοπισμού σφαλμάτων
Ας δούμε μια άλλη εφαρμογή με περισσότερη διαδραστικότητα.
Τοποθετήστε το παράδειγμα PIC16F84interrupt_rb0.TSC του TINA από το φάκελο 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
αυξήστε το 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
Τώρα μπορείτε να συνεχίσετε είτε βήμα προς βήμα