Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 9158|Répondre: 0

Zigbee Journey (2) : Le premier programme CC2430 - expérience de clignotement de lumière LED

[Copié le lien]
Publié sur 30/10/2014 23:15:39 | | | |
1. Reliant les niveaux supérieur et inférieur

     Dans l’article précédentVoyage Zigbee (1) : Ouvrir les terres, nous présentons brièvement Zigbee et son environnement de développement. D’accord, maintenant que les outils sont complets, une question se pose : comment utiliser ces logiciels et matériels pour écrire un programme capable de s’exécuter ?

     Cet article vise essentiellement à répondre aux questions ci-dessus : Prenons l’exemple de la petite expérience du « clignotement de la lumière LED » pour expliquer comment configurer l’IAR adapté au développement de programmes basés sur CC2430, et comment l’utiliserIARÉcrire et déboguer des programmes en ligne.

2. Configuration IAR

     IAR est une puissante plateforme de développement embarquée qui prend en charge une grande variété de puces. Chaque projet dans IAR peut avoir sa propre configuration, incluant le type de périphérique, la pile/pile, le lien, le déboguage, etc.

(1) Créer un nouvel espace de travail et un nouveau projet

     D’abord, créez un nouveau dossier ledtest. Ouvrez IAR et sélectionnez le menu principal Fichier -> Nouvel espace de travail -> pour créer un nouvel espace de travail.

     Sélectionnez Projet -> Créer un nouveau projet -> Projet vide, cliquez sur OK, et enregistrez le fichier projet dans le dossier ledtest, nommé ledtest.ewp (comme indiqué ci-dessous).

(2) Configurer les options générales

       Réglage cible : Appareil : CC2430 ;

                         Mode Code : Proche ;

                         Modèle de données : Gros ;

                         Appel de la convention : réetrant de la pile XDATA

     Réglage du pointeur de données : Nombre de DPTR : 1

     Réglage de la pile/tas : taille de la pile XDATA : 0x1FF

(3) Paramètres du liaison

     Fichier de commande du liaison : Sélectionnez lnk51ew_cc2430.xcl

(4) Paramètres du débogueur :

     Pilote : Texas Instruments (Cette expérience est un véritable débogage machine, donc choisissez TI ; Si d’autres programmes veulent utiliser le simulateur IAR, vous pouvez choisir Simulateur)
     Fichier Description de l’appareil : CC2430.ddf

      À ce stade, la configuration IAR pour cette expérience est pratiquement terminée, et ce qui suit est une introduction à son implémentation de codage.

3. Écrire du code de programme(1) Créer un nouveau document procédural

      Sélectionnez Fichier->Nouveau->Fichier et créez un nouveau fichier main.c.

(2) Introduire les fichiers d’en-tête

      Les programmes basés sur CC2430 doivent inclure une référence à ioCC2430.h, qui définit le mappage d’adresses des différents registres de fonctions spéciales (SFR) du CC2430.

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

      Ce fichier est intégré à l’IAR (similaire à stdio.h), survolez cette ligne de code, faites un clic droit, sélectionnezOPen « ioCC2430.h »pour voir le contenu complet de ce fichier d’en-tête.

(3) Définir les broches LED

     Consultez le schéma de circuit de la carte de développement comme suit :

     On peut voir que LED1~4 est contrôlé respectivement par des broches P1_0~P4_0, donc LED1, LED2, LED3 et LED4 peuvent être définies respectivement comme des broches P1_0, P2_0, P3_0 et P4_0.

#define LED1 P1_0 // Définissez LED1 comme le contrôle de port P1_0
#define LED2 P1_1 // Définissez LED2 comme P1_1 contrôle de port
#define LED3 P1_2 // Définissez LED3 comme P1_2 contrôle de port
#define LED4 P1_3 // Définissez LED4 comme P1_3 contrôle de port

(4) fonction principale

     Ensuite, commencez à écrire la fonction principale.

     Tout d’abord, avant d’utiliser le port P1.0~P1.4, il est nécessaire de définir son mode de fonctionnement et sa direction d’entrée/sortie, ce qui implique deux SFR : P1SEL et P1DIR.

  P1SEL = 0x00 ;          Réglez P1 sur le port d’E/S normal
  P1DIR |= 0x0F ;          Réglez P1.0, P1.1, P1.2, P1.3 comme sortie

Conseils Zigbee
Le CC2430 possède :P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Un total de 21 ports d’E/S. Ils peuvent être utilisés comme entrées/sorties numériques polyvalentes ou pour connecter des sorties périphériques telles que les ADC, les compteurs de timing/counters ou les USART.
Il existe trois classes de registres dans le SFR du CC2430 qui peuvent être utilisées pour configurer ces ports d’E/S :
(1)PxSEL(x est 0/1/2) :P sélection de la fonction de port 0/P1/P2
                                0 : E///.
(2)PxDIR(x est 0/1/2) :P direction du port 0/P1/P2
                                0 : entrée, 1 : sortie, le défaut est 0
(3)PxINP(x est 0/1) :P mode d’entrée port 0/P1
                                0 : Tirer vers le haut/tirer vers le bas, 1 : Trois états, le défaut est 0
Il doit être configuré lors de l’utilisation du port d’E/S, et si c’est par défaut, la valeur par défaut du système est prise.

     Ensuite, initialisez les 4 LED et réglez-les pour qu’elles s’éteignent toutes :

  menait1 = 1 ;   
  mené2 = 1 ;
  mené3 = 1 ;
  menait4 = 1 ;

     Enfin, écrivez le code de l’effet de clignotement de la LED :

    mené1 = 0 ;  Clignotements LED1
    Delay (10) ;
    menait1 = 1 ;
    Delay (10) ;
   
    mené2 = 0 ;  LED 2 clignote
    Delay (10) ;
    mené2 = 1 ;
    Delay (10) ;
   
    mené3 = 0 ;  Clignotement LED3
    Delay (10) ;
    mené3 = 1 ;
    Delay (10) ;
   
    menait4 = 0 ;  Clignotement LED4
    Delay (10) ;
    menait4 = 1 ;
    Delay (10) ;


     Il implique une sous-fonction de délai Delay (caractère non signé n) :

Délai void (personnage non signé)  {
  Char I non signé ;
  int non signé j ;
  pour (i = 0 ; Je < n ; i++)
    pour (j = 1 ; j; j++)
    ;
}   


(5) Aperçu du code

      Combinez le code ci-dessus en un seul tout, comme suit :

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

//定义LED引脚
#define menait P1_0         //定义LED1为P1_0口控制
#define P1_1         //定义LED2为P1_1口控制
#define a mené 3 P1_2         //定义LED3为P1_2口控制
#define P1_3 mené         //定义LED4为P1_3口控制 //延时子程序
videDélai (non signé Charn)  {
  non signé CharJe;
  non signé intj;
  pour(i =0; Je < n ; i++)
    pour(j =1; j; j++)
    ;
}

videmain(vide)
{
  P1SEL =0x00;         Réglez P1 sur le port d’E/S normal
  P1DIR |=0x0F;         Réglez P1.0, P1.1, P1.2, P1.3 comme sortie
  
  mené1 =1;   //初始化,4个led灯全熄
  mené2 =1;
  mené3 =1;
  mené4 =1;
  
  tandis que(1)     //开始循环
  {
    mené1 =0;  //led1闪烁
    Délai (10);
    mené1 =1;
    Délai (10);
   
    mené2 =0;  //led2闪烁
    Délai (10);
    mené2 =1;
    Délai (10);
   
    mené3 =0;  //led3闪烁
    Délai (10);
    mené3 =1;
    Délai (10);
   
    mené4 =0;  //led4闪烁
    Délai (10);
    mené4 =1;
    Délai (10);
  }
}

     OK, le code de cette petite expérience a été écrit, n’est-ce pas très simple, hehe~

4. Compilation et débogage

     Sélectionnez Projet -> Créer, compiler le code, et si c’est réussi, la sortie suivante apparaîtra :

     PresseInterface USB → Zigbee Development Board → Debugger pour PCpuis sélectionnez Project -> Débogage, et le programme sera automatiquement téléchargé sur la carte.

     Ensuite, sélectionnez Débogue -> Démarrez le programme, et vous verrez 4 LED clignoter à tour de rôle ! Bien que ce soit une petite expérience trop simple pour l’être, quand l’auteur l’a réalisée avec succès, j’étais quand même un peu excité~ hehe !

5. Conclusion

     Basé sur l'« expérience de clignotement à LED », cet article présente tout le processus d’implémentation, depuis la configuration de l’IAR, l’écriture du code de programme, jusqu’au processus de compilation et de débogage. Dans le prochain article, en nous appuyant sur la compréhension du processus de base de développement du programme, nous présenterons plusieurs expériences fondamentales pour le développement de CC2430MinuterieCommunication en sérieAD ConversionSommeil systématique ainsi que surveillanceetc., alors restez à l’écoute !






Précédent:Voyage Zigbee (1) : Ouvrir la voie
Prochain:Zigbee Journey (3) : Plusieurs expériences fondamentales importantes de CC2430 - interruption externe
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com