ATMEGA32 und SPI

OP #2076493
Lesenswert?

Hallo,

ich habe ein Problem das ich auch mit viel lesen im Forum nicht lösen 
kann.
Ich habe ein Eval Board von IB Markl mit einem Atmega32 drauf. Dort habe 
ich versucht die SPI Schnittstelle zu konfigurieren. Leider gelingt mir 
das überhaupt nicht.
1
int x=0;
2
char INIT[15] = {0x00, 0x03, 0x04, 0x09, 0x02, 0xC3, 0x0A, 0x82, 0x02, 0x0D, 0x01, 0x02, 0x0E, 0x30, 0x00};
3
DDRA =0xFF;
4
SPCR=0x5f;
5
SPSR=0x00;
6

7
while(x<=15){
8
/*Start transmission */ 
9
SPDR=INIT[x];
10
/*Wait for transmission complete */ 
11
while(!(SPSR & (1<<SPIF)));
12
x=x+1;
13
}

ich müsste doch zumindest auf dem CLK Pin auf dem Oszi was erkennen? 
Nichtmal das fuktioniert. Was mache ich falsch?
OP #2077798
Lesenswert?

so: mein kompletter code:
[c]
#include <avr/io.h>
#include "delay.h"
// Hauptprogramm
int main(void) {
int x=0;
char INIT[15] = {0x00, 0x03, 0x04, 0x09, 0x02, 0xC3, 0x0A, 0x82, 0x02, 
0x0D, 0x01, 0x02, 0x0E, 0x30, 0x00};
DDRB = (1<<PB4)|(1<<PB5) | (1<<PB7); // Ausgang für MOSI, SS und CLK
//SPCR = ( (1<<SPE)|(1<<MSTR) | (1<<SPR1) |(1<<SPR0));
SPCR=0x5f;
SPSR=0x00;
DDRA = 0xFF;
while(x<=15){
/*Start transmission */
SPDR=INIT[x];
/*Wait for transmission complete */
while(!(SPSR & (1<<SPIF)));
x=x+1;
}
// Puls für Step Dir
while(1){
PORTA=0x00;
_delay_ms(4);
PORTA=0xFF;
_delay_ms(4);
}
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren