Problem IO Port

OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.