Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 9158|Atbildi: 0

Zigbee Journey (2): Pirmā CC2430 programma - LED gaismas mirgojošs eksperiments

[Kopēt saiti]
Publicēts 30.10.2014 23:15:39 | | | |
1. Augšējā un apakšējā līmeņa savienošana

     Iepriekšējā rakstāZigbee ceļojums (1): Breaking the Grounds, mēs īsumā iepazīstinām ar Zigbee un tā attīstības vidi. Labi, tagad, kad rīki ir pabeigti, rodas jautājums: kā izmantot šo programmatūru un aparatūru, lai uzrakstītu programmu, kas var darboties?

     Šis raksts būtībā ir atbildēt uz iepriekš minētajiem jautājumiem: Ņemiet nelielu eksperimentu "LED gaismas mirgošana" kā piemēru, lai iepazīstinātu ar to, kā konfigurēt IAR, lai tas būtu piemērots CC2430 balstītu programmu izstrādei, un kā to izmantotIARRakstiet un atkļūdojiet programmas tiešsaistē.

2. IAR konfigurācija

     IAR ir jaudīga iegulta izstrādes platforma, kas atbalsta visdažādākās mikroshēmas. Katram IAR projektam var būt sava konfigurācija, ieskaitot ierīces tipu, steku/kaudzi, saistītāju, atkļūdotāju utt.

(1) Izveidojiet jaunu darbvietu un projektu

     Vispirms izveidojiet jaunu mapi ledtest. Atveriet IAR un atlasiet galveno izvēlni File -> New -> Workspace, lai izveidotu jaunu darbvietu.

     Atlasiet Projekts -> Izveidot jaunu projektu > Iztukšot projektu, noklikšķiniet uz Labi un saglabājiet projekta failu mapē ledtest, ar nosaukumu ledtest.ewp (kā parādīts zemāk).

(2) Vispārīgo opciju konfigurēšana

       Mērķa iestatījums: Ierīce: CC2430;

                         Koda režīms: Tuvu;

                         Datu modelis: Liels;

                         Izsaukšanas konvencija:XDATA steka reetrant

     Datu rādītāja iestatījums: DPTR skaits: 1

     Stack/Heap iestatījums: XDATA steka izmērs: 0x1FF

(3) Saistītāja iestatījumi

     Linker komandu fails: atlasiet lnk51ew_cc2430.xcl

(4) Atkļūdotāja iestatījumi:

     Vadītājs: Texas Instruments (Šis eksperiments ir īsta mašīnas atkļūdošana, tāpēc izvēlieties TI; Ja citas programmas vēlas izmantot IAR simulatoru, varat izvēlēties Simulators)
     Ierīces apraksta fails:CC2430.ddf

      Šajā brīdī šī eksperimenta IAR konfigurācija būtībā ir beigusies, un tālāk ir sniegts ievads tā kodēšanas ieviešanā.

3. Programmas koda rakstīšana1) Jauna procesuālā dokumenta izveide

      Atlasiet File->New->File un izveidojiet jaunu failu main.c.

(2) Ievadiet galvenes failus

      CC2430 programmās jāiekļauj atsauce uz ioCC2430.h, kas definē CC2430 dažādu īpašo funkciju reģistru (SFR) adrešu kartēšanu.

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

      Šis fails ir iebūvēts IAR (līdzīgs stdio.h), novietojiet kursoru virs šīs koda rindas, ar peles labo pogu noklikšķiniet, atlasietOPen "ioCC2430.h", lai skatītu pilnu šī galvenes faila saturu.

(3) Definējiet LED tapas

     Skatiet izstrādes plates shēmas shēmu šādi:

     Var redzēt, ka LED1 ~ 4 kontrolē attiecīgi P1_0 ~ P4_0 tapas, tāpēc LED1, LED2, LED3 un LED4 var definēt attiecīgi kā tapas P1_0, P2_0, P3_0 un P4_0.

#define LED1 P1_0 // Definējiet LED1 kā P1_0 porta vadību
#define LED2 P1_1 // Definējiet LED2 kā P1_1 porta vadību
#define LED3 P1_2 // Definējiet LED3 kā P1_2 porta vadību
#define LED4 P1_3 // Definējiet LED4 kā P1_3 porta vadību

(4) Galvenā funkcija

     Pēc tam sāciet rakstīt galveno funkciju.

     Pirmkārt, pirms P1.0 ~ P1.4 porta izmantošanas ir nepieciešams iestatīt tā darba režīmu un ieejas/izejas virzienu, kas ietver divus SFR: P1SEL un P1DIR.

  P1SEL = 0x00;          Iestatiet P1 uz parasto I/O portu
  P1DIR |= 0x0F;          Iestatiet P1.0, P1.1, P1.2, P1.3 kā izeju

Zigbee padomi
CC2430 ir:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Kopā 21 I/O ports. Tos var izmantot kā universālus digitālos I/O vai izmantot, lai savienotu perifērijas IO, piemēram, ADC, laika skaitītājus vai USART.
CC2430 SFR ir trīs reģistru klases, kuras var izmantot, lai konfigurētu šos IO portus:
(1)PxSEL(x ir 0/1/2) :P 0/P1/P2 pieslēgvietas funkcijas izvēle
                                0: universāls ciparu IO, 1: perifērais IO, noklusējums ir 0
(2)PxDIR(x ir 0/1/2) :P 0/P1/P2 porta virziens
                                0: ievade, 1: izeja, noklusējums ir 0
(3)PxINP(x ir 0/1) :P 0/P1 pieslēgvietas ievades režīms
                                0: pavelciet uz augšu/velciet uz leju, 1: trīs stāvokļi, noklusējums ir 0
Tas ir jākonfigurē, izmantojot IO portu, un, ja tas ir noklusējums, tiek ņemta sistēmas noklusējuma vērtība.

     Pēc tam inicializējiet 4 gaismas diodes un iestatiet tās visas nodzēst:

  LED1 = 1;   
  LED2 = 1;
  led3 = 1;
  LED4 = 1;

     Visbeidzot, uzrakstiet LED gaismas mirgojošā efekta kodu:

    LED1 = 0;  LED1 mirgo
    Kavēšanās [10];
    LED1 = 1;
    Kavēšanās [10];
   
    LED2 = 0;  LED2 mirgo
    Kavēšanās [10];
    LED2 = 1;
    Kavēšanās [10];
   
    LED3 = 0;  LED3 mirgo
    Kavēšanās [10];
    led3 = 1;
    Kavēšanās [10];
   
    LED4 = 0;  LED4 mirgo
    Kavēšanās [10];
    LED4 = 1;
    Kavēšanās [10];


     Tas ietver aizkavēšanās apakšfunkciju Delay(unsigned char n):

void Delay(bez paraksta char n)  {
  neparakstīts Char I;
  neparakstīts int j;
  for(i = 0; i < n; i++)
    for(j = 1; j; j++)
    ;
}   


(5) Kodeksa pārskats

      Apvienojiet iepriekš minēto kodu vienā veselumā šādi:

//引入头文件
#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口控制 //延时子程序
TukšumsKavēšanās(bez paraksta oglesn)  {
  bez paraksta oglesi;
  bez paraksta intj;
  par(i =0; i < n; i++)
    par(j =1; j; j++)
    ;
}

Tukšumsgalvenais(Tukšums)
{
  P1SEL =0x00;         Iestatiet P1 uz parasto I/O portu
  P1DIR |=0x0F;         Iestatiet P1.0, P1.1, P1.2, P1.3 kā izeju
  
  led1 =1;   //初始化,4个led灯全熄
  led2 =1;
  led3 =1;
  led4 =1;
  
  kamēr(1)     //开始循环
  {
    led1 =0;  //led1闪烁
    Kavēšanās(10);
    led1 =1;
    Kavēšanās(10);
   
    led2 =0;  //led2闪烁
    Kavēšanās(10);
    led2 =1;
    Kavēšanās(10);
   
    led3 =0;  //led3闪烁
    Kavēšanās(10);
    led3 =1;
    Kavēšanās(10);
   
    led4 =0;  //led4闪烁
    Kavēšanās(10);
    led4 =1;
    Kavēšanās(10);
  }
}

     Labi, šī mazā eksperimenta kods ir uzrakstīts, vai tas nav ļoti vienkārši, hehe ~

4. Kompilācija un atkļūdošana

     Atlasiet Project -> Make, kompilējiet kodu un, ja tas ir veiksmīgs, parādīsies šāda izvade:

     PreseZigbee izstrādes plāksne → atkļūdotājs → USB interfeiss datoramun pēc tam atlasiet Project -> Debug, un programma tiks automātiski lejupielādēta panelī.

     Pēc tam atlasiet Debug -> Iet, lai sāktu programmu, un jūs redzēsiet 4 LED gaismas, kas mirgo pēc kārtas! Lai gan tas ir neliels eksperiments, kas ir pārāk vienkāršs, lai būtu vienkāršs, kad autors to veiksmīgi saprata, es joprojām biju nedaudz satraukts ~ hehe!

5. Secinājums

     Balstoties uz "LED gaismas mirgojošo eksperimentu", šis raksts iepazīstina ar visu ieviešanas procesu no IAR konfigurācijas, programmas koda rakstīšanas un kompilēšanas un atkļūdošanas procesa. Nākamajā rakstā, pamatojoties uz programmas izstrādes pamatprocesa izpratni, mēs iepazīstināsim ar vairākiem pamata eksperimentiem CC2430 izstrādeiTaimerisSērijveida saziņaAD konvertēšanaSistemātisks miegs, kā arī sargsuņiutt., tāpēc sekojiet līdzi!






Iepriekšējo:Zigbee ceļojums (1): Zemes laušana
Nākamo:Zigbee ceļojums (3): Vairāki svarīgi CC2430 pamata eksperimenti - ārējs pārtraukums
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com