Softwérové SPI rozhraní

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
markoni
Příspěvky: 2312
Registrován: 30 říj 2006, 00:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

Softwérové SPI rozhraní

#1 Příspěvek od markoni »

Zdravím
Potřebuji řešit programově SPI rozhraní existuje nějaká rutina? já věřím že jo když existuje na usart?
Uživatelský avatar
mihal
Příspěvky: 1844
Registrován: 06 dub 2005, 00:00
Bydliště: Zilina

#2 Příspěvek od mihal »

K comu rutinu? Ved to je trivialita - CS do nuly, nastavit hodnotu bitu na DataOut, klok, rotovat data,to vsetko 8x a CS do 1. Popri tom prijem, cosi mam v C ale je to jednoduche napisat na asm

unsigned char i;

rd_spi_ptr=0;
for (wr_spi_ptr=wr_spi_ptr; wr_spi_ptr>0;)
{
wr_spi_ptr--;
for (i=8;i>0;)
{
if (write_spi_data[wr_spi_ptr] & 1)
{//vyslem log1
MOSI_OUT|=MOSI;
}
else
{//vyslem log0
MOSI_OUT&=~MOSI;
}
SCK_OUT&=~SCK;
SCK_OUT|=SCK;
write_spi_data[wr_spi_ptr]=write_spi_data[wr_spi_ptr]>>1;
i--;
read_spi_data[rd_spi_ptr]=read_spi_data[rd_spi_ptr]<<1;
if (MISO_IN & MISO)
{//prijmem log1
read_spi_data[rd_spi_ptr]|=1;
}
else
{//prijmem log0
read_spi_data[rd_spi_ptr]&=~1;
}
}
rd_spi_ptr++;
}


toto mi cita a zapisuje bufer read/write_spi_data,chyba tam nastavenie CS
EDIT: Tie smajle su ) a ;
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“