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

 
 
> обмен по spi, как передать по spi 52 бита
vados
сообщение Mar 19 2010, 08:10
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 19-12-08
Пользователь №: 42 609



Кто может - помогите! Есть проблема при передаче по SPI. Нужно организовать передачу 52 бит для управления аудиопроцессором lc75373(только в одну сторону).
В принципе код есть - точная копия из ДШ. Но при прогоне в PROTEUS, между байтами получается промежуток, как понял из ДШ после передачи одного байта генератор SPI останавливается и из-за этого получаются промежутки, или это глюк PROTEUS?

Код
unsigned char i=0;
unsigned char mass_data [7] = { 0x0A, 0xff, 0x3A, 0xAf, 0xdd, 0xA0, 0xcf };// mass_data - массив с данными вместо 52 56бит(пока)
void SPI_MasterTransmit(char cData)
{
/* Start transmission */
SPDR = cData;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)))
;

while (1)
      {
      while(i<7)
        {
        PORTB=0x10;// PORTB.4 - вывод SS - chip select                              
        SPI_MasterTransmit( mass_data [i] );
        i++;        
        }
        PORTB=0;
}


Можно ли это сделать аппаратно, проблема еще в том что кол-во бит не кратно восьми, или лучше все это делать программно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vados
сообщение Mar 19 2010, 15:19
Сообщение #2





Группа: Участник
Сообщений: 5
Регистрация: 19-12-08
Пользователь №: 42 609



Похоже нужно перестать смущаться по поводу "дыр" в клоках, поискал по другим форумам - похоже не я один этим озадачился, wacko.gif - и похоже другого выхода нет.
А насчет того что хотел предложить Andron_(теперь допер) - то особо не смог нормально это реализовать.
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Mar 19 2010, 18:54
Сообщение #3


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

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



Цитата(vados @ Mar 19 2010, 19:19) *
Похоже нужно перестать смущаться по поводу "дыр" в клоках, поискал по другим форумам - похоже не я один этим озадачился, wacko.gif - и похоже другого выхода нет.
А насчет того что хотел предложить Andron_(теперь допер) - то особо не смог нормально это реализовать.


Для SPI не важны дыры в клоках. Главное чтобы на байт приходилось 8 клоков и SS не дёргался. А так можете делать паузы хоть в секунду между байтами.
Go to the top of the page
 
+Quote Post



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

 


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


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