Verfälscht externer Quarz Bitmasken?

OP #2130285
Lesenswert?

Hi Leutz,
möchte mit dem AVR-Testboard (MK2 mit Atmega8) schon mal testweise ein 
Programm erstellen, welches dann später leicht abgewandelt auf einem 
Attiny13 lauffähig ist.
Daher benutze ich auf dem AVR-Testboard natürlich ausschließlich den 
Port B. Dieser wird belegt mit zwei digitalen Eingängen, einem digitalen 
Ausgang und einem PWM-Ausgang.
Nun möchte ich logischerweise Bitmuster abfragen, um diese als 
Einschaltbedingungen für den digitalen Ausgang zu nutzen.
Kann es sein, daß mir der externe Quarz (dieser hängt ja an PB6 und PB7)
da hineinfunkt und ich nicht direkt Bitmuster abfragen kann?
Hier mal als Beispiel:

DDRB=0b00000011;   //Bit 1 und 2 sind Ausgänge
PORTB=0b11111100;  //Pull UP Bit 3-8 auf EIN
.
.
.
if ((Variable1==1) & (!(PINB==0b11111111)))
   PORTB=0xFF;

Hier soll abgefragt werden, ob Variable 1 gesetzt ist und gleichzeitig 
kein Taster gedrückt ist.
Dies würde, wenn ich dies als PIND deklariere, tadellos funktionieren.
Bei PINB jedoch klappt das nicht, wie ich mir das wünsche.
Weiß da jemand Rat?
Danke schon mal :-).
Daniel
Gast #2130294
Lesenswert?

Hi

>Kann es sein, daß mir der externe Quarz (dieser hängt ja an PB6 und PB7)
>da hineinfunkt und ich nicht direkt Bitmuster abfragen kann?

Nicht der Takt. Bit 6 und 7 gibt es nicht.

Datenblatt:

If PB7 is used as a clock pin, DDB7, PORTB7 and PINB7 will all read 0.

MfG Spess
#2130521
Lesenswert?

Daniel Lo schrieb:
> Daher benutze ich auf dem AVR-Testboard natürlich ausschließlich den
> Port B. Dieser wird belegt mit zwei digitalen Eingängen, einem digitalen
> Ausgang und einem PWM-Ausgang.

Dann fragt man eben nur die beiden Eingänge ab. Das Isolieren bestimmter 
Bits nennt sich Maskieren (& - Operator). Danach sind alle unnützen Bits 
egal.
Z.B. Pin 0 und 7:
1
  uint8_t inval = PINB & (1<<PB0 | 1<<PB7);


Peter

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