RTV forum PL | NewsGroups PL

Jak zaimplementować full-duplex SPI na ATmega16 z wykorzystaniem dostępnych funkcji?

SPI, Full-Duplex...?

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zaimplementować full-duplex SPI na ATmega16 z wykorzystaniem dostępnych funkcji?

ToR
Guest

Thu Aug 17, 2006 8:49 pm   



Potrzebuje napisac komunikacje SPI w full-duplex'sie i mam problem bo nie wiem
jak to zaimplemenotwac.Otoz aktualnie mam funkcje dostepne w dokumentacji
Atmega16 AVR czyli:

//--------------------------------
void SPI_MasterTransmit(char cData)
{
/* Start transmission */
SPDR = cData;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)));
}


//--------------------------------
char SPI_Master_Receive(void)
{
/* Wait for reception complete */
while(!(SPSR & (1<<SPIF)));
/* Return data register */
return SPDR;
}

ale to nie full duplex...Bo transmisje "z" i "do" sa osobno.
Znalezlem w ksiazce (BTC) pseudo-kod full-dupleska ale nie wiem jak sie do
niego dobrac moze Wy bedziecie miec jakies propozycje:

unsigned char SPI_trans(unsigned char dana_nadana)
{
unsigned char i,dana_odebrana;
dana_odebrana = 0;
i = 8;

whil (i)
{
i--;
MISO=(dana_nadana>>i)$1;
SCK=1;
dana_Odebrahna=dana_odebrana|(unsigned char) (MOSI)<<i);
SCK = 0;
}
return dana_odebrana;
}

gdzie MISO,MOSI,SCK wyprowadzenia SPI na procku.

Wszytko fajnie ale ten ten kod wyglada mi na wlasna implementacje algorytmu SPI
a ja chce wykotrzystac sprzetowy. A wiec czy mozecie jakos doradzic jak to
polaczyc ?

Moja propozycja:

char SPI_MasterTransmit(char cData)
{
/* Start transmission */
SPDR = cData;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)));
return SPDR;
}

Pozdrawiam,
Rafal k.

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl

Ostry
Guest

Fri Aug 18, 2006 5:02 pm   



Dnia 17-08-2006 o 22:49:36 ToR <ToR_kulaWYTNIJTO@o2.pl> napisał:

Quote:
Moja propozycja:

char SPI_MasterTransmit(char cData)
{
/* Start transmission */
SPDR = cData;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)));
return SPDR;
}

jest OK

--
Ostry

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zaimplementować full-duplex SPI na ATmega16 z wykorzystaniem dostępnych funkcji?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map