Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 9158|Antwort: 0

Zigbee Journey (2): Das erste CC2430-Programm – LED-Lichtblitzexperiment

[Link kopieren]
Veröffentlicht am 30.10.2014 23:15:39 | | | |
1. Verbindung der oberen und unteren Ebenen

     Im vorherigen ArtikelZigbee-Reise (1): Die Eroberung, stellen wir kurz Zigbee und seine Entwicklungsumgebung vor. Okay, jetzt, da die Werkzeuge fertig sind, stellt sich die Frage: Wie kann man diese Software und Hardware nutzen, um ein Programm zu schreiben, das ausgeführt werden kann?

     Dieser Artikel dient im Wesentlichen dazu, die oben genannten Fragen zu beantworten: Nehmen wir das kleine Experiment des "LED-Lichtblinkens" als Beispiel, um zu zeigen, wie man IAR so konfiguriert, dass es für die Entwicklung von CC2430-basierten Programmen geeignet ist, und wie man es verwendetIARProgramme online schreiben und debuggen.

2. IAR-Konfiguration

     IAR ist eine leistungsstarke Embedded-Entwicklungsplattform, die eine Vielzahl von Chips unterstützt. Jedes Projekt in IAR kann seine eigene Konfiguration haben, einschließlich Gerätetyp, Stack/Stack, Linker, Debugger usw.

(1) Einen neuen Arbeitsbereich und ein neues Projekt erstellen

     Zuerst erstelle einen neuen Ordner-LEDTEST. Öffnen Sie IAR und wählen Sie das Hauptmenü Datei -> Neuer -> Arbeitsbereich, um einen neuen Arbeitsbereich zu erstellen.

     Wählen Sie Projekt -> Neues Projekt erstellen -> Projekt leeren, klicken Sie auf OK und speichern Sie die Projektdatei im Ordner ledtest namens ledtest.ewp (wie unten gezeigt).

(2) Allgemeine Optionen konfigurieren

       Zieleinstellung: Gerät: CC2430;

                         Code-Modus: Nah;

                         Datenmodell: Groß;

                         Aufrufkonvention:XDATA-Stack-reetrant

     Datenzeiger-Einstellung: Anzahl der DPTRs: 1

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

(3) Linker-Einstellungen

     Linker-Befehlsdatei: Wählen Sie lnk51ew_cc2430.xcl

(4) Debugger-Einstellungen:

     Treiber: Texas Instruments (Dieses Experiment ist ein echtes Maschinen-Debugging, also wähle TI; Wenn andere Programme den IAR-Simulator verwenden möchten, kannst du Simulator wählen)
     Gerätebeschreibungsdatei: CC2430.ddf

      An diesem Punkt ist die IAR-Konfiguration für dieses Experiment im Grunde abgeschlossen, und das Folgende ist eine Einführung in die Codierungsimplementierung.

3. Programmcode schreiben(1) Erstellung eines neuen Verfahrensdokuments

      Wählen Sie Datei->New->File und erstellen Sie eine neue Datei main.c.

(2) Einführung von Headerdateien

      Programme auf Basis von CC2430 müssen eine Referenz auf ioCC2430.h enthalten, die die Adresszuordnung der verschiedenen speziellen Funktionsregister (SFRs) des CC2430 definiert.

#include         //引入CC2430所对应的头文件(包含各SFR的定义)

      Diese Datei ist in IAR integriert (ähnlich wie stdio.h), mit der Maus über diese Codezeile, Rechtsklick, AuswahlOPen "ioCC2430.h"um den vollständigen Inhalt dieser Header-Datei zu sehen.

(3) Definiere die LED-Pins

     Sehen Sie sich das Entwicklungsplatinen-Schaltplan wie folgt an:

     Man sieht, dass LED1~4 jeweils von Pins P1_0~P4_0 gesteuert wird, sodass LED1, LED2, LED3 und LED4 als Pins P1_0, P2_0, P3_0 und P4_0 definiert werden können.

#define LED1 P1_0 // Definieren Sie LED1 als P1_0 Portsteuerung
#define LED2 P1_1 // Definieren Sie LED2 als P1_1 Portsteuerung
#define LED3 P1_2 // Definieren Sie LED3 als P1_2 Portsteuerung
#define LED4 P1_3 // LED4 als P1_3 Portsteuerung definieren

(4) Hauptfunktion

     Als Nächstes beginnen Sie mit dem Schreiben der Hauptfunktion.

     Zunächst muss man vor der Nutzung des P1.0~P1.4-Port den Arbeitsmodus und die Ein-/Ausgaberichtung einstellen, was zwei SFRs umfasst: P1SEL und P1DIR.

  P1SEL = 0x00;          Stelle P1 auf den normalen I/O-Port ein
  P1DIR |= 0x0F;          Setze P1.0, P1.1, P1.2, P1.3 als Ausgabe

Zigbee-Tipps
Der CC2430 hat:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Insgesamt 21 I/O-Ports. Sie können als universelle digitale I/O verwendet werden oder zum Anschluss von Peripherie-IOs wie ADCs, Timing/Counters oder USARTs eingesetzt werden.
Im SFR des CC2430 gibt es drei Registerklassen, mit denen diese IO-Ports konfiguriert werden können:
(1)PxSEL(x ist 0/1/2) :P 0/P1/P2-Portfunktionsauswahl
                                0: Universelle numerische IO, 1: Periphere IO, standardmäßig ist 0
(2)PxDIR(x ist 0/1/2) :P 0/P1/P2 Portrichtung
                                0: Eingang, 1: Ausgabe, standardmäßig ist 0
(3)PxINP(x ist 0/1) :P 0/P1-Port-Eingangsmodus
                                0: Ziehen nach oben/nach unten, 1: Drei Zustände, standardmäßig ist 0
Er muss konfiguriert werden, wenn der IO-Port verwendet wird, und wenn er Standard ist, wird der Standardwert des Systems übernommen.

     Dann initialisieren Sie die 4 LEDs und stellen Sie sie alle aus:

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

     Schreiben Sie schließlich den LED-Lichtblitzeffekt-Code:

    led1 = 0;  LED1 blinkt
    Verzögerung(10);
    led1 = 1;
    Verzögerung(10);
   
    led2 = 0;  LED2 blinkt
    Verzögerung(10);
    led2 = 1;
    Verzögerung(10);
   
    led3 = 0;  LED3-Blinken
    Verzögerung(10);
    led3 = 1;
    Verzögerung(10);
   
    led4 = 0;  LED4-Blinken
    Verzögerung(10);
    led4 = 1;
    Verzögerung(10);


     Sie beinhaltet eine Verzögerungssubfunktion Delay (unsigned char n):

Void Verzögerung (unsigniertes Zeichen n)  {
  unsignierte Char I;
  unsignierte Int J;
  for(i = 0; Ich < n; i++)
    for(j = 1; j; j++)
    ;
}   


(5) Codeübersicht

      Kombinieren Sie den obigen Code zu einem einzigen Ganzen wie folgt:

//引入头文件
#include         //引入CC2430所对应的头文件(包含各SFR的定义)

//定义LED引脚
#define led1 P1_0         //定义LED1为P1_0口控制
#define led2 P1_1         //定义LED2为P1_1口控制
#define led3 P1_2         //定义LED3为P1_2口控制
#define led4 P1_3         //定义LED4为P1_3口控制 //延时子程序
LeereVerzögerung(Unsigniert charn)  {
  Unsigniert charIch;
  Unsigniert Intj;
  für(i =0; Ich < n; i++)
    für(j =1; j; j++)
    ;
}

Leeremain(Leere)
{
  P1SEL =0x00;         Stelle P1 auf den normalen I/O-Port ein
  P1DIR |=0x0F;         Setze P1.0, P1.1, P1.2, P1.3 als Ausgabe
  
  led1 =1;   //初始化,4个led灯全熄
  led2 =1;
  led3 =1;
  led4 =1;
  
  während(1)     //开始循环
  {
    led1 =0;  //led1闪烁
    Verzögerung(10);
    led1 =1;
    Verzögerung(10);
   
    led2 =0;  //led2闪烁
    Verzögerung(10);
    led2 =1;
    Verzögerung(10);
   
    led3 =0;  //led3闪烁
    Verzögerung(10);
    led3 =1;
    Verzögerung(10);
   
    led4 =0;  //led4闪烁
    Verzögerung(10);
    led4 =1;
    Verzögerung(10);
  }
}

     Okay, der Code für dieses kleine Experiment ist geschrieben, ist das nicht sehr einfach, hehe~

4. Kompilierung und Debugging

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

     PresseZigbee Development Board → Debugger → USB-Schnittstelle für PCund wähle dann Projekt -> Debug aus, und das Programm wird automatisch auf das Board heruntergeladen.

     Wählen Sie dann Debug > Gehen Sie zum Start des Programms, und Sie sehen nacheinander vier LED-Lichter blinken! Obwohl das ein kleines Experiment ist, das zu einfach ist, um einfach zu sein, war ich trotzdem ein wenig aufgeregt, als der Autor es erfolgreich umgesetzt hat~ hehe!

5. Fazit

     Basierend auf dem "LED-Lichtblitzexperiment" stellt dieses Papier den gesamten Implementierungsprozess vor, von der Konfiguration von IAR über das Schreiben von Programmcode bis hin zum Prozess der Kompilierung und Debugging. Im nächsten Artikel, basierend auf dem Verständnis des grundlegenden Entwicklungsprozesses des Programms, stellen wir mehrere grundlegende Experimente für die Entwicklung von CC2430 vor.TimerSerielle KommunikationAD-UmstellungSystematischer Schlaf sowie WachhundeUnd so weiter, also bleibt dran!






Vorhergehend:Zigbee-Reise (1): Den ersten Boden brechen
Nächster:Zigbee-Reise (3): Mehrere wichtige CC2430-Grundexperimente – externe Unterbrechung
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com