Portpin schaltet nicht

OP #2580162
Lesenswert?

Hallo miteinander,

ich stehe vor einem merkwürdigem Problem. Ich habe den PortD (0 bis 4) 
und PortC (0 bis 5) mit einer LED-Matrix belegt.

In der Main steht erstmal zum testen
1
#define MUX_ROW      PINC
2
#define MUX_ROW_DDR    DDRC
3

4
#define MUX_COL      PIND
5
#define MUX_COL_DDR    DDRD
6

7
#define LED_REF      PINB
8
#define LED_REF_DDR    DDRB
9

10
#define TEMP_SENSE    PINA
11
#define TEMP_SENSE_DDR  DDRA
12

13
int main (void) { 
14
  
15
  // Give some time to startup
16
  _delay_ms(30);
17
  
18
  PORTA = 0x00;
19
  PORTB = 0x00;
20
  PORTC = 0xFF;
21
  PORTD = 0x00;  
22

23
  MUX_COL_DDR = 0xFF;      
24
  MUX_ROW_DDR = 0xFF;
25
  LED_REF_DDR = 0xFF;
26
  TEMP_SENSE_DDR = 0x00;
27

28

29
  PORTB = 0xFF;
30
  _delay_ms(1000);
31
  PORTB = 0x00;
32
  
33
  while (1)
34
  {
35
                PORTC = ~0x02;
36
                PORTD = 0x10;
37
                _delay_ms(250;
38
                
39
                // LED leuchtet
40

41
    PORTC = ~0x04;
42
    PORTD = 0x10;
43
    _delay_ms(250);
44
    PORTD = 0x08;
45
    _delay_ms(250);
46

47
                // Keine LED Leuchtet
48
  }

Alle LEDs funktionieren. Wenn ich manuell die Transistoren schalte, 
leuchten alle LEDs. Der Ausgang am Prozessor macht aber beim zweiten 
Teil überhaupt nichts. Am PortD werden die Ausgänge auf High gesetzt, am 
PortC bleiben sie konstant high. Nur die Portpins PC0 und PC1 lassen 
sich schalten.

Ein Kurzschluss vom Löten ist ausgeschlossen.

Liegt es am Programm, oder am Prozessor?

Grüße

M. Schwaikert

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