I/O Frage zum Atmel Studio 6 Debugger

OP #3387938
Lesenswert?

Hallo zusammen,
ich als absoluter Anfänger benötige mal Eure Hilfe zum
Atmel Studio 6 Debugger.

Ich habe folgendes kleine Programm

#include <avr/io.h>

int main(void)
{
DDRB = (1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB3) | (1 << 
DDB4);
while(1)
    {
  PORTB = 0x00;  // mal alle Ausgänge des Port B auf 0
  PORTB |= (1<<PB1);    // LED Gelb einschalten

    }
}
Meiner Meinung nach werden:
- die Ausgäne 0 - 4 des Ports B auf Richtung Ausgabe gesetzt.
- dann alle Ausgänge von PORT B auf 0
- zum Schluss wird der Port B1 auf 1 gesetzt => die LED leuchtet

Wenn ich aber den Simulator starte und die Zeile:
PORTB |= (1<<PB1);ausführe,
dann erhalte ich im Simulator folgende Anzeige ( s.Bild )

Was ich nicht verstehe, warum wird PINB1 auch auf 1 gesetzt ?

Gruß
Juppy

P.S. Sorry, keine Ahnung warum das Bild 2x vorkommt :-(
Angehängte Dateien:
Gast #3387954
Lesenswert?

Hi

>Was ich nicht verstehe, warum wird PINB1 auch auf 1 gesetzt ?

Das PIN-Register spiegelt den Zustand der Pins wieder. Wenn du einen Pin 
per Portregister auf 1 setzt wird auch das entsprechende Bit im 
Pin-Register gesetzt.

MfG Spess
OP #3387974
Lesenswert?

spess53 schrieb:
> Hi
>
>>Was ich nicht verstehe, warum wird PINB1 auch auf 1 gesetzt ?
>
> Das PIN-Register spiegelt den Zustand der Pins wieder. Wenn du einen Pin
> per Portregister auf 1 setzt wird auch das entsprechende Bit im
> Pin-Register gesetzt.
>
> MfG Spess

Hallo zusammen,
ist das generell so, oder ist meine Schreibweise nur falsch ?
Und gilt das auch anders herum ?

Sorry mein Englisch ist nicht das allerbeste ;-)

Vielleicht noch kurz eine andere Frage zum Debugger.
Wenn ich nach der Zeile
PORTB |= (1<<PB1);
noch
PORTB |= (1<<PB0);
schreibe und den Debugger starte und Schritt für Schritt durch das
Programm gehe, dann ändert sich die Anzeige erst nach der neuen Zeile
(PORTB |= (1<<PB0);) und nicht schon nach der ersten (PORTB |= 
(1<<PB1);)
Warum ist das so ?

Gruß
Juppy

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