架构师_程序员_码农网

B Passwort abrufen
Registrieren

QQ登录

Nur ein Schritt zum Start

Suche
架构师_程序员_码农网 "架构师 ' 管理专区&Management Area ' Complaints and Suggestions ' 回收站 ' 【转】Zigbee之旅(二):第一个CC2430程序-- . -LEDs blinken ...
Ansicht:6245|Antwort: 0
打印 上一主题 下一主题

Zigbee Journey (II): Das erste CC2430-Programm - LED-Blinkexperiment

[Link kopieren]
D 跳转到指定楼层
dem Eigentümer des Gebäudes
发表于 2014-10-30 23:15:39|只看该作者回帖奖励 | UmgekehrtesBlättern|Lesemodus
I. Anknüpfen, wo wir aufgehört haben

Im vorangegangenen Artikel "Zigbee Journey (I): The Beginning" haben wir Zigbee und seine Entwicklungsumgebung kurz vorgestellt. Nun, da die Tools vollständig sind, stellt sich die Frage: Wie kann man die Software und Hardware nutzen, um ein lauffähiges Programm zu schreiben?

Dieser Artikel soll im Wesentlichen die obige Frage beantworten: "LED-Licht blinken" als Beispiel für ein kleines Experiment, wie man das IAR für die Entwicklung von CC2430-basierten Programmen konfiguriert, wie man das IAR verwendet, um das Programm online zu schreiben und zu debuggen.

Konfiguration von IAR

IAR ist eine leistungsfähige Embedded-Entwicklungsplattform, die viele Arten von Chips unterstützt, und jedes Projekt in IAR kann seine eigene Konfiguration haben, einschließlich Gerätetyp, Heap/Stack, Linker, Debugger, etc.

(1) Neuer Arbeitsbereich und neues Projekt

Erstellen Sie zunächst einen neuen Ordner ledtest, öffnen Sie IAR und wählen Sie im Hauptmenü File -> New -> Workspace, um einen neuen Workspace zu erstellen.

Wählen Sie Project -> Create New Project -> Empty Project, klicken Sie auf OK, und speichern Sie die Projektdatei im Ordner ledtest unter dem Namen ledtest.ewp (siehe unten).

(2) Allgemeine Optionen konfigurieren

Zieleinstellung: Gerät: CC2430;

Code-Modus: Nah;

Datenmodell: Large;

Aufrufkonvention: XDATA-Stack reetrant

Datenzeiger-Einstellung: Anzahl der DPTRs: 1

Stack/Heap-Einstellung: XDATA-Stackgröße: 0x1FF

(3) Linker-Einstellungen

Linker-Befehlsdatei: select lnk51ew_cc2430.xcl

(4) Debugger-Einstellungen:


Treiber: Texas Instruments (dieses Experiment für die reale Maschine Debugging, so wählen TI; wenn andere Verfahren zur Verwendung der IAR-Emulator, optional Simulator) Device Beschreibungsdatei: CC2430.ddf

An dieser Stelle ist die IAR-Konfiguration für dieses Experiment im Wesentlichen abgeschlossen, im Folgenden wird die Implementierung des Codes vorgestellt.

Drittens, die Vorbereitung des Programmcodes(1) Neue Programmdatei

Wählen Sie Datei->Neu->Datei, erstellen Sie eine neue Datei main.c.

(2) Einführen von Header-Dateien

CC2430-basierte Programme müssen einen Verweis auf die Datei ioCC2430.h enthalten, die die Adresszuordnung der verschiedenen Typen von Spezialfunktionsregistern (SFRs) des CC2430 definiert.

#include //Einführen der dem CC2430 entsprechenden Header-Datei (enthält die Definition der einzelnen SFRs)

Diese Datei ist in IAR integriert (ähnlich wie stdio.h). Klicken Sie mit der rechten Maustaste auf diese Codezeile und wählen Sie OPen "ioCC2430.h", um den vollständigen Inhalt dieser Header-Datei zu sehen.

(3) Definieren Sie die LED-Pins

Prüfen Sie den Schaltplan des Entwicklungsboards, wie unten gezeigt:

Es ist bekannt, dass led1~4 jeweils von den Pins P1_0~P4_0 gesteuert werden, also können wir led1, led2, led3, led4 jeweils als Pins P1_0, P2_0, P3_0, P4_0 definieren.


#define led1 P1_0 //define LED1 als P1_0 Portsteuerung #define led2 P1_1

//define led2 als P1_1 port control #define led3 P1_2 //define led3 als P1_2 port control #define led4
P1_3 //define led4 für P1_3 Portsteuerung

(4) Hauptfunktion

Beginnen Sie nun mit dem Schreiben der Hauptfunktion.

Bevor Sie die Ports P1.0~P1.4 verwenden können, müssen Sie zunächst den Arbeitsmodus und die Ein-/Ausgaberichtung festlegen, was zwei SFRs betrifft: P1SEL, P1DIR.


P1SEL = 0x00; //Einstellung von P1 als gewöhnlicher E/A-Anschluss P1DIR |= 0x0F; & nbsp; //Setzen von P1.0 P1.1 P1.2 P1.3 als Ausgänge

Zigbee-Tipps
CC2430 hat P0_0 ~ P0_7, P1_0~P1_7, P2_0~P2_7 insgesamt 21 I/O Ports. Sie können als Allzweck-Digital-I/Os oder zum Anschluss von Peripherie-IOs wie ADC, Timer/Counter oder USART verwendet werden.
Es gibt drei Arten von Registern im SFR des CC2430, die zur Konfiguration dieser IO-Ports verwendet werden können:
①PxSEL (x ist 0/1/2): P0/P1/P2 Port Funktionsauswahl
PxSEL (x ist 0/1/2): Auswahl der Funktion des Ports P0/P1/P2 nbsp;0: Allzweck-Digital-IO, 1: Peripherie-IO, Standardwert ist 0
PxDIR (x ist 0/1/2): Richtung des P0/P1/P2-Anschlusses
& nbsp;0: Eingang, 1: Ausgang, Standardeinstellung ist 0
③PxINP (x ist 0/1): Eingangsmodus des Anschlusses P0/P1
 0: oben, 1: Ausgang, Voreinstellung 0 nbsp;0: pull-up/down, 1: tri-state, Voreinstellung ist 0
Die Konfiguration ist erforderlich, wenn der IO-Port verwendet wird, wenn er voreingestellt ist, wird die Systemvorgabe übernommen.

Dann initialisieren Sie die 4 LEDs, setzen Sie sie auf alle aus:




led1 = 1; led2 = 1; led3 = 1; led4 = 1.

Schließlich schreiben Sie den Code für den Blinkeffekt der LEDs:






led1 = 0; //led1 blinkend Delay(10); led1 = 1; Delay(10); led2




= 0; //led2 blinkend Delay(10); led2 = 1; Delay(10); led3 = 0; //led3 blinkend Delay(10); /





//led3 blinkend Delay(10); led3 = 1; Delay(10); led4 = 0; //led4 blinkend &


nbsp; Verzögerung(10); led4 = 1; Verzögerung(10);


Dies beinhaltet eine Verzögerungsunterfunktion Delay(unsigned char n):





v oid Delay(unsigned char n) { unsigned char i; unsigned int j; for(i = 0; i < n; i++) &nbsp


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

(5) Code-Übersicht

Kombinieren Sie den obigen Code als Ganzes wie unten gezeigt:

//Einführung der Header-Dateien
#include //Einführung der Header-Datei, die dem CC2430 entspricht (einschließlich der Definition der einzelnen SFR)

// Definieren Sie die LED-Pins
#define led1 P1_0 //Definieren Sie LED1 für die Steuerung des Ports P1_0
#define led2 P1_1 //Definieren Sie LED2 für die Steuerung des Ports P1_1
#define led3 P1_2 //define LED3 als Portsteuerung P1_2
#define led4 P1_3 //define LED4 zur Steuerung des Ports P1_3 //delay subroutine
void Verzögerung (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; //Einstellung von P1 als normaler E/A-Anschluss
P1DIR |= 0x0F; //Setzen von P1.0 P1.1 P1.2 P1.3 als Ausgänge

led1 = 1; //initialisieren, alle 4 Led-Leuchten aus
led2 = 1; //initialisieren, alle 4 leds aus
led3 = 1; led4 = 1; //initialisieren, alle 4 led's aus
led2 = 1; led3 = 1; led4 = 1; //Initialisierung, alle 4 leds aus

while(1 ) //Zyklus starten
{
led1 = 0; //led1 blinkt
Verzögerung (10 ); //Verzögerung (10 ); //Verzögerung (10 ); //Verzögerung (10 )
delay(10); led1 = 1; //led1 blinkt
Delay (10 ).

led2 = 0; //led2 blinkt
Delay (10 ); led2 = 1; //led2 blinkt
led2 = 1; //led2 blinkt
Delay (10 ).

led3 = 0; //led3 blinkt
Delay (10 ); led3 = 1; //led3 blinkt
led3 = 1; //led3 blinkt
Delay (10 ).

led4 = 0; //led4 blinkt
Delay (10 ); led4 = 1; //led4 blinkt
led4 = 1; //led4 blinkt
Verzögerung (10 ); //Verzögerung (10 )
}
}

OK, der Code für dieses kleine Experiment ist geschrieben, ist nicht sehr einfach ah, hehe~!

Viertens, kompilieren und debuggen

Wählen Sie Project -> Make, kompilieren Sie den Code, wenn erfolgreich, erscheint die folgende Ausgabe:

2011021320413789.jpg
c

Schließen Sie das Zigbee-Gerät in der Reihenfolge Zigbee-Entwicklungsboard → Debugger → USB-Port des PCs an und wählen Sie dann Projekt -> Debug, das Programm wird automatisch auf das Entwicklungsboard heruntergeladen.

Wählen Sie dann Debug -> Go, um das Programm zu starten, und Sie werden die 4 LEDs nacheinander blinken sehen! Obwohl dies eine einfache kann nicht mehr einfache kleine Experimente, aber wenn es mir gelungen, es zu erreichen, oder eine kleine aufgeregt ~ huh!

V. Schlussfolgerung

In diesem Papier, das "LED-Licht blinkt Experiment" als Grundlage, bzw. von der Konfiguration des IAR, die Vorbereitung des Programms Code, sowie die Kompilierung und Debugging-Prozess führt die gesamte Umsetzung. Die nächste, wird es in das Verständnis der grundlegenden Prozess der Entwicklung Verfahren auf der Grundlage der Einführung von mehreren CC2430 Entwicklung der grundlegenden Experimente mit Timern, serielle Kommunikation, AD-Wandlung, System-Sleep-und Watchdog , etc. werden, so bleiben Sie dran!






Previous :[Referred] Zigbee Reise (I): der Anfang der Welt
Next :[Bericht]Zigbee Journey (III): Ein paar wichtige CC2430-Grundversuche - externe Interrupts
Der Code Bauer Netzwerk, nur in den Prozess der Praxis veröffentlicht, stieß auf technische Schwierigkeiten, nicht in die Irre führen andere.
Sie müssen sich anmelden, bevor Sie zurückschreiben können Anmelden | Registrieren

D iese Version der integralen Regeln


HAFTUNGSAUSSCHLUSS: Alle Software, Programmiermaterialien oder Artikel, die von Code Farmer veröffentlicht werden, dürfen nur zu Lern- und Forschungszwecken verwendet werden; die oben genannten Inhalte dürfen nicht zu kommerziellen oder illegalen Zwecken verwendet werden, andernfalls müssen alle Konsequenzen von den Benutzern selbst getragen werden. Diese Seite informiert aus dem Netz, Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Herunterladen vollständig von Ihrem Computer entfernen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte die echte Software, kaufen Sie die Registrierung und erhalten Sie einen besseren echten Service. Wenn es irgendeine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail, um damit umzugehen.

E-Mail To:help@itsvse.com

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

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

SchnellantwortZurück zum AnfangZurück zur Liste