Simpler Fehler beim Programieren

Gast #2522474
Hallo,

ich habe gerade angefangen mit µC-programmieren angefangen und mache 
gerade das Tutorial durch und Simuliere das Ergebnis mit AVR-Studio 5.

Nun hab ich ein kleines Programm zum testen, aber das funktioniert nicht 
und ich weiß, dass es nur ne kleinigkeit ist, ich komme aber nicht 
drauf.
1
int main(void)
2
{
3
  DDRB = 0xFF;
4
  DDRD = 0x00;
5
  PORTB = 0x00;
6
  PORTD = 0xFF;
7
    while(1)
8
    {
9
      if (PIND & 0x01)
10
      {
11
        PORTB |= (1 << 0);
12
      }
13
      else
14
      {
15
        PORTB &= ~(1 << 0);
16
      }
17
      PORTD++;      
18
    }
19
}

Ich will, PORTD1 = PORTB1. Aber das einlesen von PORTD funkioniert nicht 
wirklich, obwohl es so im Tutorial steht.

Kann mir jemand helfen? Hab auch schon mit if=(PIND & 0xFF) probiert, 
aber nix geht :(
Gast #2522488
Sry, mein Fehler, es soll PORTD0 = PORTB0;
PORTD++ soll bewirken, dass der Zustand ständig wechselt.

Aber das problem ist ja schon vorher, bei der if(PIN &0x01), dass es 
trotz gesetztes Bit nicht in die Schleife springt
Gast #2522502
Cris schrieb:
> Aber das problem ist ja schon vorher, bei der if(PIN &0x01), dass es
> trotz gesetztes Bit nicht in die Schleife springt

Und woran siehst du das?

Cris schrieb:
> PORTD++ soll bewirken, dass der Zustand ständig wechselt.

Lass das mal weg. Der Rest sollte funktionieren.

Oliver
#2522506
Cris schrieb:

> PORTD++ soll bewirken, dass der Zustand ständig wechselt.

Ja was jetzt?
Ich dachte, du hast an PIND-1 einen Taster hängen?

Den Pullup kannst du einschalten/aussschalten bis du schwarz wirst. Der 
sorgt nur dafür, dass die offene Leitung einen gesicherten Pegel 
einnimmt. Aber eine offene Leitung per se (also ohne Pullup) hat erst 
mal keinen definierten Pegel. Nicht 1 und auch nicht 0

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.