реклама на сайте
подробности

 
 
> Помогите проморгаться, Не заводится LPC2478
atana
сообщение Feb 13 2011, 04:18
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 28-12-09
Пользователь №: 54 544



Здравствуйте.
Имеется плата SK-LPC2478-S3E от StarterKit.

Между P0.16 и землей повесил светодиод, изначально он слабо светится, на ноге 2,3 В.
Написал простую программу для LPC2478:

#include <LPC24xx.H>

void delay (int cycles)
{
volatile int i;

for(i = 0; i<cycles; i++) //simple delay loop
{}
}

int main(void)
{
int cycles = 36000000;

PINSEL1 = 0; //P0.16-31 as GPIO
PINMODE1 = 0xFFFFFFFF; //P0.16-26 PULLDOWN
IODIR0 = 0x10000; // P0.16 as output

while(1)
{
IOSET0 = 0x10000; //P0.16 set

delay(cycles);

IOCLR0 = 0x10000; //P0.16 clear

delay(cycles);
}
}


Пишу в Keil, шью FlashMagic через COM. Отлаживаю OCD Commander'ом через Wiggler.
Светодиод не моргает (продолжает тускло светиться), шаги процессора по OCD Commander'у и симулятору кейла не совпадают.
Проект здесь: http://dl.dropbox.com/u/4180373/2nd_blinking.zip

Startup был предложен кейлом при создании проекта, вносил изменения по настройке клока - результатов никаких.

В коде main имеются ошибки?
Если нет, то, видимо, напортачил со startup'ом, но не могу разобраться где.

Может, кто-нибудь поделится 100% рабочим примером для LPC2478? Или подскажете что здесь не так?

До сих пор сидел на ПЛИС, решил подружить их с ARM и такая сходу незадача..


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mempfis_
сообщение Feb 13 2011, 06:53
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Когдато начинал осваивать lpc2468 в KEIL, но быстро перешел на IAR. Прикладываю пример табло которе делел на SK-LPC2468.
Если не изменяет память то чтото менял в стартапе - гдето какойто вектор не совпадал.
Посмотрите - вдруг поможет.

И кстати у Вас огромная задержка в цикле.
Для моргания светодиода при корректном стартапе и правльном файле кнфигурации памяти достаточно такого кода


Код
#include <NXP/iolpc2468.h>

volatile int cnt;
int    main(void)
{
    // Set io pins for led P0.21
    IO0DIR |= (1<<21);

    // Endless loop to toggle the red  LED P0.21
    for(;; )
    {
        IO0CLR = (1<<21);
        for( cnt = 2000000; cnt; cnt-- );
        IO0SET = (1<<21);
        for( cnt = 2000000; cnt; cnt-- );
    }
}


Сообщение отредактировал mempfis_ - Feb 13 2011, 06:57
Go to the top of the page
 
+Quote Post
atana
сообщение Feb 13 2011, 09:44
Сообщение #3





Группа: Новичок
Сообщений: 9
Регистрация: 28-12-09
Пользователь №: 54 544



Цитата(mempfis_ @ Feb 13 2011, 09:53) *
Когдато начинал осваивать lpc2468 в KEIL, но быстро перешел на IAR. Прикладываю пример табло которе делел на SK-LPC2468.
Если не изменяет память то чтото менял в стартапе - гдето какойто вектор не совпадал.
Посмотрите - вдруг поможет.

И кстати у Вас огромная задержка в цикле.
Для моргания светодиода при корректном стартапе и правльном файле кнфигурации памяти достаточно такого кода


Код
#include <NXP/iolpc2468.h>

volatile int cnt;
int    main(void)
{
    // Set io pins for led P0.21
    IO0DIR |= (1<<21);

    // Endless loop to toggle the red  LED P0.21
    for(;; )
    {
        IO0CLR = (1<<21);
        for( cnt = 2000000; cnt; cnt-- );
        IO0SET = (1<<21);
        for( cnt = 2000000; cnt; cnt-- );
    }
}



Проморгался IAR'ом. Причем без Startup'а, только main.c с этим кодом и все.
В Keil'е такая фишка не прокатила, не заработало и со Startup'ом из вашего проекта.
Теперь возникла некоторая неопределенность: если Startup'а нет, то в каком режиме работает камень, какой сорс клока и какая частота. Но, я так понимаю, настройки PLL можно дополнительно прописывать ручками? Keil, собственно, графическим визардом и привлекал.

Задержка да, большая, поменял на 10000 - моргает 2-3 Гц. Но дело было точно не в этом, различие в яркости между тем неопределенным состоянием (кстати, выводы по дефолту в тристэйт инициализируются?) и нормальной логической единицей существенно.

Еще у меня параллельно вставал вопрос насчет отработки кода в OCD Commander'е: http://electronix.ru/forum/index.php?showtopic=86424. На ПЛИС с системой на MicroBlaze частенько так делаю, пишу tcl-скрипт, отрабатываю и уже потом пишу C-код. Правда, там это более оправдано из-за большого времени сборки проекта. А тут пока еще синтаксис не освоил.

Сообщение отредактировал atana - Feb 13 2011, 09:45
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 21:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01411 секунд с 7
ELECTRONIX ©2004-2016