Witam,
Chciałbym odpalić SPI slave na attiny861. Niby wszystko idealnie z dokumentacją a mimo to nie działa... Czy ktoś mógłby pomóc? Jest jakiś bit gdzie się uruchamia SPI enabled ?...mecze sie z tym dosyć długo i nic...
Może ktoś poratuje sprawnym kodem ?
Poniżej zamieszczam mój kod:
#include <avr\io.h>
#include <util/delay.h>
void Inicjacja_spi()
{
DDRB |= ( 1 << PB1 ); //MISO jako wyjście
PORTB |= (1 <<PB2);
USISR |= 1<<USIOIF;
// USICR |= (1<<USIWM0)|(1<<USICS1)| (1<<USIOIE); //Włączamy SPI
USICR |= (1<<USIWM0)|(1<<USICS1)|(1<<USICLK)|(1<<USITC);
}
char Odbieraj_spi()
{ //Czekamy na koniec transmisji danych
while(!(USISR & (1<<USIOIF)));// ( aż do ustawienie flagi USIOIF )
return USIDR; //Zwracamy to co dostaliśmy do USIDR
} //Czyli to co wysłał Master
int main(void)
{
DDRA |= (1<<7);
//PORTA |= (1<<7);
Inicjacja_spi();
while(1)
{
while((~PINB & (1<<6)))
{
PORTA |= (1<<7);
USIDR = 100;
char bajt = Odbieraj_spi();
}
PORTA &= ~(1<<7);
}
return 0;
}
Moderowany przez _Robak_:Po co do jednego problemu dwa tematy.