Forum: Compiler & IDEs Portpin schaltet nicht


von Martin S. (sirnails)


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

von Sauger (Gast)


Lesenswert?

Nabend,

werf einen Blick ins Datenblatt deines nicht benannten uC. Im Kapitel 
"Alternate Port Functions" wirst Du eine Lösung finden.

MfG

von Rolf M. (rmagnus)


Lesenswert?

JTAG noch an?

von Martin S. (sirnails)


Lesenswert?

Oh je. Tut mir vielmals Leid. Ein Atmega32.

von Martin S. (sirnails)


Lesenswert?

Da brat mir einer nen Storch... fünftausend mal hab ich die Fuses und 
Settings ausgelesen, weil der der Dongle nicht richtig funktioniert hat. 
Und immer stand dort "Jtag disabled"... JTAG war doch enabled.

Vielen Dank für diesen einfachen, und effektvollen Hinweis.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.