架构师_程序员_码农网

Ім'я користувача Отримати пароль
Зареєструватися

QQ登录

Лише один крок, щоб почати

Пошук
架构师_程序员_码农网 ' 架构师 ' 管理专区 & Область управління ' Скарги та пропозиції ' 回收站 ' 【转】Zigbee之旅(二):第一个CC2430程序-- . -Світлодіоди блимають ...
Перегляд:6245|Відповідь: 0
打印 上一主题 下一主题

Zigbee Journey (II): перша програма CC2430 - експеримент з миготінням світлодіодів

[Копіювати посилання]
Підніміться прямо до 跳转到指定楼层
власника будівлі
发表于 2014-10-30 23:15:39|只看该作者回帖奖励 | Зворотнийперегляд|Режим читання
I. Продовження з того місця, на якому ми зупинилися

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

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

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

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

(1) Нова робоча область і проект

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

Виберіть Проект -> Створити новий проект -> Порожній проект, натисніть ОК і збережіть файл проекту в папці ledtest з назвою: ledtest.ewp (як показано нижче).

(2) Налаштування загальних параметрів

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

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

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

Угода про виклик: стек XDATA reetrant

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

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

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

Командний файл лінкера: вибрати lnk51ew_cc2430.xcl

(4) Налаштування відладчика:


Драйвер: Texas Instruments (цей експеримент для налагодження реальної машини, тому вибирайте TI; якщо інші процедури, використовуйте емулятор IAR, за бажанням Simulator) Пристрій Файл опису: CC2430.ddf

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

По-третє, підготовка програмного коду(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; & nbsp; //Встановити P1.0 P1.1 P1.2 P1.3 як виходи

Поради щодо Zigbee
CC2430 має P0_0 ~ P0_7, P1_0~P1_7, P2_0~P2_7, загалом 21 порт вводу/виводу. Їх можна використовувати як універсальні цифрові входи/виходи або для підключення периферійних входів/виходів, таких як АЦП, таймер/лічильник або USART.
В SFR CC2430 є три типи регістрів, які можна використовувати для конфігурації цих портів вводу-виводу:
①PxSEL (x дорівнює 0/1/2): вибір функції порту P0/P1/P2
PxSEL (x дорівнює 0/1/2): вибір функції порту P0/P1/P2 nbsp;0: цифровий ввід/вивід загального призначення, 1: периферійний ввід/вивід, за замовчуванням - 0
PxDIR (x = 0/1/2): напрямок порту P0/P1/P2
& nbsp;0: вхід, 1: вихід, за замовчуванням 0
PxINP (x = 0/1): режим входу портів P0/P1
nbsp;0: вгору, 1: вниз, за замовчуванням за замовчуванням 0 nbsp;0: підтягування/опускання, 1: тристан, за замовчуванням - 0
Конфігурація потрібна при використанні порту вводу-виводу, якщо за замовчуванням, то прийміть значення за замовчуванням системи.

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




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

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






led1 = 0; //led1 блимає Delay(10); led1 = 1; Delay(10); led2




= 0; //led2 блимає Delay(10); led2 = 1; Delay(10); led3 = 0; //led3 блимає Delay(10); /





//led3 блимає Delay(10); led3 = 1; Delay(10); led4 = 0; //led4 блимає &


Delay(10); led4 = 1; Delay(10);


Для цього використовується підфункція затримки Delay(unsigned char n):





v oid Delay(unsigned char n) { unsigned char i; unsigned int j; for(i = 0; i < n; i++) &nbsp


; for(j = 1; j; j++) ; }

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

Об'єднайте вищенаведений код в єдине ціле, як показано нижче:

//Ввести заголовні файли
#include //вводимо заголовний файл, що відповідає CC2430 (включаючи визначення кожного SFR)

//Визначаємо виводи світлодіодів
#define led1 P1_0 //визначити світлодіод LED1 для керування портом P1_0
#define led2 P1_1 //визначити світлодіод 2 для керування портом P1_1
#define led3 P1_2 //визначити світлодіод 3 для керування портом P1_2
#define led4 P1_3 //визначити світлодіод LED4 для керування портом P1_3 //підпрограма затримки
void Delay (unsigned char n) {
unsigned char i.
unsigned int j.
for (i = 0; i < n; i++)
for (j = 1; j; j++)
;
}

void main (void )
{
P1SEL = 0x00; //Встановити P1 як звичайний порт вводу/виводу
P1DIR |= 0x0F; //Встановити P1.0 P1.1 P1.2 P1.3 як виходи

led1 = 1; //ініціалізація, усі 4 світлодіоди вимкнено
led2 = 1; //ініціалізуємо, усі 4 світлодіоди вимкнено
led3 = 1; led4 = 1; //ініціалізація, усі 4 світлодіоди вимкнено
led2 = 1; led3 = 1; led4 = 1; //ініціалізація, усі 4 світлодіоди вимкнено

while(1 ) //початок циклу
{
led1 = 0; //світлодіод led1 блимає
Delay (10 ); //Затримка (10 ); //Затримка (10 ); //Затримка (10 )
delay(10); led1 = 1; //led1 блимає
Delay (10 ).

led2 = 0; //led2 блимає
Delay (10 ); led2 = 1; //led2 блимає
led2 = 1; //led2 блимає
Delay (10 ).

led3 = 0; //led3 блимає
Delay (10 ); led3 = 1; //led3 блимає
led3 = 1; //led3 блимає
Delay (10 ).

led4 = 0; //світлодіод led4 блимає
Delay (10 ); led4 = 1; //led4 блимає
led4 = 1; //led4 блимає
Delay (10 ); //Затримка (10 )
}
}

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

По-четверте, компіляція та налагодження

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

2011021320413789.jpg
c

Підключіть Zigbee-пристрій в порядку: Zigbee-платформа → Налагоджувач → USB-порт ПК , а потім виберіть Проект -> Налагодження, програма буде завантажена на платформу автоматично.

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

V. Висновок

В даній роботі на прикладі "експерименту з миготінням світлодіодів", як основи, відповідно з конфігурації ІАР, підготовки програмного коду, а також процесу компіляції та налагодження, було представлено весь процес реалізації. Наступна стаття буде присвячена розумінню базового процесу розробки на основі впровадження декількох базових експериментів з CC2430, що включають таймери, послідовний зв'язок, перетворення АЦП, сплячий режим системи та сторожовий тай мер і т.д., тому слідкуйте за нашими новинами!






Пара: [Посилання] Подорож Zigbee (I): початок світу
Далі: [Звіт] Подорож Zigbee (III): кілька важливих базових експериментів CC2430 - зовнішні переривання
Код фермерської мережі, опублікований тільки в процесі практики, зіткнувся з технічними труднощами, не вводьте в оману інших.
Ви повинні увійти перед тим, як відповісти Увійдіть | Зареєструйтеся

Ця версія інтегральних правил Відповісти


ВІДМОВА ВІД ВІДПОВІДАЛЬНОСТІ: Все програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer, можуть використовуватися тільки в навчальних і дослідницьких цілях; вищевказаний вміст не повинен використовуватися в комерційних або незаконних цілях, в іншому випадку всі наслідки несуть самі користувачі. Інформація на цьому сайті взята з мережі, суперечки про авторські права не мають ніякого відношення до цього сайту. Ви повинні повністю видалити вищевказаний контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримайте справжнє програмне забезпечення, придбайте реєстрацію та отримайте кращий справжній сервіс. Якщо є якесь порушення, будь ласка, зв'яжіться з нами електронною поштою, щоб розібратися з ним.

Пошта To:help@itsvse.com

QQ | ( 鲁ICP备14021824号-2)|Мапа сайту

GMT+8, 2024-9-17 14:48

Швидка відповідьПовернутися до початкуПовернутися до списку