Problem IO Port

#3033820
Lesenswert?

Hallo,

Ich habe ein Problem bei dem ich absolut nicht nachvollziehen kann wie 
es zustande kommt. Ich habe ein paar LEDs in meiner Schaltung, die ich 
an bestimmten stellen an und aus schalte um optisch feedback zu 
bekommen. Das funktioniert so weit ganz gut, jedoch habe konnte ich 
nachdem ich den Code ein bisschen umstrukturiert habe die LED am Port B0 
nicht mehr einschalten. nach ein bisschen probieren fand ich heraus, 
dass meine Funktion SPIInit und zwar die erste zeile probleme macht... 
Jedoch verstehe ich nicht warum, da ich bei dem port mit bitmasken ja 
nur ein bit verändere.

main.c
1
  DDRD = (1 << PD5)| (1 << PD6) | (1 << PD7);
2
  DDRB |= (1 << PB0);
3
  PORTB |= 1 << PB0;
4
  SPIInit();            // SPI Schnittstelle initialisieren
5
  TimerInit();          // Timer Initialisieren
6
  USARTInit(UBRR_VALUE);       // UART Initialisieren
7
  ADCInit();            // ADC Initialisieren
8
  RFM70_Init();          // RFM70 Initialisieren
9
  //DDRB |= (1 << PB0); //schreibe ich den Befehl hier funktioniert alles aber warum !?
10
  //PORTB |= 1 << PB0;  
11
sei();
12
  while(1)
13
.
14
.
15
.

SpiInit
1
void SPIInit()
2
{
3
  DDRB = (1<<CSN)|(1<<MOSI)|(1<<SCK)|(1<<CE);      //  Outputs für Master definieren // SCK / MOSI / SS
4
  DDRB &= ~(1<<MISO);                  // Input Miso
5
  DDRD &=~ (1<<IRQ);                  // INT0 als Input für Interrupt
6
  SPCR = 0x50;                    //  SPEN = 1 MSTR=1 / spi aktivieren prescaler 4
7
  PORTB |= 1<<CSN;                  // SS auf high --> kommunikation mit dem Modul nicht möglich muss auf low gesetzt werden                  // CE als output
8
  PORTB &= ~(1<<CE);                  // auf low setzen
9
}

.h file
1
// SPI Port definition
2
#define CE PB1
3
#define CSN PB2
4
#define MOSI PB3
5
#define MISO PB4
6
#define SCK PB5
7
#define IRQ PD2

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