Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 9158|Відповідь: 0

Zigbee Journey (2): Перша програма CC2430 — експеримент з миготливістю світлодіодного світла

[Копіювати посилання]
Опубліковано 30.10.2014 23:15:39 | | | |
1. З'єднання верхнього та нижнього рівнів

     У попередній статтіПодорож Зігбі (1): Прокладання основ, ми коротко представляємо Zigbee та його середовище розробки. Добре, тепер, коли інструменти готові, виникає питання: як використати це програмне та апаратне забезпечення для написання програми, яка може працювати?

     Ця стаття в основному має на меті відповісти на вищезазначені питання: візьмемо невеликий експеримент із «миготінню світлодіодного світла» як приклад, щоб показати, як налаштувати IAR для розробки програм на базі CC2430 і як його використовуватиIARПишіть і відлагоджуйте програми онлайн.

2. Конфігурація IAR

     IAR — це потужна вбудована платформа розробки, яка підтримує широкий спектр чипів. Кожен проєкт в IAR може мати власну конфігурацію, включно з типом пристрою, стеком/стеком, лінкером, відлагоджником тощо.

(1) Створити новий робочий простір і проєкт

     Спочатку створіть нову папку для ledtest. Відкрийте IAR і виберіть головне меню File -> New -> Workspace, щоб створити новий робочий простір.

     Виберіть Project -> Create New Project -> Empty Project, натисніть OK і збережіть файл проєкту у папці ledtest під назвою ledtest.ewp (як показано нижче).

(2) Налаштувати загальні опції

       Налаштування цілі: Пристрій: CC2430;

                         Режим коду: Близько;

                         Модель даних: Велика;

                         Виклик конвенції:XDATA стек reetrant

     Налаштування вказівника даних: Кількість DPTR: 1

     Налаштування стеку/купи: розмір стека XDATA: 0x1FF

(3) Налаштування лінкера

     Командний файл linker: Виберіть lnk51ew_cc2430.xcl

(4) Налаштування налагоджувача:

     Драйвер: Texas Instruments (Цей експеримент — справжня машинна налагодження, тож обирайте TI; Якщо інші програми хочуть використовувати симулятор IAR, ви можете обрати Simulator)
     Опис пристрою: CC2430.ddf

      На цьому етапі конфігурація IAR для цього експерименту фактично завершена, і нижче наведено вступ до його реалізації кодування.

3. Написання програмного коду(1) Створити новий процесуальний документ

      Виберіть File->New->File і створіть новий файл main.c.

(2) Введення заголовкових файлів

      Програми на основі CC2430 повинні містити посилання на ioCC2430.h, який визначає відображення адрес різних спеціальних регістрів функцій (SFR) CC2430.

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

      Цей файл вбудований у IAR (подібно до stdio.h), наведіть курсор на цей рядок коду, клацніть правою кнопкою миші, виберітьOPen "ioCC2430.h"щоб побачити повний вміст цього заголовкового файлу.

(3) Визначити світлодіодні контакти

     Перегляньте схему схеми плати розробки наступним чином:

     Видно, що 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 // Визначте LED2 як P1_1 керування портом
#define LED3 P1_2 // Визначте LED3 як P1_2 керування портом
#define LED4 P1_3 // Визначте LED4 як P1_3 керування портом

(4) основна функція

     Далі починайте писати основну функцію.

     Перш за все, перед використанням порту P1.0~P1.4 необхідно встановити його робочий режим і напрямок введення/виведення, що включає два SFR: P1SEL і P1DIR.

  P1SEL = 0x00;          Встановіть P1 на звичайний порт введення/виведення
  P1DIR |= 0x0F;          Встановіть P1.0, P1.1, P1.2, P1.3 як вихід

Поради Zigbee
CC2430 має:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Всього 21 порт введення/виведення. Вони можуть використовуватися як універсальні цифрові ввод-операції або для підключення периферійних IO, таких як АЦП, таймінг/лічильники або USART.
У SFR CC2430 існує три класи регістрів, які можна використовувати для налаштування цих портів введення:
(1)PxSEL(x — 0/1/2) :P вибір функції порту 0/P1/P2
                                0: Універсальний числовий IO, 1: периферійний IO, за замовчуванням 0
(2)PxDIR(x — 0/1/2) :P напрямку порту 0/P1/P2
                                0: вхід, 1: вихід, за замовчуванням 0
(3)PxINP(x — 0/1) :P вхідний режим порту 0/P1
                                0: Підняти вгору/потягнути вниз, 1: Три стани, за замовчуванням 0
Його потрібно налаштовувати при використанні порту виходу, і якщо це за замовчуванням, то забирається значення системи за замовчуванням.

     Потім ініціалізуйте 4 світлодіоди і встановіть їх у режим гасіння:

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

     Нарешті, запишіть код ефекту миготіння світлодіодного світла:

    led1 = 0;  LED1 спалахує
    Затримка (10);
    led1 = 1;
    Затримка (10);
   
    led2 = 0;  Спалахи LED2
    Затримка (10);
    led2 = 1;
    Затримка (10);
   
    led3 = 0;  Миготіння LED3
    Затримка (10);
    led3 = 1;
    Затримка (10);
   
    led4 = 0;  Миготіння LED4
    Затримка (10);
    led4 = 1;
    Затримка (10);


     Вона включає підфункцію затримки Delay(unsigned char n):

void Delay(непідписаний символ n)  {
  Непідписаний Чар I;
  непідписаний int j;
  for(i = 0; I < n; i++)
    for(j = 1; j; j++)
    ;
}   


(5) Огляд коду

      Об'єднаємо наведений вище код в єдине ціле, наступним чином:

//引入头文件
#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口控制 //延时子程序
ПорожнечаЗатримка(Без підпису charn)  {
  Без підпису chari;
  Без підпису intj;
  для(i =0; I < n; i++)
    для(j =1; j; j++)
    ;
}

ПорожнечаГоловна(Порожнеча)
{
  P1SEL =0x00;         Встановіть P1 на звичайний порт введення/виведення
  P1DIR |=0x0F;         Встановіть P1.0, P1.1, P1.2, P1.3 як вихід
  
  led1 =1;   //初始化,4个led灯全熄
  led2 =1;
  led3 =1;
  led4 =1;
  
  поки(1)     //开始循环
  {
    led1 =0;  //led1闪烁
    Затримка(10);
    led1 =1;
    Затримка(10);
   
    led2 =0;  //led2闪烁
    Затримка(10);
    led2 =1;
    Затримка(10);
   
    led3 =0;  //led3闪烁
    Затримка(10);
    led3 =1;
    Затримка(10);
   
    led4 =0;  //led4闪烁
    Затримка(10);
    led4 =1;
    Затримка(10);
  }
}

     Добре, код для цього невеликого експерименту написано, хіба він не дуже простий, хехе~

4. Компіляція та налагодження

     Виберіть Project -> Make, скомпілюйте код, і якщо успішно, з'явиться наступний результат:

     ПресаZigbee Development Board → Debugger → USB-інтерфейс для ПКа потім виберіть Project -> Debug, і програма буде автоматично завантажена на дошку.

     Потім виберіть Debug -> Запусти програму, і ви побачите по черзі 4 світлодіодні індикатори! Хоч це й невеликий експеримент, надто простий, щоб бути простим, коли автор успішно це реалізував, я все одно був трохи схвильований~ хе-хе!

5. Висновок

     На основі «експерименту з миготливим світлодіодом» ця стаття охоплює весь процес реалізації — від конфігурації IAR, написання програмного коду, а також процесу компіляції та налагодження. У наступній статті, на основі розуміння базового процесу розробки програми, ми представимо кілька базових експериментів для розробки CC2430ТаймерПослідовна комунікаціяКонверсія ADСистематичний сон і сторожові собакиі так далі, тож залишайтеся з нами!






Попередній:Подорож Зігбі (1): Прокладання ґрунту
Наступний:Zigbee Journey (3): Кілька важливих базових експериментів CC2430 — зовнішнє переривання
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com