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

 
 
> LPC2148 SPI, Что я не так делаю ?
MiklPolikov
сообщение Dec 21 2010, 11:32
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Пытаюсь при помощи SPI0 LPC2148 поуправлять светодиодной матрицей на демо плате.


///////////////////////Инициализация портов//////////////////////////////
void init_GPIO(void)
{
///выходы SPI0
PINSEL0|=(1<<8); // SCK0
PINSEL0|=(1<<10); // MISO0
PINSEL0|=(1<<12); // MOSI0
PINSEL0|=(1<<14); // SSEL0
}

////////////////////////инициализация SPI0////////////////////////////////
void init_SPI(void)
{
S0SPCCR=100;/// частота SPI=тактовая частота/100
S0SPCR|=(1<<2); // включаем возможность выбирать число бит в пакете (16)
S0SPCR|=(1<<5); // выбираем мастер режим

}

///////////////////////передача данный через SPI0/////////////////////////
void transmit_SPI(unsigned int data )
{
char g;

g=S0SPSR;
S0SPDR=0x0000; //данные начинают передаватся сразу после записи
delay(100000);
}


Смотрю под отладкой (ulink) что происходит .
Сразу после
S0SPDR=0x0000;
выставляется бит SPIF в SOSPSR.
Почему ?! Ведь этот бит должен выставится кгда передача закончилась, а не когда началась.

За время задержки SPIF сбрасывается. Почему ?! Ведь он должен сбрасываться чтением SOSPSR.

Спасибо !


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DpInRock
сообщение Dec 21 2010, 11:48
Сообщение #2


Гуру
******

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



Сразу - это как?
И чего должен делать SPI сразу после записи в регистр данных? Подождать ваш отладчик?


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Dec 21 2010, 12:02
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(DpInRock @ Dec 21 2010, 17:48) *
Сразу - это как?
И чего должен делать SPI сразу после записи в регистр данных? Подождать ваш отладчик?


Выполнилась команда и в регистре оказалась 1.
Мне казалось в процессоре всё останавливается кроме WDT под отладкой.

В любом случае : Почему вот этот код, даже без отладчика, не работает ? SPI совсем молчит.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Dec 21 2010, 13:04
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Другой вопрос :

я правильно понял, что после того как я записал 1 в PINSEL0 управление портом перешло периферийным устройствам, и регистр направления порта IO0DIR больше ни на что не влияет ? Или влияет ?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post



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

 


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


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