STK500 defekt?

Gast #2816059
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?
Gast
Wie bekomme ich sie dann ausgeschaltet? Eigentlich indem ich dann den 
Port-Pin einschalte oder??

Denn ich habe jetzt alle Kombinationen von PORTX und DDRX durch und 
keinen unterschied.
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
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
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
Ich gebe in solchen Fällen auch gerne mal 0xAA aus. Dann sollte jede 2. 
Led eingeschaltet sein. Man kann bei alles aus oder alles an vieles 
übersehen.
Gast
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.