AVR Code Vision Instructions

25
Εργαστήριο Εφαρμογών Μικροϋπολογιστών Code Vision AVR Σελίδα 1 1. Εισαγωγή Ο Infotech CodeVisionAVR είναι ένας C cross compiler, με δομημένο περιβάλλον ανάπτυξης και αυτοματοποιημένης παραγωγής κώδικα σχεδιασμένος για την οικογένεια των μικροελεγκτών AVR της Atmel. Το πρόγραμμα είναι μια τριανταδυάμπιτη εφαρμογή που τρέχει κάτω από τα λειτουργικά συστήματα WINDOWS 95, 98, NT 4.0, 2000 και XP. Ο C cross compiler εφαρμόζει σχεδόν όλα τα στοιχεία της γλώσσας Ansi C, που υποστηρίζονται από την Αρχιτεκτονική AVR, με μερικά χαρακτηριστικά γνωρίσματα που προστίθενται για να εκμεταλλευθούν την ιδιομορφία της αρχιτεκτονικής AVR. Το δομημένο περιβάλλον ανάπτυξης (Integrated Development Environment (IDE)) έχει ενσωματωμένο έναν AVR Chip In-System Programmer που επιτρέπει την αυτόματη μεταφορά του προγράμματος στο chip του μικροελεγκτή μόλις ολοκληρωθεί με επιτυχία η διαδικασία του compilation. O In-System Programmer σχεδιάστηκε για να λειτουργήσει για τα αναπτυξιακά board: Atmel STK500 Kanda Systems STK200+/300 Dontronics DT006 Vogel Elektronik VTEC-ISP Microtronics ATCPU Mega2000. Για τη διόρθωση των ενσωματωμένων συστημάτων, που χρησιμοποιούν την σειριακή επικοινωνία, το IDE έχει ένα ενσωματωμένο τερματικό. Εκτός από τις τυποποιημένες βιβλιοθήκες C, ο μεταγλωττιστής CodeVisionAVR C έχει βιβλιοθήκες για: Alphanumeric LCD modules ∆ίαυλος Philips I 2 C Αισθητήρες θερμοκρασίας LM75 της National Semiconductor Philips PCF8563, PCF8583, Dallas Semiconductor DS1302 και DS1307 Real Time Clocks Dallas Semiconductor 1 Wire protocol Dallas Semiconductor DS1820/DS1822 Temperature Sensors Dallas Semiconductor DS1621 Thermometer/Thermostat

Transcript of AVR Code Vision Instructions

Page 1: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 1

1. Εισαγωγή Ο Infotech CodeVisionAVR είναι ένας C cross compiler, µε δοµηµένο περιβάλλον

ανάπτυξης και αυτοµατοποιηµένης παραγωγής κώδικα σχεδιασµένος για την

οικογένεια των µικροελεγκτών AVR της Atmel.

Το πρόγραµµα είναι µια τριανταδυάµπιτη εφαρµογή που τρέχει κάτω από τα

λειτουργικά συστήµατα WINDOWS 95, 98, NT 4.0, 2000 και XP.

Ο C cross compiler εφαρµόζει σχεδόν όλα τα στοιχεία της γλώσσας Ansi C, που

υποστηρίζονται από την Αρχιτεκτονική AVR, µε µερικά χαρακτηριστικά γνωρίσµατα

που προστίθενται για να εκµεταλλευθούν την ιδιοµορφία της αρχιτεκτονικής AVR.

Το δοµηµένο περιβάλλον ανάπτυξης (Integrated Development Environment (IDE))

έχει ενσωµατωµένο έναν AVR Chip In-System Programmer που επιτρέπει την

αυτόµατη µεταφορά του προγράµµατος στο chip του µικροελεγκτή µόλις

ολοκληρωθεί µε επιτυχία η διαδικασία του compilation. O In-System Programmer

σχεδιάστηκε για να λειτουργήσει για τα αναπτυξιακά board:

• Atmel STK500

• Kanda Systems STK200+/300

• Dontronics DT006

• Vogel Elektronik VTEC-ISP

• Microtronics ATCPU

• Mega2000.

Για τη διόρθωση των ενσωµατωµένων συστηµάτων, που χρησιµοποιούν την σειριακή

επικοινωνία, το IDE έχει ένα ενσωµατωµένο τερµατικό.

Εκτός από τις τυποποιηµένες βιβλιοθήκες C, ο µεταγλωττιστής CodeVisionAVR C

έχει βιβλιοθήκες για:

• Alphanumeric LCD modules

• ∆ίαυλος Philips I2C

• Αισθητήρες θερµοκρασίας LM75 της National Semiconductor

• Philips PCF8563, PCF8583, Dallas Semiconductor DS1302 και DS1307 Real

Time Clocks

• Dallas Semiconductor 1 Wire protocol

• Dallas Semiconductor DS1820/DS1822 Temperature Sensors

• Dallas Semiconductor DS1621 Thermometer/Thermostat

Page 2: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 2

• Dallas Semiconductor DS2430 & DS2433 EPROM’s

• SPI

• Power management

• Delays

• Μετατροπή κώδικα Gray.

To CodeVisionAVR περιέχει επίσης τον CodeWizardAVR Automatic Program

Generator, ο οποίος επιτρέπει γρήγορη ανάπτυξη κώδικα που απαιτείται για την

εφαρµογή των ακόλουθων λειτουργιών:

• External memory access setup

• Chip reset source identification

• Αρχικοποίηση των Ι/Ο Ports

• Αρχικοποίηση εξωτερικών διακοπών

• Αρχικοποίηση των Timers / Counters

• Αρχικοποίηση Watchdog Timer

• Αρχικοποίηση UART και σειριακής επικοινωνίας µε χρήση διακοπών

• Αρχικοποίηση Αναλογικών συγκριτών

• Αρχικοποίηση ADC

• Αρχικοποίηση SPI Interface

• Αρχικοποίηση I2C Bus, αισθητήρα θερµοκρασίας LM75, DS1621

Thermometer/Thermostat και PCF8563, PCF8583, DS1302, DS1307 real

time clocks.

• Αρχικοποίηση 1 Wire Bus και DS1820/DS1822 αισθητήρων θερµοκρασίας

• Αρχικοποίηση LCD module

Page 3: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 3

2. ∆ηµιουργία ενός νέου Project Μπορούµε να δηµιουργήσουµε ένα νέο Project επιλέγοντας από το µενού File|New.

Στο πλαίσιο διαλόγου που εµφανίζεται επιλέγουµε Project και στη συνέχεια ΟΚ.

Εικόνα 3.2.1

Ένα νέο παράθυρο διαλόγου εµφανίζεται για να επιβεβαιώσει εάν θα επιθυµούσαµε

να χρησιµοποιήσουµε τον CodeWizardAVR για να δηµιουργήσουµε το νέο

πρόγραµµα.

Εικόνα 3.2.2

Εάν δεν θέλουµε να χρησιµοποιήσουµε τον CodeWizardAVR επιλέγουµε Νο και στη

συνέχεια θα ανοίξει παράθυρο διαλόγου Create New Project. Πρέπει να καθορίσουµε

το νέο όνοµα αρχείου και τη θέση του.

Εικόνα 3.2.3

Το αρχείο Project θα έχει την επέκταση “prj”. Μπορείτε να διαµορφώσoυµε το

Project µε τη χρησιµοποίηση της εντολής επιλογών Project|Configure.

Για να χρησιµοποιήσουµε τον CodeWizardAVR επιλέγουµε YES.

Page 4: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 4

3. Χρησιµοποιώντας τον CodeWizardAVR automatic program generator

Η χρήση του CodeWizardAVR automatic program generator, απλοποιεί τη

διαδικασία της δηµιουργίας κώδικα εκκίνησης για τους διάφορους τύπους

µικροελεγκτών AVR.

Εικόνα 3.3.1

Στο παράθυρο που παρουσιάζεται εµφανίζονται οι ρυθµίσεις του tab “chip” και

επιλέγουµε το µικροελεγκτή AT90S8535 και σαν τιµή ρολογιού τα 4 MHz δεδοµένου

ότι αυτή είναι η τιµή που προβλέπεται για το αναπτυξιακό STK200.

Επιλέγουµε το tab "Ports" για να καθορίσουµε την αρχική κατάσταση των Ι/Ο Ports.

Η προκαθορισµένη ρύθµιση είναι να έχουµε όλες τις πόρτες σαν εισόδους (εικόνα

3.3.2)

Page 5: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 5

Εικόνα 3.3.2

Επιλέγοντας τα διάφορα tab µπορούµε να κάνουµε ρυθµίσεις για UART, Analog

Comparator, ADC, SPI, I2C, 1Wire, LCD, Bit-Banged, External IRQ και των timers.

Αφού ολοκληρώσουµε τις ρυθµίσεις από το µενού File επιλέγουµε Generate, Save

and Exit και δίνουµε τα ονόµατα των αρχείων προς αποθήκευση.

4. Άνοιγµα ενός υπάρχοντος Project

Μπορούµε να ανοίξουµε ένα υπάρχον αρχείο Project χρησιµοποιώντας την εντολή

στην γραµµή επιλογών File|Open ή µε την επιλογή Open της γραµµής εργαλείων.

Ένα παράθυρο διαλόγου Open εµφανίζεται.

Page 6: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 6

Εικόνα 3.4

Πρέπει να επιλέξoυµε το όνοµα αρχείου του Project που επιθυµούµε να ανοίξουµε.

Επιλέγοντας Open θα ανοίξoυµε το αρχείο Project καθώς και τα αρχεία source.

Μπορούµε να διαµορφώσουµε το Project µε τη χρησιµοποίηση της εντολής επιλογών

Project|Configure.

3.5 Προσθήκη σηµειώσεων ή σχολίων στο Project Με κάθε Project το CodeVisionAVR IDE δηµιουργεί ένα αρχείο κειµένου όπου

µπορούµε να τοποθετήσουµε σηµειώσεις και σχόλια.

Μπορούµε να έχουµε πρόσβαση σε αυτό το αρχείο χρησιµοποιώντας τις εντολές

επιλογών Project|Notes ή Windows.

Αυτό το αρχείο µπορεί να τροποποιηθεί χρησιµοποιώντας τις τυποποιηµένες εντολές

Editor. Το αρχείο σώζεται αυτόµατα όταν επιλέξουµε File|Close Project ή κλείσουµε

το πρόγραµµα CodeVisionAVR.

Εικόνα 3.5

Page 7: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 7

6. ∆ιαµόρφωση του Project Το Project µπορεί να διαµορφωθεί χρησιµοποιώντας την επιλογή µενού

Project|Configure ή το κουµπί στη γραµµή εργαλείων Project Configure.

Προσθέτοντας ή αφαιρώντας ένα αρχείο από το Project

Για να προσθέσουµε ή να αφαιρέσουµε ένα αρχείο από το τρέχον πρόγραµµα πρέπει

να χρησιµοποιήσουµε την επιλογή µενού Project|Configure.

Ένα tab Configure Project θα ανοίξει. Πρέπει να επιλέξουµε το tab Files.

Με την επιλογή του κουµπιού Add µπορούµε να προσθέσουµε ένα source αρχείο στο

πρόγραµµα. Το πρώτο αρχείο που προστίθεται στο πρόγραµµα είναι το κύριο αρχείο

προγράµµατος.

Η διαδικασία Μake θα γίνεται για αυτό το αρχείο.

Τα υπόλοιπα αρχεία που προστίθενται στο Project θα συνδεθoύν αυτόµατα µε το

κύριο αρχείο προγράµµατος στη διαδικασία Μake.

Εικόνα 3.6.1

Περισσότερα από ένα αρχεία µπορούν να προστεθούν επιλεκτικά µε το κράτηµα του πλήκτρου CTRL στο πλαίσιο διαλόγου Add File To Project.

Page 8: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 8

εικόνα 3.6.2

Όταν το Project ανοίξει όλα τα αρχεία προγράµµατος θα ανοίξουν στον editor.

Με κλικ στο όνοµα του αρχείου και επιλογή του κουµπιού Remove µπορούµε να

αφαιρέσουµε αυτό το αρχείο από το πρόγραµµα. Οι αλλαγές µπορούν να

αποθηκευτούν µε την επιλογή του ΟΚ ή να ακυρωθούν µε την επιλογή CANCEL.

7. Καθορισµός επιλογών του C Compiler Για να ορίσουµε τις επιλογές του C Compiler για το τρέχον project, επιλέγουµε από

το µενού Project|Configure.

Στο διάλογο Configure Project που θα εµφανιστεί επιλέγουµε το tab C Compiler.

εικόνα 3.7

Page 9: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 9

Μπορούµε να επιλέξουµε τον τύπο του µικροελεγκτή AVR που χρησιµοποιούµε στην

επιλογή Chip.

Πρέπει επίσης να διευκρινίσoυµε την CPU Clock Frequency σε MHz, που

απαιτείται για τα Delay Functions, Wire Protocol Functions, τους θερµικούς

ανιχνευτές Dallas Semiconductor D81820/D51822 Functions και για την

αρχικοποίηση της UART.

Εάν το πρόγραµµα χρησιµοποιεί σειριακή επικοινωνία πρέπει να επιλέξουµε το

Initialize UART και να καθορίσουµε το Baud rate. Ο C Compiler θα παραγάγει

αυτόµατα τον κώδικα εκκίνησης που θα εµπεριέχει τη λειτουργία Initialize UART

και το Baud rate που καθορίσαµε.

Το απαραίτητο µοντέλο µνήµης µπορεί να επιλεγεί µε τη χρησιµοποίηση του option

group Memory Model.

Επίσης µπορούµε να επιλέξουµε την βελτιστοποίηση του κώδικα, ώστε να παραχθεί

ένα πρόγραµµα µε το µικρότερο δυνατό µέγεθος ή µε τη µέγιστη ταχύτητα εκτέλεσης,

χρησιµοποιώντας την επιλογή Optimize for|Size ή Optimize for|Speed αντίστοιχα.

Το µέγεθος του Data Stack πρέπει να διευκρινιστεί επίσης.

Επίσης µπορούµε να διευκρινίσουµε το µέγεθος της εξωτερικής µνήµης SRAM (σε

περίπτωση που ο µικροελεγκτής συνδέεται µε εξωτερική µνήµη SRAM).

Η επιλογή External SRAM Wait State επιτρέπει την εισαγωγή καταστάσεων

αναµονής κατά τη διάρκεια της πρόσβασης στην εξωτερική µνήµη SRAM. Αυτό

είναι χρήσιµο όταν χρησιµοποιούνται αργές συσκευές µνήµης.

Εάν χρησιµοποιηθεί µια συσκευή Atmel AT94K05, AT94K10, AT94K20 ή

AT94K40 FPSLIC, τότε υπάρχει η δυνατότητα να διευκρινιστεί το µέγεθος µνήµης

SRAM (Kwords) που θα χρησιµοποιεί το πρόγραµµα.

Το µέγεθος των µεταβλητών, που τοποθετούνται στους καταχωρητές R2-R15, µπορεί

να διευκρινιστεί στη λίστα τιµών Bit Variables Size.

Η ενεργοποίηση της επιλογής Promote char to int πραγµατοποιεί την µετατροπή

των τελεστών τύπου char σε int. Αυτή η επιλογή µπορεί επίσης να καθοριστεί µε την

χρήση της ψευδοεντολής του compiler #pragma promotechar.

Η προαγωγή των τελεστών char σε int οδηγεί σε αυξηµένο µέγεθος κώδικα και

χαµηλότερη ταχύτητα για έναν µικροελεγκτή 8bit όπως ο AVR.

Αν η επιλογή char is unsigned είναι ενεργοποιηµένη, ο µεταγλωττιστής

µεταχειρίζεται εξ’ ορισµού τον τύπο δεδοµένων char σαν έναν µη προσηµασµένο 8bit

Page 10: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 10

αριθµό µεταξύ 0...255. Στην περίπτωση που η επιλογή αυτή δεν είναι ενεργοποιηµένη

τότε ο 8bit αριθµός είναι ένας προσηµασµένος αριθµός στο διάστηµα -128...127.

Αυτή η επιλογή µπορεί επίσης να καθοριστεί χρησιµοποιώντας σε επίπεδο

compilation την δήλωση της ψευδοεντολής #pragma uchar.

Στην περίπτωση αυτή που ο τύπος char χειρίζεται σαν µη προσηµασµένος ακέραιος,

επιτυγχάνεται καλύτερο µέγεθος κώδικα και ταχύτητα.

Επιλέγοντας το check box Globally #define επιτρέπεται στις καθορισµένες

µακροεντολές να είναι ορατές σε όλα τα αρχεία του project.

Το υπόλοιπο των καταχωρητών R2 ως R15, που δεν χρησιµοποιείται για τις

µεταβλητές, µπορεί να γίνει αυτόµατα διαθέσιµο στις γενικές µεταβλητές τύπου char

και int µε την επιλογή Code Compilation|Automatic Register Allocation.

Ένα εξωτερικό αρχείο εκκίνησης µπορεί να χρησιµοποιηθεί µε τον έλεγχο του Code

Compilation|Use an External Startup File.

Η παραγωγή µηνυµάτων προειδοποίησης κατά τη διάρκεια του compilation µπορεί να

επιτραπεί ή να τεθεί εκτός λειτουργίας µε τη χρησιµοποίηση του Enable Warnings.

Για λόγους διόρθωσης σφαλµάτων υπάρχει η επιλογή Stack End Markers. Εάν

επιλεγεί, ο µεταγλωττιστής τοποθετεί τα string DSTACKEND, HSTACKEND, στο

τέλος του Data Stack και Hardware Stack αντίστοιχα.

Όταν διορθώνουµε το πρόγραµµα µε το διορθωτή AVR Studio µπορούµε να δούµε

εάν αυτές οι σειρές είναι επικαλυµµένες, και συνεπώς τροποποιούµε το Data Stack

Size.

Όταν το πρόγραµµά µας τρέχει σωστά µπορούµε να θέσουµε εκτός λειτουργίας την

τοποθέτηση των σειρών αυτών προκειµένου να µειώσουµε το µέγεθος κώδικα.

Χρησιµοποιώντας τη λίστα File Output Format(s) µπορούµε να επιλέξουµε ένα από

τα ακόλουθα format για τα αρχεία που παράγονται από το µεταγλωττιστή:

• ∆εκαεξαδικό της Intel

• COFF (που απαιτείται από το διορθωτή Atmel AVR Studio), ROM και EEP

(που απαιτούνται από τον In- System Programmer)

• Atmel γενικά OBJ, ROM και EEP

(που απαιτούνται από τον In-System Programmer).

Page 11: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 11

Εάν επιλεγεί το format αρχείων COFF και ενεργοποιηθεί το check box Use the

Terminal I/O in AVR Studio, παράγονται επιπλέον πληροφορίες διόρθωσης

σφαλµάτων για την χρησιµοποίηση του τερµατικού εισόδου-εξόδου του AVR Studio

για επικοινωνία µε την εξοµοιωµένη θύρα UART του AVR chip.

Οι αλλαγές µπορούν να αποθηκευτούν ή να ακυρωθούν, χρησιµοποιώντας αντίστοιχα

τα κουµπιά ΟΚ και Cancel.

8. Μεταφορά του µεταγλωττισµένου προγράµµατος στο AVR Chip

µετά τη δηµιουργία του εκτελέσιµου κώδικα Αυτή η επιλογή είναι διαθέσιµη εάν επιλέξουµε την ετικέτα After Make στο

παράθυρο Configure Project.

Εικόνα 3.8

Εάν ενεργοποιηθεί η επιλογή Program the Chip, τότε µετά από µία επιτυχή

διόρθωση/µεταγλώττιση, το πρόγραµµα θα µεταφερθεί αυτόµατα στο AVR chip

χρησιµοποιώντας τον ενσωµατωµένο Programmer.

Τα ακόλουθα βήµατα εκτελούνται αυτόµατα:

• ∆ιαγραφή µνηµών του Chip

• Έλεγχος διαγραφής των FLASH και EEPROM

• Προγραµµατισµός FLASH και επαλήθευση

• Προγραµµατισµός EEPROM και επαλήθευση

Page 12: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 12

• Προγραµµατισµός Fuse και Lock Bits

Από την επιλογή Chip µπορούµε να επιλέξουµε τον τύπο του chip που θέλουµε να

προγραµµατίσουµε.

Εάν το chip που έχουµε επιλέξει έχει Fuse Bit(s) που µπορούν να προγραµµατιστούν,

τότε θα εµφανιστεί µια συµπληρωµατική επιλογή Fuse bit(s).

Εάν επιθυµούµε να κλειδώσουµε το chip ώστε να αποτρέπεται οποιαδήποτε ενέργεια

για επαναπρογραµµατισµό, πρέπει να επιλέξουµε το αντίστοιχο option από το option

panel FLASH Lock Bits.

Εάν επιθυµούµε έλεγχο της ψηφιακής υπογραφής του chip τότε πρέπει να

ενεργοποιηθεί το Check Signature.

Για να επιταχυνθεί η διαδικασία προγραµµατισµού απενεργοποιούµε το Check

Erasure. Σε αυτήν την περίπτωση δεν θα υπάρξει καµία επαλήθευση της ακρίβειας

της διαγραφής της FLASH.

Το τετραγωνίδιο Preserve EEPROM επιτρέπει την διατήρηση του περιεχοµένου της

EEPROM κατά τη διάρκεια της διαγραφής του chip.

Για να επιταχύνουµε επίσης τον προγραµµατισµό µπορούµε να αποεπιλέξουµε το

check box Verify. Σε αυτήν την περίπτωση δεν θα υπάρξει κανένα verification της

ακρίβειας του προγραµµατισµού των FLASH και EEPROM.

Οι αλλαγές µπορούν να αποθηκευτούν ή να ακυρωθούν, χρησιµοποιώντας

αντίστοιχα τα κουµπιά ΟΚ και CANCEL.

9. Εκτελώντας ένα πρόγραµµα ορισµένο από το χρήστη µετά τη

διαδικασία “Make” Αυτή η επιλογή είναι διαθέσιµη εάν επιλέξουµε την ετικέτα After Make στο

παράθυρο Project Configure.

Εάν ενεργοποιήσουµε την επιλογή Execute User’s Program, τότε ένα πρόγραµµα

που έχουµε διευκρινίσει προηγουµένως, θα εκτελεσθεί µετά τη διαδικασία

µεταγλώττισης.

Page 13: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 13

Εικόνα 3.9

Χρησιµοποιώντας το κουµπί Program Settings µπορείτε να τροποποιήσουµε :

• τον κατάλογο και το όνοµα αρχείου του προγράµµατος

• τις παραµέτρους της γραµµής εντολής του προγράµµατος

• τον κατάλογο εργασίας του προγράµµατος

Εικόνα 3.10

Οι αλλαγές µπορούν να σωθούν ή ακυρωθούν, χρησιµοποιώντας τα κουµπιά OK και

CANCEL.

Page 14: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 14

10. ∆ηµιουργία ενός εκτελέσιµου προγράµµατος Η δηµιουργία ενός εκτελέσιµου προγράµµατος επιτυγχάνεται :

1. Κάνοντας compilation στο πηγαίο αρχείο κώδικα C του project, χρησιµοποιώντας

τον CodeVisionAVR C Compiler και

2. Παράγοντας κώδικα assembly, χρησιµοποιώντας τον assembler AVRASM32 του

Atmel AVR.

Το “compile” ενός αρχείου, εκτελεί το βήµα 1.

Το “make”, εκτελεί τα βήµατα 1 και 2 για το κύριο αρχείο προγράµµατος

11. To compilation ενός Project Για να κάνουµε compilation σε ένα Project πρέπει να χρησιµοποιήσουµε την εντολή

του menu Project|Compile, ή εναλλακτικά πατώντας το F9 function key, ή τέλος

πατώντας το κουµπί Compile της µπάρας εργαλείων. Ο CodeVisionAVR C Compiler

θα εκτελεσθεί, παράγοντας ένα αρχείο κώδικα assembly µε επέκταση .asm.

Το αρχείο assembly µπορεί να εξεταστεί και να τροποποιηθεί µε τον Editor.

Μετά το compilation εµφανίζεται ένα παράθυρο πληροφοριών το οποίο αναφέρει τα

αποτελέσµατα της διαδικασίας compile.

Εικόνα 3.11

Page 15: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 15

12. ∆ιαδικασία MAKE του Project Για να παράγoυµε (Make) το Project πρέπει να χρησιµοποιήσουµε την εντολή

Project|Make του menu, ή εναλλακτικά να πατήσουµε τον συνδυασµό πλήκτρων

Shift+F9 ή το κουµπί Make της µπάρας εργαλείων. Ο CodeVisionAVR C Compiler

θα εκτελεσθεί, παράγοντας ένα αρχείο κώδικα assembly µε την επέκταση .asm.

Το υπόλοιπα αρχεία που προστέθηκαν στο project θα συνδεθούν αυτόµατα µε το

κύριο αρχείο του προγράµµατος.

Τα ενδεχόµενα λάθη και/ή οι προειδοποιήσεις σύνταξης θα απαριθµηθούν στο

παράθυρο Message, που βρίσκεται κάτω από Παράθυρο του Editor, ή το παράθυρο

Navigator.

Εικόνα 3.12.1

Εάν δεν εντοπίστηκε κανένα λάθος, τότε ο assembler AVRASM32 θα εκτελεσθεί,

δίνοντας σαν έξοδο ένα αρχείο του τύπου που διευκρινίστηκε νωρίτερα στο

παράθυρο επιλογών Project|Configure|C Compiler.

Αφότου ολοκληρωθεί η διαδικασία θα ανοίξει ένα παράθυρο Information, που θα

παρουσιάζει τα αποτελέσµατα.

Στην ετικέτα Compiler φαίνονται τα αποτελέσµατα του compilation.

Page 16: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 16

Εικόνα 3.12.2

Στην ετικέτα Assembler εµφανίζονται τα αποτελέσµατα του assembler.

Εικόνα 3.12.3

Page 17: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 17

Στην ετικέτα Programmer φαίνεται ο Chip Programming Counter, ο οποίος απαριθµεί

τις φορές, που το AVR chip, έχει προγραµµατιστεί µέχρι τώρα.

Εικόνα 3.12.4

Με το πάτηµα του κουµπιού Set Counter θα ανοίξει το παράθυρο Set Programming

Counter.

Εικόνα 3.12.5

Σε αυτό το παράθυρο διαλόγου επιτρέπεται η µεταβολή της τιµής Chip Programming

Counter.

Page 18: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 18

Το πάτηµα του κουµπιού Program επιτρέπει τον αυτόµατο προγραµµατισµό του chip

AVR µετά από ένα επιτυχές compilation. To Cancel θα θέσει εκτός λειτουργίας τον

αυτόµατο προγραµµατισµό.

13. Κλείσιµο ενός Project Μπορούµε να κλείσουµε το τρέχον Project µε τη χρησιµοποίηση της εντολής

επιλογών File|Close Project.

Εάν τα αρχεία του Project τροποποιήθηκαν και δεν σώθηκαν ακόµα, θα εµφανιστεί

πλαίσιο διαλόγου που θα ρωτά την πρόθεσή µας για αποθήκευση.

Εικόνα 3.13

Πατώντας Yes θα σώσει τις αλλαγές και θα κλείσει το πρόγραµµα.

Πατώντας No θα κλείσει το πρόγραµµα χωρίς αποθήκευση των αλλαγών.

Το πάτηµα του Cancel θα θέσει εκτός λειτουργίας τη διαδικασία κλεισίµατος

προγράµµατος.

Κατά την αποθήκευση, θα δηµιουργηθεί ένα εφεδρικό αρχείο µε µια προέκταση .pr.

14. Ο προγραµµατιστής AVR Το CodeVisionAVR IDE έχει ένα ενσωµατωµένο In-System AVR Chip Programmer

που βοηθά στην εύκολη µεταφορά, του µεταφρασµένου προγράµµατος, στο

µικροελεγκτή για δοκιµή.

Ο Programmer είναι σχεδιασµένος να λειτουργεί µε το Atmel STK500, Kanda

Systems STK200+/300, Dontronics DT006, Vogel Elektronik VTEC-ISP ή τους

MicroTronics ATCPU και Mega2000 πίνακες ανάπτυξης, που συνδέονται µε την

παράλληλη θύρα του υπολογιστή σας.

Ο Programmer εκτελείται µε την επιλογή της εντολής επιλογών TooIs|Chip

Programmer ή πιέζοντας το κουµπί Chip Programmer στη µπάρα εργαλείων.

Page 19: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 19

Εικόνα 3.14.1

Μπορούµε να επιλέξουµε τον τύπο του chip που επιθυµούµε στο πρόγραµµα

χρησιµοποιώντας την επιλογή Chip.

Εάν το chip που έχουµε επιλέξει έχει Fuse Bit(s) που µπορούν να προγραµµατιστούν,

τότε θα εµφανιστεί ένα βοηθητικό check box Fuse Bit(s). Χρησιµοποιώντας αυτό το

check box µπορούµε να θέσουµε τις διάφορες ρυθµίσεις του chip.

Όταν είναι επιθυµητό να κλειδώνεται το chip ώστε να αποτρέπεται οποιαδήποτε

ενέργεια για επαναπρογραµµατισµό, πρέπει να επιλέγεται το αντίστοιχο option από το

option panel FLASH Lock Bits.

Ο Programmer έχει δύο buffer µνήµης:

• τον buffer µνήµης FLASH

• τον buffer µνήµης EEPROM.

Μπορούµε να φορτώσουµε ή να αποθηκεύσουµε το περιεχόµενο αυτών των buffer

χρησιµοποιώντας to File menu. Τα υποστηριζόµενα format αρχείων είναι:

• Atmel .rom και .eep

• ∆εκαεξαδικό (HEX) της Intel

• ∆υαδικό .bin

Page 20: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 20

Φορτώνοντας ένα αρχείο στον κατάλληλο buffer, οι διευθύνσεις Start και End

ενηµερώνονται αναλόγως. Τις διευθύνσεις αυτές µπορούµε επίσης να τις

τροποποιήσουµε.

Το περιεχόµενο των buffer της FLASH και της EEPROM, µπορούν να εµφανιστούν

και να τροποποιηθούν, µε τις εντολές επιλογών Edit|FLASH και Edit|EEPROM

αντίστοιχα.

Όταν καλείται µια από αυτές τις εντολές, τότε ανοίγει ένα παράθυρο Edit που

επιδεικνύει το περιεχόµενο του αντίστοιχου buffer:

Εικόνα 3.14.2

Τα περιεχόµενα του buffer, στην τονισµένη διεύθυνση, µπορούν να τροποποιηθούν

πληκτρολογώντας µια νέα τιµή.

Η τονισµένη διεύθυνση µπορεί να τροποποιηθεί χρησιµοποιώντας τα πλήκτρα των

arrows, το Tab, το Shift+Tab, το PageUp ή το PageDown.

Το παράθυρο Fill Memory Block µπορεί να ανοίξει κάνοντας δεξί κλικ στο

παράθυρο Edit.

Εικόνα 3.14.3

Page 21: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 21

Αυτό το παράθυρο µας επιτρέπει να διευκρινίσουµε το Start Address, End Address

και Fill Value της περιοχής µνήµης που πρόκειται να χρησιµοποιηθεί.

Όταν είναι επιθυµητό να ελέγχεται η ψηφιακή υπογραφή του chip πριν από

οποιαδήποτε λειτουργία πρέπει να χρησιµοποιηθεί η επιλογή Check Signature.

Για να επιταχυνθεί η διαδικασία προγραµµατισµού µπορούµε να απενεργοποιήσουµε

το check box Check Erasure. Σε αυτήν την περίπτωση δεν θα υπάρξει καµία

επαλήθευση της ακρίβειας της διαγραφής της FLASH.

Το τετραγωνίδιο Preserve EEPROM επιτρέπει την διατήρηση του περιεχοµένου της

EEPROM κατά τη διαδικασία της διαγραφής του chip.

Για να επιταχυνθεί η διαδικασία προγραµµατισµού µπορούµε επίσης να

απενεργοποιήσουµε το box Verify. Σε αυτήν την περίπτωση δεν θα υπάρξει καµία

επαλήθευση της ακρίβειας του προγραµµατισµού της FLASH και της EEPROM.

Για τη διαγραφή των FLASH και EEPROM ενός chip επιλέγουµε την εντολή

επιλογών Program|Erase. Μετά από τη διαγραφή, η FLASH και η EEPROM του

chip ελέγχονται αυτόµατα ως προς την επίτευξη της εκκένωσης.

Ο τελευταίος αυτός έλεγχος µπορεί να γίνει µεµονωµένα µε την εντολή επιλογών

Program|Blank Check.

Όταν επιθυµούµε να προγραµµατίσουµε τη FLASH µε το περιεχόµενο του buffer της

FLASH πρέπει να χρησιµοποιήσουµε την εντολή Program|FLASH.

Αντίστοιχα για προγραµµατισµό της EEPROM πρέπει να χρησιµοποιήσουµε την

εντολή επιλογών Program|EEPROM. Μετά τον προγραµµατισµό τους, η FLASH

και η EEPROM ελέγχονται για την ορθότητα των περιεχοµένων τους.

Για να προγραµµατιστεί το Lock και τα Fuse Bit(s) χρησιµοποιούνται οι επιλογές του

menu Program|Fuse Bit(s) και Program|Lock Bit(s) αντίστοιχα.

Η εντολή επιλογών Program|All επιτρέπει αυτόµατα:

• ∆ιαγραφή µνηµών του Chip

• Έλεγχος διαγραφής των FLASH και EEPROM

• Προγραµµατισµό FLASH και επαλήθευση

• Προγραµµατισµό EEPROM και επαλήθευση

• Προγραµµατισµό Fuse και Lock Bits

Για το διάβασµα του περιεχόµενου της FLASH και της EEPROM, επιλέγουµε τις

εντολές Read|FLASH και Read|EEPROM αντίστοιχα.

Page 22: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 22

Η ανάγνωση του signature του chip επιτυγχάνεται µε την εντολή επιλογών

Read|Chip Signature.

Το διάβασµα του Lock και των Fuse Bit(s) γίνεται αντίστοιχα µε τις εντολές

Read|Lock Bits και Read|Fuse Bits.

Για τη σύγκριση του περιεχοµένου της FLASH και της EEPROM του chip, µε τους

σχετικούς buffer µνήµης, υπάρχουν οι εντολές του menu Compare|FLASH και

Compare|EEPROM αντίστοιχα.

Για την έξοδο από τον Programmer και την επιστροφή στο CodeVisionAVR IDE

απλά επιλέγουµε File|Close.

15. ∆ιαµόρφωση του Assembler Ο Assembler µπορεί να διαµορφωθεί χρησιµοποιώντας την εντολή επιλογών

Settings|Assembler.

Εικόνα 3.15

Οι επιλογές του panel On Assembler Error καθορίζουν ποιο αρχείο θα ανοίξει

αυτόµατα από τον Editor στην περίπτωση που ο assembler εντοπίσει λάθος.

Οι αλλαγές στις ρυθµίσεις αυτές του Assembler γίνονται αποδεκτές µε το κουµπί ΟΚ

και αντίστοιχα ακυρώνονται µε το Cancel.

16. ∆ιαµόρφωση του προγραµµατιστή AVR Χρησιµοποιώντας την εντολή επιλογών Settings|Programmer, µπορούµε να

επιλέξουµε τον τύπο του ενσωµατωµένου προγραµµατιστή που χρησιµοποιείται, και

τη θύρα του υπολογιστή πάνω στην οποία συνδέεται ο προγραµµατιστής. Η τρέχουσα

έκδοση CodeVisionAVR υποστηρίζει τους ακόλουθους in-system programmers:

• Kanda Systems STK200+/300

• Atmel STK500

• Dontronics DT006

Page 23: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 23

• Vogel Elektronik VTEC-ISP

• Microtronics ATCPU

• Mega2000.

Οι προγραµµατιστές STK200+, STK300, DT006, VTEC-ISP, ATCPU και Mega2000

χρησιµοποιούν την παράλληλη θύρα εκτωπωτών (parallel printer port) .

Οι ακόλουθες επιλογές είναι διαθέσιµες στο panel επιλογών Printer Port :

• LPT1, στη διεύθυνση 378h

• LPT2, στη διεύθυνση 278h

• LPT3, στη διεύθυνση 3BCh.

Εικόνα 3.16.1

Ο προγραµµατιστής STK500 υποστηρίζεται µέσω του utility γραµµής εντολών

STK500.EXE που παρέχεται από το AVRStudio v3.50 ή µεταγενέστερο.

Προκειµένου να χρησιµοποιηθεί αυτό το utility πρέπει να διευκρινιστεί ο κατάλογος

στον οποίο βρίσκεται. Αυτό γίνεται χρησιµοποιώντας το κουµπί STK500.EXE

Directory.

Ο προγραµµατιστής STK500 χρησιµοποιεί µια σειριακή θύρα επικοινωνίας RS232C,

η οποία µπορεί να διευκρινιστεί στη λίστα Communication Port.

Εικόνα 3.16.2

Page 24: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 24

Οι αλλαγές αποθηκεύονται µε το κουµπί ΟΚ και ακυρώνονται µε το Cancel.

17. Σειριακή επικοινωνία – Ρυθµίσεις Terminal

Οι ρυθµίσεις Terminal is configured using the SettingslTerminal menu command.

Εικόνα 3.17

Στο παράθυρο Terminal Setup µπορούµε να κάνουµε ρυθµίσεις για:

• Την σειριακή πόρτα που θα χρησιµοποιήσουµε για Terminal, COM1 έως

COM6, καθώς και το ρυθµό µετάδοσης 110 έως 115200.

• Τον αριθµό των data bits που χρησιµοποιούνται για λήψη και αποστολή: 5

έως 8.

• Τον αριθµό των stop bits που χρησιµοποιούνται για λήψη και αποστολή: 1,

1.5 ή 2.

• Την ισοτιµία (parity) που χρησιµοποιείται για λήψη και αποστολή: None,

Odd, Even, Mark ή Space.

• Τον τύπο του τερµατικού εξοµοίωσης : TTY, VT52 ή VT100.

• Τον τύπο του handshaking που χρησιµοποιείται στην επικοινωνία: None,

Hardware (CTS ή DTR) ή Software (XON/XOFF).

• Πιθανότητα για πρόσθεση LF χαρακτήρων µετά από CR χαρακτήρες στη

λήψη και την αποστολή.

• Ενεργοποίηση - απενεργοποίηση του echo στους µεταδιδόµενους χαρακτήρες.

Οι αλλαγές αποθηκεύονται µε το κουµπί ΟΚ και ακυρώνονται µε το Cancel.

Page 25: AVR Code Vision Instructions

Εργαστήριο Εφαρµογών Μικροϋπολογιστών Code Vision AVR

Σελίδα 25

18. Το site της HP InfoTech's

Στο µενού Help - HP InfoTech Web Site , ανοίγει αυτόµατα στον internet explorer

τη σελίδα www.hpinfotech.ro . Εδώ υπάρχουν πληροφορίες και ενηµερώσεις για

τελευταίες εκδόσεις του CodeVisionAVR.

19. Επικοινωνία µε HP InfoTech µέσω E-Mail

Στο µενού HelpIE-Mail HP InfoTech ανοίγει το προκαθορισµένο e-mail

πρόγραµµα, για την αποστολή e-mail στις διευθύνσεις: [email protected] και

[email protected] .

20. Κλείνοντας το CodeVisionAVR Για να κλείσουµε το CodeVisionAVR IDE επιλέγουµε την εντολή επιλογών

File|Exit. Εάν µερικά αρχεία κώδικα τροποποιήθηκαν και δεν αποθηκεύθηκαν, θα

εµφανιστεί πλαίσιο διαλόγου που θα επιτρέπει να αποθηκεύσουµε.