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?
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.