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

 
 
> Софтовый SPI, Поделитесь исходничком.
neonix
сообщение Mar 22 2007, 09:21
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 27
Регистрация: 24-02-07
Пользователь №: 25 639



С добрым утром всех smile.gif. Собственно если у кого есть софтовая реализация SPI поделитесь пожалуйста. Вся проблема в том что нужен SPI, но порт занят дисплеем , поэтому хочу использовать его софтовую реализацию на произвольных выводах.

Сообщение отредактировал neonix - Mar 22 2007, 09:23
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ahulap
сообщение Mar 22 2007, 11:01
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 22-06-06
Из: Kharkiv, UA
Пользователь №: 18 284



Под WinAVR, F_CPU/F_SPI/6 должо быть больше 4, ну и естественно порты настроены.

#define F_CPU 8000000
#define F_SPI 250000

#define SPI_PORT PORTB
#define SPI_DDR DDRB
#define SPI_PIN PINB
#define SCK PB7
#define MISO PB6
#define MOSI PB5

unsigned char spi_send(unsigned char d)
{
unsigned char i = 8;


do {
// Set MOSI
if (d & _BV(7)) SPI_PORT |= _BV(MOSI);
else SPI_PORT &= ~_BV(MOSI);

//Get MISO
d <<= 1;
if (SPI_PIN & _BV(MISO)) d++;

// SCK impulse
SPI_PORT |= _BV(SCK);
_delay_loop_1(F_CPU/F_SPI/6 - 1);
SPI_PORT &= ~_BV(SCK);
_delay_loop_1(F_CPU/F_SPI/6 - 4);

} while (--i);

return d;
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 29th June 2025 - 17:56
Рейтинг@Mail.ru


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