|
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、Систематичний сон і сторожові собакиі так далі, тож залишайтеся з нами!
|