STK500 defekt?

Gast #2816059
Lesenswert?

Hi ich habe gerade etwas sehr merkwürdiges mit meienm STK500 und zwar 
sind alle LEDs an geschaltet sobald der Controller eingesteckt ist. 
Allerdings sollten sie vom Programm her alle aus sein. Also DDRX = 0xff 
und PORTX = 0x00

Kann es sein, das das Board defekt ist? Oder stellt mein Controller die 
Verbindung mit Masse her?
#2816109
Lesenswert?

JD schrieb:
> Wie bekomme ich sie dann ausgeschaltet? Eigentlich indem ich dann den
> Port-Pin einschalte oder??

Richtig.

JD schrieb:
> Denn ich habe jetzt alle Kombinationen von PORTX und DDRX durch und
> keinen unterschied.

Schalte den Port auf Ausgang (DDRX = 0xff) und den Port auf High (PORTX 
= 0xff). Dann sollten die LEDs eigtl aus sein.

Sicher dass du den richtigen Port verwendest?
Gast #2816121
Lesenswert?

Ja es handelt sich um PORTC

hier habe alles auf 0xff gestellt:

DDRA = 0xff;
  PORTA = 0xff;
  DDRB = 0xff;
  PORTB = 0xff;
  DDRC = 0xff;
  PORTC = 0xff;
  DDRD = 0xff;
  PORTD = 0xff;

und es leuchtet immernoch. Es sei denn ich lösche den Flashspeicher. 
Dann ist alles aus.
Gast #2816138
Lesenswert?

Ja ich beschreibe den mit HVPP. Vertify ist OK.
1
//libarys
2
#include <avr/io.h>
3
#include <util/delay.h>
4
#include <stdbool.h>
5

6
int main(void)
7
{
8
  //init io
9
  init_io();
10
  
11
  while(1)
12
  {
13
    if(TASTER_OK)
14
    {
15
      _delay_ms(T_DEBOUNCE);
16
      if(!(TASTER_OK))
17
      {
18
        led_flash(4);
19
      }
20
    }
21
    
22
    if(TASTER_DOWN)
23
    {
24
      _delay_ms(T_DEBOUNCE);
25
      if(!TASTER_DOWN)
26
      {
27
        //when button down is released
28
      }
29
    }
30
    
31
    if(TASTER_UP)
32
    {
33
      _delay_ms(T_DEBOUNCE);
34
      if(!TASTER_UP)
35
      {
36
        //when button down is released
37
      }
38
    }
39
  }
40
    return 0;
41
}
42

43
void init_io(void)
44
{
45
  DDRA = 0xff;
46
  PORTA = 0xff;
47
  DDRB = 0xff;
48
  PORTB = 0xff;
49
  DDRC = 0xff;
50
  PORTC = 0xff;
51
  DDRD = 0xff;
52
  PORTD = 0xff;
53
}
Gast #2816185
Lesenswert?

Da Du noch nicht den AVR Typ genannt hast:

Bei einigen AVRs liegt JTAG auf Port C; wenn JTAG enabled (fuse) geht 
der Zugriff auf den Port nicht richtig

Solltest Du einen jungfräulichen Mega64 haben, ist da eventuell noch der 
"103"-Kompatibilitätsmodus an. Dann läuft Port-C auch nicht....

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