Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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;

                         Режим кода: Near;

                         Модель данных: Большая;

                         Вызов конвенции:XDATA stack 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: периферийный ввод, по умолчанию 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
    Delay(10);
    led1 = 1;
    Delay(10);
   
    led2 = 0;  Вспышки LED2
    Delay(10);
    led2 = 1;
    Delay(10);
   
    led3 = 0;  Мигание LED3
    Delay(10);
    led3 = 1;
    Delay(10);
   
    led4 = 0;  Мигание LED4
    Delay(10);
    led4 = 1;
    Delay(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口控制 //延时子程序
пустотаЗадержка(Без подписания Чарn)  {
  Без подписания Чаря;
  Без подписания 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Систематический сон и сторожевые собакии так далее, так что следите за новостями!






Предыдущий:Zigbee Journey (1): Прокладывая почву
Следующий:Zigbee Journey (3): Несколько важных базовых экспериментов CC2430 — внешнее прерывание
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com