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

 
 
> 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



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

 


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


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