|
помигать светодиодиком в lpc2478, не получается((( |
|
|
|
Apr 8 2011, 20:04
|
fpga designer
   
Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928

|
здравствуйте! не получается помигать светодиодиком на данном проце компилятор - keil CODE #include "stdio.h" #include "LPC23XX.h"
void wait (void) { /* wait function */ int d;
for (d = 0; d < 1000000; d++); /* only to delay for LED flashes */ }
int main(void){ IODIR0 = 0x00000180;
while(1){ IOSET0 = 0x00000080; // wait(); IOCLR0 = 0x000000100; }; return 0; }
плата sk-lpc2478-s3e стартап был сконфигурирован кейлом самостоятельно и правки туда не вводились... помогите пожалуйста!
--------------------
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 19)
|
Apr 9 2011, 15:11
|
fpga designer
   
Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928

|
CODE #include "stdio.h" #include "LPC23XX.h"
void wait (void) { /* wait function */ int d;
for (d = 0; d < 1000000; d++); /* only to delay for LED flashes */ }
int main(void){ IODIR0 = 0xffffffff; IOCLR0 = 0xffffffff; while(1){ //IOSET0 = 0x00000080; //wait(); //IOCLR0 = 0x00000080; //wait(); }; return 0; } на порте держится стабильно 3,3 вольта... дохлый проц? хотя все нормально прошивается и стирается... или я уже порты успел пожечь...
--------------------
|
|
|
|
|
Apr 9 2011, 17:49
|
fpga designer
   
Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928

|
да знакомо... этим я специально воспользовался... но когда пишешь процу убрать все ноги порта в 0, а на них вольтметром получается 3,3 вольта, то это настораживает...
а что за регистр IOPIN - за что он отвечает непонятно...? GPIO Port Pin value register. The current state of the GPIO configured port pins can always be read from this register, regardless of pin direction. By writing to this register port’s pins will be set to the desired level instantaneously. текущее состояние конфигурируемых выводов порта может быть прочитано из этого регистра, независимо вход или выход этот вывод. При записи в этот регистр, выводы порта будут поставлены в необходимый уровень мгновенно. То есть если я пишу в один его бит единицу, то вывод если он выход будет поставлен в лог 1, так?
точнее дело так... светодиод горит, но очень тускло, если на него смотреть сверху - то видно горение, сбоку - нет. когда его подключаешь к +3,3 вольтам горит ярко, так что светодиод исправен. подключен через резистор в 560 ом.
и еще - может найдется добрый человек и скомплирует сам со своим кейлом чтоб всем портом помигать, вдруг в компиляторе дело, а я в железе испытаю...
--------------------
|
|
|
|
|
Apr 10 2011, 08:29
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
Не что значит, а ДЛЯ ЧЕГО. Там идет настройка PLL. Вы должны понимать на какой частоте работает процессор. Ибо откуда вы знаете какой будет задержка в этом случае? Там идет настройка ФУНКЦИЙ пинов (PINSELx). Не направления, а функций. После которых ваши попытки сменить (установить направление) могут быть бесполезными. (Не говорю, что будут, говорю, что могут быть). Цитата добавление volatile ничего не дает Если оптимизатор включен на полную, то вполне себе может дать. Цитата но ведь мой путь тернистый разве стоит начинать именно с этого Начинать надо, разумеется, не с этого. А с чтения user manual на этот процессор. И вот примеры программ в этом случае будут как нельзя кстати. --- Ну и мозг включать тоже надо. К примеру, вы пробовали разную задержку? Вы пробовали просто погасить или просто зажечь. Чтоб хотя бы разницу заметить, если у вас осциллографа под рукой нет?
--------------------
On the road again (Canned Heat)
|
|
|
|
|
Apr 11 2011, 06:32
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 2-01-11
Пользователь №: 61 990

|
Может вместо #include "LPC23XX.h" нужно #include "LPC24XX.h" ? А на схематике все нормально? PINSEL - выбор назначения пина тут не нужно, тоесть должен быть =0 как обычный инпут/аутпут
|
|
|
|
|
Apr 11 2011, 16:54
|
fpga designer
   
Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928

|
я нашел этот файл вот тут - http://ics.nxp.com/products/lpc2000/lpc24xx/Sample Code Bundle for LPC23xx/LPC24xx Peripherals using Keil's μVision V1.60 (Mar 10, 2009) ну скиньте мне тогда lpc24XX.h у кого есть пожалуйста и стартап если можно на 12 мегагерц по схематике быть ошибок не должно - плата от стартеркита)
--------------------
|
|
|
|
|
Apr 12 2011, 21:40
|
fpga designer
   
Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928

|
товарищи... чудеса продолжаются... дали мне прошивку - работает -светодиод мигает... текст программы я взял оттуда... кстати,сделал теперь на линуксе себе компилятор Sourcery G++ Lite 2010.09-51 for ARM EABI скрестил с эклипсом - работает, компилит и прочее... но вот опять... я даже не могу светодиодик зажечь... тот же порт, тот же пин, те же строки... что вообще за хрень!?!??!? прошиваю теперь из консольки lpc21isp проект прикрепляю...
Прикрепленные файлы
blink.rar ( 59.59 килобайт )
Кол-во скачиваний: 15
--------------------
|
|
|
|
|
Apr 13 2011, 05:41
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 31-08-10
Из: Минск-Витебск
Пользователь №: 59 203

|
Из файла main.c видно что диод мигать не должен, а должен просто загореться. Если вы хотите сбросить 2 и 3 бит в ноль в регистре PINSEL1, то следует писать не так Код PINSEL1 &= 0x0000000C; а вот так Код PINSEL1 &= ~(0x0000000C);
Сообщение отредактировал yashok - Apr 13 2011, 05:42
|
|
|
|
|
Apr 14 2011, 07:02
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 31-08-10
Из: Минск-Витебск
Пользователь №: 59 203

|
А разве на плате sk-lpc2478-s3e диод не заведен на p0.22 ??
|
|
|
|
|
Apr 14 2011, 07:36
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
Код void dell(void) { volatile unsigned int i; for (i=0;i<1000000;i++); } void main (void) { PINSEL1=0; PINMODE1=0; IO0DIR=0x00400000;
for (;;) { IO0SET=0x00400000; dell(); IO0CLR=0x00400000; dell(); }
} Забыл добавить. Этот процессор работает на более высокой частоте, чем 12МГц. Зависит от PLL. Если вы брали установку PLL от хороших людей, то процессор будет работать на 72 Мгц.
Сообщение отредактировал DpInRock - Apr 14 2011, 07:39
--------------------
On the road again (Canned Heat)
|
|
|
|
|
Apr 24 2011, 12:33
|

Группа: Новичок
Сообщений: 3
Регистрация: 7-03-11
Пользователь №: 63 439

|
Ну сделай наконец так-и будет мигать- Код int main(void){ while(1){ IO0DIR= 1 << 17; IO0SET= 1 << 17; // может IOSET0 надо писать? wait (); IO0CLR= 1<<17; wait (); } }
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|