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

 
 
> Как передать 7 бит по SPI ?
uzzzer
сообщение Jul 9 2015, 07:15
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 7-10-10
Из: Москва
Пользователь №: 59 985



Добрый день!
Как передать по SPI семь бит данных в семибитный сдвиговый регистр?
Есть четыре регистра соедененных каскадом,получается 7+7+7+7 битовый регистр. Но когда передаешь семибитовые числа, то данные сдвигаются, так как присутствует в передачи "0" от SPDR, как сложить данные, что бы передача была корректной.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Lmx2315
сообщение Jul 9 2015, 07:22
Сообщение #2


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



..самодельным SPI в софтовой реализации.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
uzzzer
сообщение Jul 9 2015, 07:24
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 7-10-10
Из: Москва
Пользователь №: 59 985



Цитата(Lmx2315 @ Jul 9 2015, 10:22) *
..самодельным SPI в софтовой реализации.


Вот только как реализовать его? Есть примерчик рабочий?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jul 9 2015, 07:32
Сообщение #4


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(uzzzer @ Jul 9 2015, 11:24) *
Вот только как реализовать его? Есть примерчик рабочий?

рабочего примерчика для 7-ми бит нет, наверное это будет что то вроде такого:

Цитата
void spisend (char d)
{

int i=0;

PORTA &= ~0b00000010; // CS = 0
delay(1);
for (i=0;i<7;i++)
{
if ((d&0x01)==0x01) PORTA |= 0b00000100; else PORTA &= ~0b00000100; //данные MOSI
delay(1);
PORTA |= 0b00001000; // CLK
delay(1);
PORTA &= ~0b00001000;
delay(1);
d=d>>1;
}

PORTA |= 0b00000010; // CS = 1
}


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- uzzzer   Как передать 7 бит по SPI ?   Jul 9 2015, 07:15
- - Obam   Я правильно понял "четыре регистра соедененны...   Jul 9 2015, 07:40
|- - uzzzer   Цитата(Obam @ Jul 9 2015, 10:40) Я правил...   Jul 9 2015, 07:55
|- - Lmx2315   Цитата(uzzzer @ Jul 9 2015, 11:55) Я уже ...   Jul 9 2015, 08:08
||- - Сергей Борщ   Цитата(Lmx2315 @ Jul 9 2015, 11:08) x = (...   Jul 9 2015, 08:57
||- - uzzzer   Цитата(Lmx2315 @ Jul 9 2015, 11:08) ..ком...   Jul 9 2015, 09:30
||- - Lmx2315   Цитата(uzzzer @ Jul 9 2015, 13:30) Немног...   Jul 9 2015, 09:45
|- - zombi   Цитата(uzzzer @ Jul 9 2015, 10:55) А вот ...   Jul 9 2015, 14:15
|- - uzzzer   Цитата(zombi @ Jul 9 2015, 17:15) А что з...   Jul 10 2015, 02:55
|- - Сергей Борщ   Цитата(uzzzer @ Jul 10 2015, 05:55) пробы...   Jul 10 2015, 04:54
|- - uzzzer   Цитата(Сергей Борщ @ Jul 10 2015, 07:54) ...   Jul 10 2015, 08:23
- - Obam   d[0]=d[0] | (d[1] << 7); d[1]=(d[1] >...   Jul 9 2015, 08:03
- - Obam   uzzzer, см. http://electronix.ru/forum/index.php?s...   Jul 9 2015, 09:38
|- - uzzzer   Цитата(Obam @ Jul 9 2015, 12:38) uzzzer, ...   Jul 9 2015, 09:40
- - Obam   Разве не на 7-е сообщение?   Jul 9 2015, 09:44
- - Lerk   Вот картинка о том, что вам пытаются донести: Цве...   Jul 9 2015, 10:08
|- - Obam   Вот почему MSB не нарисовать слева? Арабы мы что л...   Jul 9 2015, 10:19
|- - Lerk   Цитата(Obam @ Jul 9 2015, 13:19) Вот поче...   Jul 9 2015, 10:27
- - Obam   Не флуда ради, но на рисунке регистры, а не осцилл...   Jul 9 2015, 10:35
|- - Lerk   Цитата(Obam @ Jul 9 2015, 13:35) Не флуда...   Jul 9 2015, 11:55
- - pavel-pervomaysk   На асме. Такт по фронту. ; LCD names pinouts .eq...   Jul 9 2015, 17:12
- - zombi   Цитата(pavel-pervomaysk @ Jul 9 2015, 20...   Jul 9 2015, 17:23


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

 


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


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