|
Программный SPI, реализация на avr |
|
|
|
 |
Ответов
|
Oct 18 2009, 13:27
|

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

|
Цитата(CIIAPTAK @ Oct 18 2009, 16:09)  Нужен именно программный, ибо аппаратный уже занят. Да и девайс разведен уже на на другие выводы Мк. Чтож там сложного то: Код #define HI(x) SPI_PORT |= (1<<(x)) #define LO(x) SPI_PORT &= ~(1<<(x))
unsigned int SPIWriteWord(unsigned int cmd) { unsigned char i; unsigned int recv; recv = 0; LO(SCK); LO(nSS); for(i=0; i<16; i++) { if(cmd&0x8000) HI(SDI); else LO(SDI); HI(SCK); recv<<=1; if( SPI_PIN&(1<<SDO) ) { recv|=0x0001; } LO(SCK); cmd<<=1; } HI(nSS); return recv; } Обзовите где нибудь выводы SDI, SDO, SCK. Тут 16битный вариант, сли нужно код легко переделывается на 8 бит.
|
|
|
|
|
Oct 18 2009, 13:59
|

Участник

Группа: Участник
Сообщений: 27
Регистрация: 22-07-07
Пользователь №: 29 290

|
[quote name='mempfis_' date='Oct 18 2009, 17:27' post='663748'] Чтож там сложного то: Код #define HI(x) SPI_PORT |= (1<<(x)) #define LO(x) SPI_PORT &= ~(1<<(x))
unsigned int SPIWriteWord(unsigned int cmd) { unsigned char i; unsigned int recv; recv = 0; LO(SCK); LO(nSS); for(i=0; i<8; i++) { if(cmd&0x80) HI(SDI); else LO(SDI); HI(SCK); recv<<=1; if( SPI_PIN&(1<<SDO) ) { recv|=0x0001; } LO(SCK); cmd<<=1; } HI(nSS); return recv; } Биг спс. Для 8 ми битного, правильно поправил? =) Это на запись. А как на чтение? В случае двухстороннего обмена.
Сообщение отредактировал CIIAPTAK - Oct 18 2009, 14:05
|
|
|
|
Сообщений в этой теме
CIIAPTAK Программный SPI Oct 18 2009, 13:09   Xenia SPI куда элегантнее программировать на ассемблере,... Oct 18 2009, 15:04    _Pasha Цитата(Xenia @ Oct 18 2009, 18:04)
В тек... Oct 18 2009, 15:15     Xenia Цитата(_Pasha @ Oct 18 2009, 19:15) В тек... Oct 18 2009, 15:37      prottoss Цитата(Xenia @ Oct 18 2009, 23:37) Вот мо... Oct 18 2009, 15:56    zltigo Цитата(Xenia @ Oct 18 2009, 18:04) SPI ку... Oct 18 2009, 15:45     Xenia Цитата(zltigo @ Oct 18 2009, 19:45) А отк... Oct 18 2009, 16:06      zltigo Цитата(Xenia @ Oct 18 2009, 19:03) Я не д... Oct 18 2009, 16:08       Xenia Цитата(zltigo @ Oct 18 2009, 20:08) Я же ... Oct 18 2009, 16:27        zltigo Цитата(Xenia @ Oct 18 2009, 19:27) У вас ... Oct 18 2009, 16:41        _Pasha Цитата(Xenia @ Oct 18 2009, 19:27) Язык д... Oct 18 2009, 16:56        ReAl Цитата(Xenia @ Oct 18 2009, 19:27) У вас ... Oct 18 2009, 18:22  mempfis_ КодБиг спс. Для 8 ми битного, правильно поправил? ... Oct 19 2009, 07:13 Rst7 Кстати, как по мне, все это очень медленно Если и... Oct 18 2009, 18:30 Xenia Цитата(Rst7 @ Oct 18 2009, 22:30) Кстати,... Oct 18 2009, 19:15 Rst7 ЦитатаТак и я о том,
Причем тут "и я"? ... Oct 18 2009, 21:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|