架构师_程序员_码农网

Όνομα χρήστη Ανάκτηση κωδικού πρόσβασης
Εγγραφή

QQ登录

Μόνο ένα βήμα για να ξεκινήσετε

Αναζήτηση
Προβολή:6245|Απάντηση: 0
打印 上一主题 下一主题

Zigbee Journey (II): Το πρώτο πρόγραμμα CC2430 - πείραμα αναβοσβήνει LED

[Αντιγραφή συνδέσμου]
Ανελκυστήρας απευθείας στο 跳转到指定楼层
τον ιδιοκτήτη του κτιρίου
发表于 2014-10-30 23:15:39|只看该作者回帖奖励|Αναδρομικήπεριήγηση| Λειτουργία ανάγνωσης
I. Συνεχίζοντας από εκεί που σταματήσαμε

Στο προηγούμενο άρθρο , "Zigbee Journey (I): The Beginning", παρουσιάσαμε εν συντομία το Zigbee και το περιβάλλον ανάπτυξής του, Εντάξει, τώρα που τα εργαλεία είναι πλήρη, τίθεται ένα ερώτημα: πώς να χρησιμοποιήσετε το λογισμικό και το υλικό για να γράψετε ένα πρόγραμμα που μπορεί να τρέξει;

Αυτό το άρθρο είναι βασικά για να απαντήσει στο παραπάνω ερώτημα: στο "LED light blinking" ως παράδειγμα ενός μικρού πειράματος, πώς να ρυθμίσετε το IAR για την ανάπτυξη προγραμμάτων που βασίζονται στο CC2430, πώς να χρησιμοποιήσετε το IAR για να γράψετε και να κάνετε αποσφαλμάτωση του προγράμματος online.

Διαμόρφωση του IAR

Το IAR είναι μια ισχυρή πλατφόρμα ανάπτυξης ενσωματωμένων προγραμμάτων που υποστηρίζει πολλά είδη τσιπ και κάθε έργο στο IAR μπορεί να έχει τη δική του διαμόρφωση, συμπεριλαμβανομένου του τύπου συσκευής, του Heap/Stack, του Linker, του Debugger κ.λπ.

(1) Νέος χώρος εργασίας και έργο

Πρώτα απ' όλα, δημιουργήστε ένα νέο φάκελο ledtest, ανοίξτε το IAR, επιλέξτε το κύριο μενού File -> New -> Workspace για να δημιουργήσετε ένα νέο χώρο εργασίας.

Επιλέξτε Project -> Create New Project -> Empty Project, κάντε κλικ στο OK και αποθηκεύστε το αρχείο του έργου στο φάκελο ledtest, με όνομα: ledtest.ewp (όπως παρακάτω).

(2) Διαμόρφωση των γενικών επιλογών

Ρύθμιση στόχου: Συσκευή: CC2430,

Λειτουργία κωδικού: Κοντά,

Μοντέλο δεδομένων: Large,

Σύμβαση κλήσης: Στοίβα XDATA reetrant

Ρύθμιση δείκτη δεδομένων: Αριθμός DPTR: 1

Ρύθμιση στοίβας/συσσωρευτή: Μέγεθος στοίβας XDATA: 0x1FF

(3) Ρυθμίσεις συνδέσμου

Αρχείο εντολών συνδέσμου: select lnk51ew_cc2430.xcl

(4) Ρυθμίσεις αποσφαλμάτωσης:


Driver: Texas Instruments (αυτό το πείραμα για την πραγματική αποσφαλμάτωση μηχανής, οπότε επιλέξτε TI; αν άλλες διαδικασίες για να χρησιμοποιήσετε τον εξομοιωτή IAR, προαιρετικό προσομοιωτή) Συσκευή Αρχείο περιγραφής: CC2430.ddf

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

Τρίτον, η προετοιμασία του κώδικα προγράμματος(1) Νέο αρχείο προγράμματος

Επιλέξτε File->New->File, δημιουργήστε ένα νέο αρχείο main.c.

(2) Εισαγωγή αρχείων επικεφαλίδων

Τα προγράμματα που βασίζονται στον CC2430 πρέπει να περιλαμβάνουν μια αναφορά στο αρχείο ioCC2430.h, το οποίο ορίζει την αντιστοίχιση διευθύνσεων των διαφόρων τύπων καταχωρητών ειδικών λειτουργιών (SFRs) του CC2430.

#include //Εισάγετε το αρχείο κεφαλίδας που αντιστοιχεί στον CC2430 (περιέχει τον ορισμό κάθε SFR)

Αυτό το αρχείο είναι ενσωματωμένο στο IAR (παρόμοιο με το stdio.h), το ποντίκι σε αυτή τη γραμμή κώδικα, δεξί κλικ, επιλέξτε OPen "ioCC2430.h", μπορείτε να δείτε το πλήρες περιεχόμενο αυτού του αρχείου κεφαλίδας.

(3) Ορίστε τις ακίδες LED

Ελέγξτε το διάγραμμα κυκλώματος της πλακέτας ανάπτυξης, όπως φαίνεται παρακάτω:

Είναι γνωστό ότι τα led1~4 ελέγχονται από τις ακίδες P1_0~P4_0 αντίστοιχα, οπότε μπορούμε να ορίσουμε τα led1, led2, led3, led4 ως ακίδες P1_0, P2_0, P3_0, P4_0 αντίστοιχα.


#define led1 P1_0 //ορίζουμε το LED1 ως έλεγχο της θύρας P1_0 #define led2 P1_1

//define led2 ως έλεγχος θύρας P1_1 #define led3 P1_2 //define led3 ως έλεγχος θύρας P1_2 #define led4
P1_3 //define led4 για έλεγχο θύρας P1_3

(4) Κύρια λειτουργία

Στη συνέχεια, ξεκινήστε τη συγγραφή της κύριας συνάρτησης.

Πρώτα απ' όλα, προτού χρησιμοποιήσετε τις θύρες P1.0~P1.4, πρέπει να ρυθμίσετε τον τρόπο λειτουργίας και την κατεύθυνση εισόδου/εξόδου της, που περιλαμβάνει δύο SFRs: P1SEL, P1DIR.


P1SEL = 0x00; //Ορισμός της P1 ως συνηθισμένης θύρας εισόδου/εξόδου P1DIR |= 0x0F; & nbsp; //Set P1.0 P1.1 P1.2 P1.3 ως έξοδοι

Συμβουλές Zigbee
Το CC2430 διαθέτει P0_0 ~ P0_7, P1_0~P1_7, P2_0~P2_7 συνολικά 21 θύρες I/O. Μπορούν να χρησιμοποιηθούν ως ψηφιακές I/O γενικής χρήσης ή για τη σύνδεση περιφερειακών IOs όπως ADC, χρονιστής/μετρητής ή USART.
Υπάρχουν τρεις τύποι καταχωρητών στο SFR του CC2430 που μπορούν να χρησιμοποιηθούν για τη διαμόρφωση αυτών των θυρών IO:
①PxSEL (x είναι 0/1/2): επιλογή λειτουργίας θύρας P0/P1/P2
PxSEL (x είναι 0/1/2): επιλογή λειτουργίας θύρας P0/P1/P2 nbsp;0: ψηφιακή IO γενικής χρήσης, 1: περιφερειακή IO, προεπιλογή η προεπιλογή είναι 0
PxDIR (x είναι 0/1/2): κατεύθυνση θύρας P0/P1/P2
& nbsp;0: είσοδος, 1: έξοδος, η προεπιλογή είναι 0
③PxINP (x είναι 0/1): Λειτουργία εισόδου θύρας P0/P1
 0: επάνω, 1: έξοδος, προεπιλογή προεπιλογή 0 nbsp;0: pull-up/down, 1: tri-state, προεπιλογή η προεπιλογή είναι 0
Απαιτείται διαμόρφωση όταν χρησιμοποιείται η θύρα IO, εάν είναι προεπιλεγμένη, τότε πάρτε την προεπιλογή του συστήματος.

Στη συνέχεια, αρχικοποιήστε τις 4 λυχνίες LED, ρυθμίστε τις σε όλες τις σβηστές:




led1 = 1, led2 = 1, led3 = 1, led4 = 1.

Τέλος, γράψτε τον κώδικα για το εφέ αναβοσβήνει των LED:






led1 = 0; //led1 αναβοσβήνει Delay(10); led1 = 1; Delay(10); led2




= 0; //led2 αναβοσβήνει Delay(10); led2 = 1; Delay(10); led3 = 0; //led3 αναβοσβήνει Delay(10); /





//led3 αναβοσβήνει Delay(10); led3 = 1; Delay(10); led4 = 0; //led4 αναβοσβήνει &


nbsp; Delay(10); led4 = 1; Delay(10),


Πρόκειται για μια υπο-λειτουργία καθυστέρησης Delay(unsigned char n):





unsigned int j; for(i = 0; i < n; i++) &nbsp



; for(j = 1; j; j++) ; }

(5) Επισκόπηση κώδικα

Συνδυάστε τον παραπάνω κώδικα στο σύνολό του όπως φαίνεται παρακάτω:

//Εισαγωγή των αρχείων κεφαλίδων
#include //εισαγωγή του αρχείου κεφαλίδας που αντιστοιχεί στο CC2430 (συμπεριλαμβανομένου του ορισμού κάθε SFR)

// Ορισμός των ακροδεκτών LED
#define led1 P1_0 //define LED1 για τον έλεγχο της θύρας P1_0
#define led2 P1_1 //define LED2 για τον έλεγχο της θύρας P1_1
#define led3 P1_2 //define LED3 ως έλεγχος θύρας P1_2
#define led4 P1_3 //define LED4 για έλεγχο θύρας P1_3 //υπορουτίνα καθυστέρησης
void Delay (unsigned char n) {
unsigned char i.
unsigned int j.
for (i = 0; i < n; i++)
for (j = 1; j; j++)
;
}

void main (void )
{
P1SEL = 0x00; //Ορισμός της P1 ως κανονικής θύρας εισόδου/εξόδου
P1DIR |= 0x0F; //Set P1.0 P1.1 P1.2 P1.3 ως έξοδοι

led1 = 1; //αρχικοποίηση, και οι 4 λυχνίες led σβήνουν
led2 = 1; //αρχικοποίηση, και τα 4 led σβηστά
led3 = 1; led4 = 1; //αρχικοποίηση, και τα 4 led σβηστά
led2 = 1, led3 = 1, led4 = 1, //αρχικοποίηση, και τα 4 φώτα led σβηστά

while(1 ) //έναρξη κύκλου
{
led1 = 0; //led1 αναβοσβήνει
Delay (10 ); //Delay (10 ); //Delay (10 ); //Delay (10 ); //Delay (10 )
delay(10); led1 = 1; //led1 αναβοσβήνει
Delay (10 ).

led2 = 0; //led2 αναβοσβήνει
Delay (10 ); led2 = 1; //led2 αναβοσβήνει
led2 = 1; //led2 αναβοσβήνει
Delay (10 ).

led3 = 0; //led3 αναβοσβήνει
Delay (10 ); led3 = 1; //led3 αναβοσβήνει
led3 = 1; //led3 αναβοσβήνει
Delay (10 ).

led4 = 0; //led4 αναβοσβήνει
Delay (10 ); led4 = 1; //led4 αναβοσβήνει
led4 = 1; //led4 αναβοσβήνει
Delay (10 ); //Delay (10 )
}
}

Εντάξει, ο κώδικας για αυτό το μικρό πείραμα είναι γραμμένο, δεν είναι πολύ απλό αχ, hehe~!

Τέταρτον, μεταγλώττιση και αποσφαλμάτωση

Επιλέξτε Project -> Make, μεταγλωττίσετε τον κώδικα, εάν είναι επιτυχής, θα εμφανιστεί η ακόλουθη έξοδος:

2011021320413789.jpg
c

Συνδέστε τη συσκευή Zigbee με τη σειρά Zigbee development board → Debugger → θύρα USB του υπολογιστή και, στη συνέχεια, επιλέξτε Project -> Debug, το πρόγραμμα θα μεταφορτωθεί αυτόματα στην αναπτυξιακή πλακέτα.

Στη συνέχεια, επιλέξτε Debug -> Go για να ξεκινήσετε το πρόγραμμα και θα δείτε τις 4 λυχνίες LED να αναβοσβήνουν διαδοχικά! Αν και αυτό είναι ένα απλό δεν μπορεί να είναι πιο απλό μικρά πειράματα, αλλά όταν κατάφερα να το επιτύχω, ή ένα μικρό ενθουσιασμένο ~ huh!

V. Συμπέρασμα

Σε αυτό το έγγραφο, το "πείραμα αναβοσβήνει φως LED" ως βάση, αντίστοιχα, από τη διαμόρφωση του IAR, την προετοιμασία του κώδικα του προγράμματος, καθώς και τη διαδικασία μεταγλώττισης και αποσφαλμάτωσης εισάγει ολόκληρη τη διαδικασία υλοποίησης. Το επόμενο, θα είναι στην κατανόηση της βασικής διαδικασίας των διαδικασιών ανάπτυξης με βάση την εισαγωγή αρκετών CC2430 ανάπτυξη των βασικών πειραμάτων που αφορούν χρονοδιακόπτες, σειριακές επικοινωνίες, μετατροπή AD, ύπνου συστήματος και watchdog , κλπ., οπότε μείνετε συντονισμένοι!






Προηγούμενο: [Αναφέρεται] Zigbee ταξίδι (Ι): η αρχή του κόσμου
Επόμενο: [Αναφορά]Ταξίδι Zigbee (III): Μερικά σημαντικά βασικά πειράματα CC2430 - εξωτερικές διακοπές
收藏转播分享Συλλογή BroadcastTaobao
Το δίκτυο κωδικοποιημένων αγροτών, δημοσιεύεται μόνο κατά τη διαδικασία της πρακτικής, αντιμετώπισε τεχνικές δυσκολίες, μην παραπλανάτε τους άλλους.
Πρέπει να συνδεθείτε πριν να μπορέσετε να γράψετε ξανά Σύνδεση | Εγγραφή

Αυτή η έκδοση των ολοκληρωμένων κανόνων


ΑΠΟΠΟΙΗΣΗ ΕΥΘΥΝΗΣ: Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από τον Code Farmer περιορίζονται να χρησιμοποιούνται μόνο για σκοπούς μάθησης και έρευνας- τα παραπάνω περιεχόμενα δεν πρέπει να χρησιμοποιούνται για εμπορικούς ή παράνομους σκοπούς, διαφορετικά, όλες οι συνέπειες θα βαρύνουν τους ίδιους τους χρήστες. Αυτές οι πληροφορίες του ιστότοπου από το δίκτυο, η διαμάχη για τα πνευματικά δικαιώματα δεν έχει καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να αφαιρέσετε πλήρως το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, παρακαλούμε να υποστηρίξετε το γνήσιο λογισμικό, να αγοράσετε την εγγραφή και να λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, παρακαλούμε επικοινωνήστε μαζί μας μέσω ηλεκτρονικού ταχυδρομείου για να το αντιμετωπίσουμε.

Ταχυδρομείο To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-17 14:48

Γρήγορη απάντησηΕπιστροφή στην κορυφήΕπιστροφή στη λίστα