Ev. Triggerproblem?
SCK ist nur aktiv, wenn Daten gesendet werden.
Wofür ist das?
1 | status = SPSR; //Status löschen
|
Also bei mir läuft dies auf einem ATmega32 mit 4MHz:
1 | void SPI_MasterInit(void){
|
2 | /* Set MOSI and SCK output, all others input */
|
3 | DDR_SPI = (1 << DD_MOSI) | (1 << DD_SCK) | (1 << DD_SS);
|
4 | /* Enable SPI, Master, set clock rate fck/2 */
|
5 | SPCR = (1 << SPE) | (1 << MSTR);
|
6 | SPSR = (1 << SPI2X);
|
7 | }
|
8 |
|
9 | void SPI_MasterTransmit(char cData){
|
10 | /* Start transmission */
|
11 | SPDR = cData;
|
12 | /* Wait for transmission complete */
|
13 | while(!(SPSR & (1 << SPIF)));
|
14 | }
|
Triggere mal auf SS (oder bleibt dieser immer auf High?).
Martin schrieb:
> Muss MISO nicht auf MOSI gehen? (Serial Input/ Serial Output)
Nö, passt schon. Master Out auf Master Out beim Slave. Die können gerade
verbunden werden. Der Slave muss dann natürlich auf Slave eingestellt
sein.