架构师_程序员_码农网

Имя пользователя Получить пароль
Регистрация

QQ登录

Всего один шаг, чтобы начать

Поиск
架构师_程序员_码农网 "架构师 ' 管理专区&Management Area ' Complaints and Suggestions ' 回收站 ' 【转】Zigbee之旅(二):第一个CC2430程序-- . -Светодиоды мигают ...
Просмотр:6245|Ответ: 0
打印 上一主题 下一主题

Путешествие по Zigbee (II): первая программа CC2430 - эксперимент с миганием светодиодов

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

В предыдущей статье "Путешествие по Zigbee (I): начало" мы кратко познакомились с Zigbee и средой разработки. Теперь, когда инструменты готовы, возникает вопрос: как использовать программное и аппаратное обеспечение для написания программы, которую можно запустить?

Эта статья, по сути, и призвана ответить на поставленный вопрос: на примере небольшого эксперимента "Мигание светодиода", как настроить IAR для разработки программ на базе CC2430, как использовать IAR для написания и отладки программы в режиме онлайн.

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

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

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

Прежде всего, создайте новую папку ledtest, откройте IAR, выберите главное меню File -> New -> Workspace для создания нового рабочего пространства.

Выберите Project -> Create New Project -> Empty Project, нажмите OK и сохраните файл проекта в папке ledtest с именем: ledtest.ewp (как показано ниже).

(2) Настройка общих параметров

Настройка цели: Устройство: CC2430;

Режим кодирования: Ближний;

Модель данных: Large;

Соглашение о вызове: Стек XDATA ритрант

Установка указателя данных: Количество DPTR: 1

Параметры стека/груза: XDATA Размер стека: 0x1FF

(3) Настройки линкера

Командный файл линкера: select 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

//define led2 as P1_1 port control #define led3 P1_2 //define led3 as P1_2 port control #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
 0: вверх, 1: выход, по умолчанию 0 nbsp;0: подтягивание/опускание, 1: трехпозиционное состояние, по умолчанию 0
Конфигурация требуется при использовании порта IO, если по умолчанию, то возьмите системное значение по умолчанию.

Затем инициализируйте 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 мигает &


nbsp; 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 //определите LED2 для управления портом P1_1
#define led3 P1_2 //определите LED3 как управление портом 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 ) //start cycle
{
led1 = 0; //led1 мигает
Задержка (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 ); //Delay (10 )
}
}

Хорошо, код для этого небольшого эксперимента написан, не очень простой а, хехе~!

В-четвертых, компиляция и отладка

Выберите Project -> Make, скомпилируйте код, в случае успеха появится следующий вывод:

2011021320413789.jpg
c

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

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

V. Заключение

В этой статье, "светодиодный мигающий свет эксперимент" в качестве основы, соответственно, от конфигурации IAR, подготовка программного кода, а также компиляции и отладки процесса вводит весь процесс реализации. Следующая статья будет посвящена пониманию базового процесса разработки процедур, основанных на внедрении нескольких CC2430 разработки базовых экспериментов с участием таймеров, последовательных коммуникаций, AD преобразования, системного сна и сторожевого таймера и т.д., так что следите за новостями!






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

Эта версия интегральных правил


DISCLAIMER: Все программное обеспечение, материалы по программированию или статьи, опубликованные Code Farmer, предназначены только для использования в учебных и исследовательских целях; вышеуказанное содержимое не должно использоваться в коммерческих или незаконных целях, в противном случае все последствия будут возложены на самих пользователей. Это сайт информации из сети, спор об авторских правах не имеет никакого отношения к этому сайту. Вы должны полностью удалить вышеуказанное содержимое со своего компьютера в течение 24 часов после загрузки. Если вам понравилась программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшее подлинное обслуживание. Если есть какие-либо нарушения, пожалуйста, свяжитесь с нами по электронной почте, чтобы разобраться с этим.

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

QQ| ( 鲁ICP备14021824号-2)|Sitemap

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

Быстрый ответНазад к началуНазад к списку