Προγραμματισμός Attiny2313. Προγραμματισμός Attiny2313 Πώς να γράψετε ένα πρόγραμμα για το attiny2313

Αρχιτεκτονική AVR RISC:

RISC (Υπολογιστής μειωμένου συνόλου εντολών). Αυτή η αρχιτεκτονική έχει ένα μεγάλο σύνολο εντολών, οι περισσότερες από τις οποίες εκτελούνται σε 1 κύκλο μηχανής. Από αυτό προκύπτει ότι σε σύγκριση με προηγούμενους μικροελεγκτές που βασίζονται στην αρχιτεκτονική CISC (για παράδειγμα, MCS51), οι μικροελεγκτές RISC είναι 12 φορές πιο γρήγοροι.

Ή αν λάβουμε ως βάση ένα ορισμένο επίπεδο απόδοσης, τότε για να εκπληρώσουμε αυτήν την προϋπόθεση, οι μικροελεγκτές που βασίζονται στο RISC (Attiny2313) απαιτούν 12 φορές λιγότερη συχνότητα ρολογιού της γεννήτριας, γεγονός που οδηγεί σε σημαντική μείωση της κατανάλωσης ενέργειας. Από αυτή την άποψη, καθίσταται δυνατός ο σχεδιασμός διαφόρων συσκευών στο Attiny2313 χρησιμοποιώντας ισχύ μπαταρίας.

Λειτουργική συσκευή αποθήκευσης (RAM) και μη πτητική μνήμη δεδομένων και προγραμμάτων:

  • 2 KB αυτοπρογραμματιζόμενης μνήμης προγράμματος Flash που μπορεί να παρέχει 10.000 επαναλήψεις εγγραφής/διαγραφής.
  • 128 byte μνήμης δεδομένων με δυνατότητα εγγραφής EEPROM που μπορεί να παρέχει 100.000 επαναλήψεις εγγραφής/διαγραφής.
  • Μνήμη SRAM 128 Byte (RAM μόνο για ανάγνωση).
  • Είναι δυνατή η χρήση της λειτουργίας για την προστασία του κώδικα προγράμματος και των δεδομένων EEPROM.

Περιφερειακές ιδιότητες:

  1. Μικροελεγκτής Attiny2313εξοπλισμένο με μετρητή χρονοδιακόπτη οκτώ bit με χωριστά εγκατεστημένο prescaler με μέγιστο συντελεστή 256.
  2. Υπάρχει επίσης ένας χρονόμετρο-μετρητής δεκαέξι bit με ξεχωριστό κύκλωμα προκλιμάκωσης, λήψης και σύγκρισης. Ο χρονοδιακόπτης-μετρητής μπορεί να χρονιστεί είτε από εξωτερική πηγή σήματος είτε από εσωτερική.
  3. Δύο κανάλια. Υπάρχει τρόπος λειτουργίας γρήγορης διαμόρφωσης PWM και PWM με διόρθωση φάσης.
  4. Εσωτερικός αναλογικός συγκριτής.
  5. Watchdog timer (προγραμματιζόμενος) με εσωτερικό ταλαντωτή.
  6. Σειριακή καθολική διεπαφή (USI).

Ειδικοί τεχνικοί δείκτες του Attiny2313:


  • Αδρανής— Λειτουργία αδράνειας. Σε αυτήν την περίπτωση, μόνο ο κεντρικός επεξεργαστής σταματά να λειτουργεί. Το ρελαντί δεν επηρεάζει τη λειτουργία του SPI, του αναλογικού συγκριτή, του μετατροπέα A/D, του χρονοδιακόπτη μετρητή, του συστήματος παρακολούθησης ή διακοπής. Στην πραγματικότητα, το μόνο που συμβαίνει είναι να σταματήσει ο συγχρονισμός του πυρήνα της CPU και της μνήμης flash. Ο μικροελεγκτής Attiny2313 επιστρέφει στην κανονική λειτουργία από την κατάσταση αδράνειας με εξωτερική ή εσωτερική διακοπή.
  • Διακοπή ρεύματος— Η πιο οικονομική λειτουργία, στην οποία ο μικροελεγκτής Attiny2313 είναι πραγματικά απενεργοποιημένος από την κατανάλωση ρεύματος. Σε αυτήν την κατάσταση, η γεννήτρια ρολογιού σταματά και όλα τα περιφερειακά είναι απενεργοποιημένα. Μόνο η μονάδα επεξεργασίας διακοπής από εξωτερική πηγή παραμένει ενεργή. Όταν εντοπιστεί διακοπή, ο μικροελεγκτής Attiny2313 βγαίνει από το Power-down και επιστρέφει στην κανονική λειτουργία.
  • Αναμονή– ο μικροελεγκτής μεταβαίνει σε αυτήν την κατάσταση αναμονής κατανάλωσης ενέργειας χρησιμοποιώντας την εντολή SLEE. Αυτό είναι παρόμοιο με το κλείσιμο, με τη μόνη διαφορά ότι το ρολόι συνεχίζει να λειτουργεί.

Θύρες εισόδου-εξόδου του μικροελεγκτή Attiny2313:

Ο μικροελεγκτής είναι εξοπλισμένος με 18 ακίδες I/O, οι οποίες μπορούν να προγραμματιστούν με βάση τις ανάγκες που προκύπτουν κατά το σχεδιασμό μιας συγκεκριμένης συσκευής. Τα buffer εξόδου αυτών των θυρών μπορούν να αντέξουν ένα σχετικά υψηλό φορτίο.

  • Θύρα Α (PA2 - PA0) – 3 bit. Αμφίδρομη θύρα I/O με προγραμματιζόμενες pull-up αντιστάσεις.
  • Θύρα B (PB7 - PB0) – 8 bit. Αμφίδρομη θύρα I/O με προγραμματιζόμενες pull-up αντιστάσεις.
  • Θύρα D (PD6 - PD0) – 7 bit. Αμφίδρομη θύρα I/O με προγραμματιζόμενες pull-up αντιστάσεις.

Εύρος τάσης τροφοδοσίας:

Ο μικροελεγκτής λειτουργεί με επιτυχία με τάση τροφοδοσίας από 1,8 έως 5,5 βολτ. Η κατανάλωση ρεύματος εξαρτάται από τον τρόπο λειτουργίας του ελεγκτή:

Ενεργή λειτουργία:

  • 20 µA σε συχνότητα ρολογιού 32 kHz και τάση τροφοδοσίας 1,8 βολτ.
  • 300 µA σε συχνότητα ρολογιού 1 MHz και τάση τροφοδοσίας 1,8 βολτ.

Λειτουργία εξοικονόμησης ενέργειας:

  • 0,5 µA σε τάση τροφοδοσίας 1,8 βολτ.

(3,6 Mb, λήψη: 5.958)

Μικροελεγκτής AVR 8 bit με 2 KB προγραμματιζόμενης από το σύστημα μνήμης Flash

Χαρακτηριστικά:

  • Αρχιτεκτονική AVR RISC
  • AVR - αρχιτεκτονική RISC υψηλής ποιότητας και χαμηλής ισχύος
    120 εντολές, οι περισσότερες από τις οποίες εκτελούνται σε έναν κύκλο ρολογιού
    Μητρώοι εργασίας 32 8-bit γενικού σκοπού
    Εντελώς στατική αρχιτεκτονική
  • RAM και μη πτητική μνήμη προγραμμάτων και δεδομένων
    2 KB αυτοπρογραμματιζόμενης μνήμης προγράμματος Flash ικανή να αντέξει 10.000 κύκλους εγγραφής/διαγραφής
    Μνήμη δεδομένων EEPROM 128 Bytes προγραμματιζόμενη από το σύστημα, ικανή να αντέχει 100.000 κύκλους εγγραφής/διαγραφής
    128 Byte ενσωματωμένης μνήμης SRAM (στατική RAM)
    Προγραμματιζόμενη προστασία έναντι ανάγνωσης μνήμης προγράμματος Flash και μνήμης δεδομένων EEPROM
  • Περιφερειακά χαρακτηριστικά
    Ένας χρονοδιακόπτης/μετρητής 8 bit με ξεχωριστό προκλιμακωτή
    Ένας χρονοδιακόπτης/μετρητής 16 bit με ξεχωριστό prescaler, κύκλωμα σύγκρισης, κύκλωμα λήψης και δύο κανάλια PWM
    Ενσωματωμένος αναλογικός συγκριτής
    Προγραμματιζόμενος χρονοδιακόπτης παρακολούθησης με ενσωματωμένο ταλαντωτή
    USI - Universal Serial Interface
    Full duplex UART
  • Ειδικά χαρακτηριστικά μικροελεγκτή
    Ενσωματωμένο πρόγραμμα εντοπισμού σφαλμάτων WIRE
    Προγραμματισμός εντός συστήματος μέσω θύρας SPI
    Εξωτερικές και εσωτερικές πηγές διακοπής
    Λειτουργίες χαμηλής κατανάλωσης Idle, Power-down και Standby
    Βελτιωμένο κύκλωμα επαναφοράς ενεργοποίησης
    Προγραμματιζόμενο κύκλωμα ανίχνευσης διακοπής ρεύματος
    Ενσωματωμένη βαθμονομημένη γεννήτρια
  • Θύρες I/O και σχεδιασμός περιβλήματος
    18 προγραμματιζόμενες γραμμές I/O
    Πακέτα PDIP 20 ακίδων, SOIC 20 ακίδων και MLF 32 ακίδων
  • Εύρος τάσης τροφοδοσίας
    από 1,8 έως 5,5 V
  • Συχνότητα λειτουργίας
    0 - 16 MHz
  • Κατανάλωση
    Ενεργή λειτουργία:
    300 µA σε 1 MHz και τάση τροφοδοσίας 1,8 V
    20 µA στα 32 kHz και τάση τροφοδοσίας 1,8 V
    Λειτουργία χαμηλής κατανάλωσης
    0,5 µA σε τάση τροφοδοσίας 1,8 V

Μπλοκ διάγραμμα ATtiny2313:


Γενική περιγραφή:

Ο ATtiny2313 είναι ένας μικροελεγκτής CMOS 8-bit χαμηλής κατανάλωσης με αρχιτεκτονική AVR RISC. Εκτελώντας οδηγίες σε έναν μόνο κύκλο, το ATtiny2313 επιτυγχάνει απόδοση 1 MIPS σε ταχύτητα ρολογιού 1 MHz, επιτρέποντας στον σχεδιαστή να βελτιστοποιήσει την αναλογία ισχύος προς απόδοση.

Ο πυρήνας AVR ενσωματώνει ένα πλούσιο σύνολο εντολών και 32 μητρώα εργασίας γενικής χρήσης. Και οι 32 καταχωρητές συνδέονται απευθείας με την Αριθμητική Λογική Μονάδα (ALU), επιτρέποντας την πρόσβαση σε δύο ανεξάρτητους καταχωρητές ενώ εκτελείται μία μόνο εντολή. Ως αποτέλεσμα, αυτή η αρχιτεκτονική επιτρέπει δεκάδες φορές μεγαλύτερη απόδοση από την τυπική αρχιτεκτονική CISC.

Το ATtiny2313 έχει τα ακόλουθα χαρακτηριστικά: 2 KB Flash προγραμματιζόμενη μνήμη προγράμματος, 128 byte μνήμη δεδομένων EEPROM, 128 byte SRAM (στατική RAM), 18 γραμμές I/O γενικής χρήσης, 32 καταχωρητές εργασίας γενικής χρήσης, διεπαφή ενός καλωδίου για το ενσωματωμένο εντοπιστής σφαλμάτων, δύο ευέλικτοι χρονοδιακόπτες/μετρητές με κυκλώματα σύγκρισης, εσωτερικές και εξωτερικές πηγές διακοπής, προγραμματιζόμενη σειριακή USART, καθολική σειριακή διεπαφή με ανιχνευτή κατάστασης εκκίνησης, προγραμματιζόμενος χρονοδιακόπτης παρακολούθησης με ενσωματωμένο ταλαντωτή και τρεις λειτουργίες χαμηλής κατανάλωσης αρχικοποιημένες από λογισμικό. Στην κατάσταση αναμονής, ο πυρήνας σταματά, αλλά η μνήμη RAM, οι χρονοδιακόπτες/μετρητές και το σύστημα διακοπής συνεχίζουν να λειτουργούν. Στη λειτουργία απενεργοποίησης, οι καταχωρητές διατηρούν τις τιμές τους, αλλά η γεννήτρια σταματά, απενεργοποιώντας όλες τις λειτουργίες της συσκευής μέχρι την επόμενη διακοπή ή επαναφορά υλικού. Στην κατάσταση αναμονής, ο κύριος ταλαντωτής λειτουργεί ενώ η υπόλοιπη συσκευή είναι σε αδράνεια. Αυτό επιτρέπει στον μικροεπεξεργαστή να ξεκινά πολύ γρήγορα, ενώ διατηρεί την ισχύ όταν είναι αδράνεια.

Η συσκευή κατασκευάζεται χρησιμοποιώντας τεχνολογία μη πτητικής μνήμης υψηλής πυκνότητας από την Atmel. Το ενσωματωμένο ISP Flash σάς επιτρέπει να επαναπρογραμματίσετε τη μνήμη του προγράμματος στο σύστημα μέσω μιας σειριακής διεπαφής SPI ή με έναν συμβατικό προγραμματιστή μη πτητικής μνήμης. Συνδυάζοντας έναν πυρήνα RISC 8-bit με τη μνήμη Flash που προγραμματίζεται αυτόματα σε ένα μόνο τσιπ, ο ATtiny2313 είναι ένας ισχυρός μικροελεγκτής που παρέχει μεγαλύτερη ευελιξία στον σχεδιαστή του συστήματος μικροεπεξεργαστή.

Ο μικροελεγκτής ATTiny2313 είναι μια αναβίωση μιας νέας σειράς του παλιού μικροελεγκτή AT90S2313, ο οποίος ήταν αρκετά επιτυχημένος στην εποχή του. Το ATTiny2313 είναι μια βελτιωμένη έκδοση του προγόνου του. Κληρονόμησε όμως και μια μάλλον μέτρια περιφέρεια. Άρα, όσον αφορά τη λειτουργικότητα, το ATTiny2313 είναι μέτριο. Ο μικροελεγκτής διατίθεται σε δύο εκδόσεις - κανονική (ATTiny2313) και με μειωμένη ισχύ (ATTiny2313 V). Για μειωμένη διατροφή πρέπει να πληρώσετε με υποβιβασμό συχνότητα ρολογιούμικροελεγκτής (πιο αργή λειτουργία).

Γενικά χαρακτηριστικά:

  • 120 οδηγίες βελτιστοποιημένες για προγραμματισμό σε γλώσσες υψηλού επιπέδου.
  • 32 μητρώα γενικής χρήσης (μου αρέσει αυτό).
  • σχεδόν κάθε εντολή εκτελείται σε 1 κύκλο ρολογιού της γεννήτριας, λόγω του οποίου η απόδοση φτάνει τα 20 MIPS (20 εκατομμύρια λειτουργίες ανά δευτερόλεπτο).
  • 2 kilobyte μνήμης flash για προγράμματα. Η μνήμη flash μπορεί να προγραμματιστεί απευθείας από τον ελεγκτή (τον ίδιο).
  • 128 byte EEPROM (μη πτητική μνήμη).
  • 128 byte SRAM (μνήμη τυχαίας πρόσβασης).

Τι έχουμε πάνω σε αυτό το περιφερειακό τσιπ;

  • ένα χρονόμετρο/μετρητή 8 bit.
  • ένα χρονόμετρο/μετρητή 16-bit.
  • τέσσερα κανάλια PWM.
  • αναλογικός συγκριτής?
  • Watchdog timer?
  • Καθολική σειριακή διεπαφή USI.
  • USART (πρόκειται για έναν υπολογιστή COM RS232).

Ιδιαίτερα καλούδια:

Ισχύς, συχνότητα:

1,8 – 5,5 V (για ATTiny2313V) έως 10 MHz
2,7 – 5,5 V (για ATTiny2313) έως 20 MHz
Σε κατάσταση λειτουργίας, καταναλώνει 230 µA με παροχή 1,8 V και συχνότητα κύριου ταλαντωτή 1 MHz. Στη λειτουργία εξοικονόμησης ενέργειας, το Power-down καταναλώνει λιγότερο από 1 µA στα 1,8 V

Προγραμματισμός

Το ATTiny2313 κατάφερε να επιβιώσει από μια άλλη αναθεώρηση και απέκτησε μια επιστολή ΕΝΑστο τέλος. Μεταξύ των καινοτομιών πρέπει να σημειωθεί:
— Εμφανίστηκαν εξωτερικές διακοπές σε όλα τα πόδια.
— Ο διαχωρισμός μεταξύ κανονικής και χαμηλής τάσης τροφοδοσίας έχει αφαιρεθεί. Το ATTiny2313A μπορεί να τροφοδοτηθεί από 1,8 έως 5,5 V, ενώ απαιτείται μόνο η συμμόρφωση με περιορισμούς συχνότητας από 4 MHz (για 1,8 V) έως 20 MHz.
— Η κατανάλωση ρεύματος έχει μειωθεί σημαντικά, τόσο σε κανονική λειτουργία όσο και σε λειτουργίες εξοικονόμησης ενέργειας - 190 µA και 0,1 µA, αντίστοιχα.
Επιπλέον, ως αποτέλεσμα της τελευταίας αναθεώρησης, η ATTiny2313 απέκτησε έναν μεγαλύτερο αδελφό ATTiny4313 (χωρίς το γράμμα A). Ο μεγαλύτερος αδερφός είναι παρόμοιος με τον ATTiny2313A, με εξαίρεση τη διπλάσια μνήμη (4 kB Flash, 256 bytes EEPROM, 256 bytes SRAM). Αυτές οι αλλαγές δείχνουν τις προθέσεις της Atmel να συνεχίσει να υποστηρίζει αυτόν τον μικροελεγκτή.

Λόγω της κακής διαθεσιμότητας και της ακατανόητης τιμής των νέων εκδόσεων του ATTiny2313A και του ATTiny4313, οι συσκευές μου θα αναπτυχθούν στην παλιά έκδοση του ATTiny2313. Αλλά επειδή οι νέες εκδόσεις είναι συμβατές με τις παλιές, θεωρητικά, το υλικολογισμικό θα πρέπει να λειτουργεί σε νέους μικροελεγκτές.

Συμπεράσματα:

Όπως όλα Μικροελεγκτές AVRΗ σειρά ATTiny2313 είναι παραγωγική και οικονομική. Διαθέτει θήκη SOIC που είναι βολική για τη διάταξη της σανίδας και τη συγκόλληση. Οι αποστάσεις μεταξύ των ποδιών είναι σχετικά μεγάλες (μπορείτε ακόμη και να καταφέρετε να βάλετε ένα ίχνος στον πίνακα μεταξύ διπλανών ποδιών). Εύκολο στην εκμάθηση. Υπάρχει πολλή λογοτεχνία στα ρωσικά. Λόγω της μεγάλης δημοτικότητας του προκατόχου του AT90S2313, πολλά ενδιαφέροντα κυκλώματα έχουν αναπτυχθεί στο δίκτυο για επανάληψη. Ευρέως διαθέσιμο στο εμπόριο. Φτηνός. Για να αρχίσετε να μελετάτε μικροελεγκτές, αυτό είναι το κατάλληλο μέρος. Μεταξύ των ελλείψεων, αξίζει να σημειωθούν τα σχετικά μέτρια περιφερειακά σήμερα. Και ως μειονέκτημα, η θήκη SOIC είναι λίγο μεγάλη (αν και έχω ήδη πειράξει). Οι μικρές ποσότητες μνήμης δεν θα σας επιτρέψουν να δημιουργήσετε έργα μεγάλης κλίμακας στο ATTiny2313. Γενικά, ένας καλός ελεγκτής υψηλής απόδοσης για μικρά έργα που δεν απαιτούν ειδικά περιφερειακά. Σκοπεύω να το χρησιμοποιήσω αρκετά ευρέως στις συσκευές μου λόγω της καλύτερης διαθεσιμότητας και του χαμηλού κόστους.

Σήμερα θα προσπαθήσουμε να χρησιμοποιήσουμε έναν απλούστερο μικροελεγκτή ATtiny2313και συνδέστε σε αυτήν μια οθόνη LCD χαρακτήρων που περιέχει δύο γραμμές των 16 χαρακτήρων.

Θα συνδέσουμε την οθόνη με τυπικό τρόποΤρόπος 4 bit.

Αρχικά, φυσικά, θα ξεκινήσουμε με τον μικροελεγκτή, μιας και είμαστε ήδη πολύ εξοικειωμένοι με την οθόνη από προηγούμενα μαθήματα.

Ας ανοίξουμε το φύλλο δεδομένων του ελεγκτή ATtiny2313και ας δούμε το pinout του

Βλέπουμε ότι αυτός ο ελεγκτής υπάρχει σε δύο τύπους περιπτώσεων, αλλά επειδή το πήρα σε πακέτο DIP, θα εξετάσουμε τη συγκεκριμένη έκδοση της θήκης, και κατ 'αρχήν, δεν διαφέρουν πολύ, εκτός από την εμφάνιση, οπότε πώς ο αριθμός των ποδιών είναι το ίδιο - 20 το καθένα.

Δεδομένου ότι υπάρχουν 20 πόδια σε σύγκριση με τα 28 σκέλη του ελεγκτή ATMega8, τα οποία εργαζόμασταν και θα συνεχίσουμε να εργαζόμαστε, τότε, κατά συνέπεια, θα υπάρχουν και λιγότερες δυνατότητες.

Καταρχήν όλα όσα είχε το ATmega8 είναι εδώ, το μόνο είναι ότι υπάρχουν λιγότερα port claws. Αλλά επειδή το καθήκον μας είναι να προσπαθήσουμε να το συνδέσουμε μέσω του διαύλου SPI με έναν άλλο ελεγκτή, αυτό δεν μας πιέζει πολύ.

Υπάρχουν κάποιες άλλες διαφορές, αλλά είναι μικρές και θα τις γνωρίσουμε όπως χρειαστεί.

Ας συναρμολογήσουμε ένα κύκλωμα όπως αυτό (κάντε κλικ στην εικόνα για να μεγεθύνετε την εικόνα)

Η οθόνη συνδέεται με τις ακίδες της θύρας D. Τα PD1 και PD2 είναι στις εισόδους ελέγχου και οι υπόλοιπες συνδέονται στις ακίδες της μονάδας οθόνης D4-D7.

Ας δημιουργήσουμε ένα έργο με το όνομα TINY2313_LCD, μεταφέρουμε τα πάντα σε αυτό εκτός από την κύρια μονάδα από το έργο για τη σύνδεση της οθόνης στο Atmega8.

Βέβαια κάποια πράγματα θα πρέπει να ξαναγίνουν. Για να γίνει αυτό, πρέπει να μελετήσετε προσεκτικά ποιο πόδι συνδέεται με τι. Ο δίαυλος E της οθόνης είναι συνδεδεμένος στο PD2 και ο δίαυλος RS είναι συνδεδεμένος στο PD1, οπότε ας κάνουμε αλλαγές στο αρχείο lcd.h

#καθορίζωε1PORTD|=0b0000 01 00 // ορίστε τη γραμμή Ε σε 1

#καθορίζωe0PORTD&=0b1111 10 11 // ορίστε τη γραμμή Ε σε 0

#καθορίζωrs1PORTD|=0b00000 01 0 // ορίστε τη γραμμή RS σε 1 (δεδομένα)

#καθορίζωrs0PORTD&=0b11111 10 1 // ορίστε τη γραμμή RS σε 0 (εντολή)

Όπως μπορούμε να δούμε από την έντονη γραμματοσειρά, δεν είχαμε τόσο δραστικές αλλαγές.

Τώρα εισροές πληροφοριών. Εδώ χρησιμοποιούμε πόδια PD3-PD6, δηλαδή μετατοπίζονται κατά 1 πόντο σε σχέση με τη σύνδεση στο Atmega8, οπότε θα διορθώσουμε και κάτι στο αρχείο lcd.cσε λειτουργία sendhalfbyte

PORTD&=0β 1 0000 111; // διαγράψτε τις πληροφορίες για τις εισόδους DB4-DB7, αφήστε τις υπόλοιπες ήσυχες

Αλλά δεν είναι μόνο αυτό. Προηγουμένως μετατοπίσαμε τα μεταδιδόμενα δεδομένα κατά 4, αλλά τώρα, λόγω των παραπάνω αλλαγών, θα πρέπει να τα αλλάξουμε μόνο κατά 3. Επομένως, στην ίδια συνάρτηση θα διορθώσουμε και την πρώτη γραμμή

ντο<<=3 ;

Αυτές είναι όλες οι αλλαγές. Συμφωνώ, δεν είναι τόσο σπουδαίοι! Αυτό επιτυγχάνεται από το γεγονός ότι προσπαθούμε πάντα να γράφουμε καθολικό κώδικα και να χρησιμοποιούμε αντικαταστάσεις μακροεντολών. Αν δεν είχαμε αφιερώσει χρόνο σε αυτό μια φορά, θα έπρεπε να διορθώσουμε τον κώδικα σε όλες σχεδόν τις λειτουργίες της βιβλιοθήκης μας.

Στην κύρια λειτουργική μονάδα, δεν αγγίζουμε την προετοιμασία της θύρας D, αφήνουμε ολόκληρη την ενότητα να μεταβεί στην κατάσταση εξόδου, όπως στο μάθημα 12.

Ας προσπαθήσουμε να συναρμολογήσουμε το έργο και να δούμε πρώτα το αποτέλεσμα στο Proteus, μιας και έφτιαξα και ένα έργο για αυτό, το οποίο θα υπάρχει επίσης στο συνημμένο αρχείο με το έργο για το Atmel Studio

Όλα λειτουργούν υπέροχα για εμάς! Αυτός είναι ο τρόπος με τον οποίο μπορείτε να επαναλάβετε γρήγορα ένα έργο για έναν ελεγκτή για έναν άλλο.

Ο Proteus είναι πολύ καλός, αλλά είναι πάντα πιο ωραίο να βλέπεις πραγματικές λεπτομέρειες. Ολόκληρο το κύκλωμα συναρμολογήθηκε σε μια πλακέτα breadboard, καθώς δεν έφτιαξα ούτε συναρμολόγησα μια πλακέτα εντοπισμού σφαλμάτων για αυτόν τον ελεγκτή. Θα συνδέσουμε τον προγραμματιστή μέσω μιας τυπικής υποδοχής όπως αυτή

Εδώ είναι ολόκληρο το διάγραμμα

Όλα είναι στάνταρ εδώ. Αντίσταση έλξης σε RESET κ.λπ.

Τώρα, πριν αναβοσβήνουμε το χειριστήριο στο avrdude, πρέπει να επιλέξουμε τον ελεγκτή και να διαβάσουμε τη μνήμη flash του

Στη συνέχεια, μεταβείτε στην καρτέλα FUSES και ρυθμίστε σωστά τις ασφάλειες. Επειδή δεν έχουμε αντηχείο χαλαζία, εγκαθιστούμε τις ασφάλειες με αυτόν τον τρόπο


Μπλουζα