Hy zusammen,
ich versuche ein SW-SPI-Slave zu schreiben, aber es haut nicht hin.
Ne Master Version habe ich gefunden und die wollte ich zum Slave umschreiben.
Code:
unsigned int SPI_Write_Word(unsigned int word)
{
unsigned char i;
unsigned int mask;
unsigned int temp;
SPI_SS_PORT &= ~(1<<SPI_SS_PIN); //SS auf Low Schalten Start der Übertragung
mask = 0x8000;
temp = 0;
for(i=0;i<15;i++)
{
if(mask | word) SPI_MOSI_PORT|=(1<<SPI_MOSI_PIN);
else SPI_MOSI_PORT&=~(1<<SPI_MOSI_PIN);
if(SPI_MISO_PIN == 1) temp |= mask;
SPI_CLK_PORT |=(1<<SPI_CLK_PIN); //CLK-Takt HIGH
SPI_CLK_PORT &=~(1<<SPI_CLK_PIN); //CLK LOW
mask >>= 1;
}
SPI_SS_PORT |= (1<<SPI_SS_PIN); //SS auf High Schalten Ende der Übertragung
return(temp);
}
eigendlich dachte ich es wäre einfacher
Ports ändern von Ausgang auf eingang schalten und Bit-maske schieben (clk-Abhängig)
bei der Bitmaske habe ich jetzt das problem.
Lesezeichen