Вопросы по программированию стенда SDK-2.0

Учебный лабораторный комплекс SDK-2.0 на базе микроконтроллера LPC2292 с ядром ARM7TDMI-S # CAN 2.0, RS-485, RS-232, Ethernet 10/100Base-TX, IEEE 802.15.4 (ZigBee)

Вопросы по программированию стенда SDK-2.0

Сообщение bmig » 19 май 2008, 08:32

думаю я буду выглядеть не очень хорошо, но да ладно.
следующий раз опишу ошибку (программирую н другом компе)
bmig
 
Сообщения: 10
Зарегистрирован: 15 май 2008, 10:42

Re: Утилиты для программирования стенда SDK-2.0

Сообщение kluchev » 19 май 2008, 13:20

bmig писал(а):думаю я буду выглядеть не очень хорошо, но да ладно.
следующий раз опишу ошибку (программирую н другом компе)

А чего тут такого? Этот сайт сделан специально в целях обучения.
В споре рождается коллективное заблуждение, а истиной мы его называем для краткости
Аватара пользователя
kluchev
 
Сообщения: 995
Зарегистрирован: 04 апр 2008, 13:31
Откуда: SPb

Re: Утилиты для программирования стенда SDK-2.0

Сообщение bmig » 25 май 2008, 10:43

как говорил.
но ошибку №1 - я определил и исправил (файл назывался по другому)
Вложения
1.JPG
1.JPG (113.99 Кб) Просмотров: 24414
bmig
 
Сообщения: 10
Зарегистрирован: 15 май 2008, 10:42

Re: Утилиты для программирования стенда SDK-2.0

Сообщение Shico » 25 май 2008, 14:25

bmig писал(а):как говорил.
но ошибку №1 - я определил и исправил (файл назывался по другому)

Так, собственно, остальные три ошибки это следствие первой. IO0DIR, IO0SET, IO0CLR - это названия регистров, описанных в файле LPC2292.h. Так как этого файла нет, то и регистры компилятор не находит. Если подключение файла LPC2292.h не помогло, то надо дальше разбираться, например посмотреть настройки проекта.
По крайней мере по приведенному скриншоту я могу сказать только это.
Вложения
lpc2292.rar
Прикладываю наш файл LPC2292.h
(2.77 Кб) Скачиваний: 416
"Раньше гусиными перьями писали вечные мысли, а теперь вечными перьями пишут гусиные мысли". В. Солоухин
Аватара пользователя
Shico
 
Сообщения: 301
Зарегистрирован: 06 апр 2008, 16:15
Откуда: Санкт-Петербург

Re: Утилиты для программирования стенда SDK-2.0

Сообщение bmig » 28 май 2008, 06:19

спасибо всё пошло,
но возник вопрос: почему блок светодиодов работает как 2 параллельных порта
исходник программы вот

#include <lpc2292.h>
int main (void)
{
unsigned long i;
IO2DIR |= 0xFF0000;
while (1)
{
IO2SET |= 0xF50000;
for (i=0; i < 5000000; i++ );
IO2CLR |= 0xF50000;
for (i=0; i < 5000000; i++ );
}
}
bmig
 
Сообщения: 10
Зарегистрирован: 15 май 2008, 10:42

Re: Утилиты для программирования стенда SDK-2.0

Сообщение Shico » 28 май 2008, 12:04

bmig писал(а):но возник вопрос: почему блок светодиодов работает как 2 параллельных порта

Просто линейка светодиодов спроектирована следующим образом (из-за нехватки "ножек" микроконтроллера):
Линейка из 8-ми светодиодов управляется 6-ю сигналами: 4 - линии "данных" и 2 линии выбора группы светодиодов (всего 2 группы по 4 светодиода). Т.о. линии выбора задают активную половину (верхнюю, нижнюю, или обе сразу) линейки светодиодов, а линии данных (4 сигнала) задают состояние выбранной группы светодиодов. Более подробно можно посмотреть на схеме стенда.
Чтобы управлять всеми 8 светодиодами нужно использовать принцип динамической индикации. Т.е. попеременно подсвечивать обе половинки линейки светодиодов (например с частотой 200-300 Гц.).
"Раньше гусиными перьями писали вечные мысли, а теперь вечными перьями пишут гусиные мысли". В. Солоухин
Аватара пользователя
Shico
 
Сообщения: 301
Зарегистрирован: 06 апр 2008, 16:15
Откуда: Санкт-Петербург

Re: Утилиты для программирования стенда SDK-2.0

Сообщение bmig » 03 июн 2008, 11:10

Спасибо сегодня попробую.

Да, на глаза попалась книга по программированию микроконтроллеров серии LPC2000
вот пример от туда о программировании ЖКИ, но он не идёт (название книги напишу по позже):
#include <lpc2292.h>

#include <stdio.h>

int main (void) {

PINSEL0 = 0x00050000;

U1LCR = 0x83;
U1DLL = 97;
U1LCR = 0x03;
printf ("Hello World\n");
while (1) {
;
}
}
bmig
 
Сообщения: 10
Зарегистрирован: 15 май 2008, 10:42

Re: Утилиты для программирования стенда SDK-2.0

Сообщение Shico » 03 июн 2008, 14:09

bmig писал(а):Да, на глаза попалась книга по программированию микроконтроллеров серии LPC2000
вот пример от туда о программировании ЖКИ, но он не идёт (название книги напишу по позже):...

Что значит "не идёт"? Если Вы ожидаете вывода строки на дисплей стенда, то на нем ничего и не должно отображаться. Потому что в примере инициализируется последовательный канал и делается попытка вывода в него строки ("Hello World").
Более подробно напишу позже.
"Раньше гусиными перьями писали вечные мысли, а теперь вечными перьями пишут гусиные мысли". В. Солоухин
Аватара пользователя
Shico
 
Сообщения: 301
Зарегистрирован: 06 апр 2008, 16:15
Откуда: Санкт-Петербург

Re: Утилиты для программирования стенда SDK-2.0

Сообщение AlexNickolaenkov » 03 июн 2008, 15:47

bmig, пользуйтесь, пожалуйста, для оформления кода специальными тэгами. Читать его без форматирования — сил нет (особенно если его много). Если что кнопка для оформления кода находится пятой слева в тулбаре над окном для редактирования сообщения (между кнопками Quote и List).
Аватара пользователя
AlexNickolaenkov
 
Сообщения: 435
Зарегистрирован: 02 май 2008, 21:40
Откуда: Санкт-Петербург

Re: Утилиты для программирования стенда SDK-2.0

Сообщение Shico » 04 июн 2008, 01:39

bmig писал(а):Да, на глаза попалась книга по программированию микроконтроллеров серии LPC2000
вот пример от туда о программировании ЖКИ, но он не идёт (название книги напишу по позже):...

Чтобы эта программа заработала она должна немного измениться:
Код: Выделить всё
#include <lpc2292.h>
#include <stdio.h>

/*-----------------------------------------------------------------------------
Запись символа в последовательный канал
-----------------------------------------------------------------------------*/
int putchar( int c )
{
    while ( ! ( U0LSR & 0x20 ) );
    U0THR = c;
    return c;
}

/*-----------------------------------------------------------------------------
Функция Main
-----------------------------------------------------------------------------*/
int main (void) 
{
    // Инициализация портов ввода-вывода микроконтроллера
    PINSEL0 = 0x00000005;

    // Инициализация UART 0 на скорости 9600 бод
    U0LCR   = 0x83;
    U0DLL   = 78;         // X = Fosc / (16 * 9600)   
    U0LCR   = 0x03;       // DLAB = 0

    printf( "Hello World\n" );

    while ( 1 );
}                               

1. Здесь используется последовательный канал 0. То есть тот, через который Вы программируете стенд.
2. Скорость установливается на 9600 бод. Хотя легко может быть другой, если рассчитать нужный коэффициент:
Код: Выделить всё
    U0DLL   = 78;           // X = Fosc / (16 * 9600)   

3. Чтобы заработала функция printf() нужно переопределить функцию putchar(), которая в ней используется.
4. Увидеть результат работы программы можно в любой терминальной программе (например m3p, t167b, HyperTerminal), настроенной на скорость 9600 бод. Строка "Hello World" выводится 1 раз, сразу после включения стенда.

Полный проект для Keil'а выложен в теме "Примеры программ для стенда SDK-2.0".
"Раньше гусиными перьями писали вечные мысли, а теперь вечными перьями пишут гусиные мысли". В. Солоухин
Аватара пользователя
Shico
 
Сообщения: 301
Зарегистрирован: 06 апр 2008, 16:15
Откуда: Санкт-Петербург

Re: Утилиты для программирования стенда SDK-2.0

Сообщение bmig » 04 июн 2008, 07:12

спасибо за примеры
интересно, но возник вопрос - зачем инициализируем все порты, ведь работаем только со вторым?

второй вопрос - как считать символ с клавиатуры

и ещё как вывести символ на ЖКИ
bmig
 
Сообщения: 10
Зарегистрирован: 15 май 2008, 10:42

Re: Утилиты для программирования стенда SDK-2.0

Сообщение kluchev » 04 июн 2008, 10:15

bmig писал(а):интересно, но возник вопрос - зачем инициализируем все порты, ведь работаем только со вторым?


Нужно всегда приводить плату в БЕЗОПАСНОЕ СОСТОЯНИЕ сразу после старта. Если какое-либо устройство будет работать встык (два устройства на шине на вывод), то порты могут сгореть.
В споре рождается коллективное заблуждение, а истиной мы его называем для краткости
Аватара пользователя
kluchev
 
Сообщения: 995
Зарегистрирован: 04 апр 2008, 13:31
Откуда: SPb

Re: Утилиты для программирования стенда SDK-2.0

Сообщение bmig » 04 июн 2008, 10:41

то есть если я хочу вывести символ на ЖКИ, то мне надо инициализировать ЖКИ и через
printf вывести на экран символ?
bmig
 
Сообщения: 10
Зарегистрирован: 15 май 2008, 10:42

Re: Утилиты для программирования стенда SDK-2.0

Сообщение Shico » 04 июн 2008, 10:53

bmig писал(а):то есть если я хочу вывести символ на ЖКИ, то мне надо инициализировать ЖКИ и через
printf вывести на экран символ?

Нет. На ЖКИ просто так символ невывести. Во-первых, для него нужно написать специальный драйвер. Во-вторых, ЖКИ графический и, более менее легко, на него можно вывести пиксель (зажечь, потушить), а чтобы выводить символы, нужно написать программу, которая будет рисовать ("вручную") каждый символ из пикселей. В-третьих, после выполнения первых двух условий можно и printf с ЖКИ соединить.
"Раньше гусиными перьями писали вечные мысли, а теперь вечными перьями пишут гусиные мысли". В. Солоухин
Аватара пользователя
Shico
 
Сообщения: 301
Зарегистрирован: 06 апр 2008, 16:15
Откуда: Санкт-Петербург

Re: Утилиты для программирования стенда SDK-2.0

Сообщение Shico » 04 июн 2008, 11:03

bmig писал(а):второй вопрос - как считать символ с клавиатуры

и ещё как вывести символ на ЖКИ

Код: Выделить всё
/*-----------------------------------------------------------------------------
Чтение символа из последовательного канала
-----------------------------------------------------------------------------*/
unsigned char rsio0 ( void )
{   
    while ( ! ( U0LSR & 0x01 ) );
    return ( U0RBR );
}

Читает, с ожиданием, символ из последовательного канала 0.

Когда будет время, попробую сделать пример с ЖКИ.

P.S. Кстати, Вы какую клавиатуру имели ввиду - ПК или стенда? Приведенный пример позволяет считать код символа клавиши, нажатой на клавиатуре ПК в окне терминальной программы.
"Раньше гусиными перьями писали вечные мысли, а теперь вечными перьями пишут гусиные мысли". В. Солоухин
Аватара пользователя
Shico
 
Сообщения: 301
Зарегистрирован: 06 апр 2008, 16:15
Откуда: Санкт-Петербург

Re: Утилиты для программирования стенда SDK-2.0

Сообщение bmig » 04 июн 2008, 17:14

да ещё вопрос язык программирования С, но я слышал что это С для встраеваемых приложений
кто может скиньте ссылку где можно о нём по подробнее прочитать
bmig
 
Сообщения: 10
Зарегистрирован: 15 май 2008, 10:42

Re: Утилиты для программирования стенда SDK-2.0

Сообщение Shico » 04 июн 2008, 17:33

bmig писал(а):да ещё вопрос язык программирования С, но я слышал что это С для встраеваемых приложений
кто может скиньте ссылку где можно о нём по подробнее прочитать

Это самый обыкновенный Си, по крайней мере с точки зрения синтаксиса. Отличается он в основном тем, ЧТО на нем делается. А так, отличия, в основном, состоят в наличии специальных ключевых слов (например, __irq). Можно посмотреть документацию к стенду.
"Раньше гусиными перьями писали вечные мысли, а теперь вечными перьями пишут гусиные мысли". В. Солоухин
Аватара пользователя
Shico
 
Сообщения: 301
Зарегистрирован: 06 апр 2008, 16:15
Откуда: Санкт-Петербург

Re: Утилиты для программирования стенда SDK-2.0

Сообщение bmig » 04 июн 2008, 18:47

на счёт чтения символа с клавиатуры
А что бы считать символ с клавиатуры стенда (я хотел бы сначала считать символ с клавиатуры и вывести на светодиоды) можно ли при этом, занести символ в какую-нибуть переменную
bmig
 
Сообщения: 10
Зарегистрирован: 15 май 2008, 10:42

Re: Утилиты для программирования стенда SDK-2.0

Сообщение AlexNickolaenkov » 04 июн 2008, 18:56

bmig писал(а):А что бы считать символ с клавиатуры стенда (я хотел бы сначала считать символ с клавиатуры и вывести на светодиоды) можно ли при этом, занести символ в какую-нибуть переменную


думаю это вам помешают сделать только если религиозные побуждения...
Аватара пользователя
AlexNickolaenkov
 
Сообщения: 435
Зарегистрирован: 02 май 2008, 21:40
Откуда: Санкт-Петербург

Re: Утилиты для программирования стенда SDK-2.0

Сообщение Shico » 04 июн 2008, 18:58

bmig писал(а):на счёт чтения символа с клавиатуры
А что бы считать символ с клавиатуры стенда (я хотел бы сначала считать символ с клавиатуры и вывести на светодиоды) можно ли при этом, занести символ в какую-нибуть переменную

Можно и такую программу написать... Хотя начать я советую, все таки, с последовательного канала. Он проще: чтение символа - "три строчки", вывод символа - "три строчки". Все просто и обозримо. А чтобы считать символ с клавиатуры стенда, нужно, как и для ЖКИ, написать специальный драйвер. Который новичку, на мой взгляд, сразу понять будет сложновато. Написали бы лучше программу, выводящую на светодиоды код символа, прочитанного из последовательного канала.
"Раньше гусиными перьями писали вечные мысли, а теперь вечными перьями пишут гусиные мысли". В. Солоухин
Аватара пользователя
Shico
 
Сообщения: 301
Зарегистрирован: 06 апр 2008, 16:15
Откуда: Санкт-Петербург

След.

Вернуться в SDK 2.0

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron