Schalter an XTAL1+2 möglich?

Gast #268358
Lesenswert?

Ich habe Probleme mit meinem ATMEGA8. Ich habe zwei Schalter an XTAL1+2
über 4,7k(+5V) angeschlossen. Interner Oszillator ist auf 8MHz
gestellt. Es ist also kein externer Oszi vorhanden und laut Datenblatt
kann man die freien Ports(PB6+PB7) dann auch als I/O Pins nutzen. Es
liegen definitiv 5V an den beiden Pins bei geöffnetem Schalter.
Allerdings tritt in meiner Software folgendes Problem auf:

//FuseBits: 0xD984

DDRB=0b00111111; //7..6 Eingang, 5..0 Ausgang
PORTB=0b11111111;//Pull-Up aktivieren
x=PORTB&11000000;//Maskierung der beiden SChalter

while(x!=0){...// ! Hier ist das Problem!

Normalerweise sollte die SChleife solange ausgeführt werden bis beide
Schalter gleichzeitig gedrückt werden und PB7+6 auf Masse(0)ziehen. Aus
irgendwelchen Gründen bricht er die Schleife aber sofort ab, was
bedeutet, dass der µP PB7+6 schon als 0 deutet obwohl High-Pegel
anliegt.
Kann mir da jemand weiter helfen oder hat jemand ähliche Probleme mit
Schaltern an Xtal gehabt? Muss man vielleicht noch andere Register
(de)aktivieren?
Danke schon mal für die Antworten!
Gast #268362
Lesenswert?

Das gleiche kann ich doch auch mit Einlesen von PORTB tun, tut mit leid,
aber ich seh immer noch nicht den Unterschied zwischen PINB nd PORTB.
Und das Programm läuft auch nicht, wenn ich PINB in die while-Schleife
einfüge. Hab ich gerade ausprobiert...
Gast #268363
Lesenswert?

Entschuldigung, kleiner Eingabefehler von mir. Maskierung mit PINB
funktioniert jetzt. Vielen Dank für den Tip. Ist mir nur schleierhaft,
warum das mit PORTB nicht geklappt hat, weil ich sonst in meinen
Programmen immer so gearbeitet habe
Gast #268365
Lesenswert?

Wird auch nie laufen, wenn Du PINB mit Elf-Millionen verUNDest ...

> aber ich seh immer noch nicht den Unterschied zwischen PINB nd
> PORTB.

Entweder Dirk und Werner glauben oder im selber sehen - im datenblatt.

Gruß, Stefan

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