Не Работает Spi

2-11-2014, 16:52 От: admin Посмотрели: 654
Пытаюсь реализовать SPI для attiny, пока что тестирую на mega8. Код нашел на форуме, говорят вроде что раотает, тогда что не так?



Вот код мастера

#include <mega8.h>
#include <delay.h>

#define MOSI PORTB.3
#define MISO PINB.4
#define SCK PORTB.5

unsigned char spi(unsigned char data) {
unsigned char miso = 0;
unsigned char mask = 0x01; // если надо начинать со старшего бита - заменить на 0x80

for(; mask; mask <<= 1) { // если надо начинать со старшего бита - заменить на mask >>= 1;
MOSI = (data & mask) ? 0 : 1;
SCK = 1;
if(MISO) miso |= mask;
SCK = 0;
}
return miso;
}


void main(void) {
// Настройка SPI
DDRB.3 = 1;
DDRB.4 = 0;
DDRB.5 = 1;

// Порты выбора ведомого
DDRB.2 = 1;
DDRB.1 = 1;


// Поочередная посылка байта двум ведомым
// Можно пропустить и не вникать
while(1) {
PORTB.2 = 0;
spi('1');
delay_ms(1000);
spi('0');
delay_ms(1000);
PORTB.2 = 1;

PORTB.1 = 0;
spi('1');
delay_ms(1000);
spi('0');
delay_ms(1000);
PORTB.1 = 1;
}
}



Вот код для двух ведомых, тут все работает, можно и не смотреть

#include <mega8.h>

interrupt[SPI_STC] void spi_isr(void) {
unsigned char data;
data = SPDR; // Читаем приходящие байты

// Если пришла 1, включить светодиод
if(data == '1') { PORTD = 0xFF; }

// Если пришел 0, выключить светодиод
if(data == '0'){ PORTD = 0x00; }
}

void main(void) {
PORTB = 0x00;
DDRB = 0x10;

PORTD = 0x00;
DDRD = 0xFF;


// SPI initialization
// SPI Type: Slave
// SPI Clock Rate: 125,000 kHz
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR = 0xC2;
SPSR = 0x00;

// Clear the SPI interrupt flag
#asm
in r30, spsr
in r30, spdr
#endasm

#asm("sei")
while(1);
}

Раздел: AVR

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Не Работает Spi все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930