Frage zu Input und zu verständinssprob

Gast #20890
Lesenswert?

Hi!

als erstes die leichter zu beantowrende frage!

wenn ich den CCDB mit 00 fülle ist der gesammte port B als eingang 
definiert!

ok!

wenn jetzt zB pin 0 mit ground kurzgeschlossen habe und ich lese von 
PINA den pin 0 dann find ich in diesem register eine 0, oder?
das heist wenn pin 0 keinen kontakt hat find ich im PINA register eine 
1!

stimmt das?

so, und jetzt etwas was nicht in meinen schädel will:

ich programmier einen 8515 in C und habe folgendes geschrieben!

if (((PIND & 0b1) == 1) && ((PIND & 0b10) == 1))
  { (PORTB &= ~0b1); }
  else
  { (PORTB |= 0b1); }

allerdings funktioniert das logische und nicht! ich kann machen was ich 
will, der MC beachtet es nicht!!

ich bin echt total ratlos!

weis wer woran das liegen kann?

Montolio
Gast #20891
Lesenswert?

durch dein Programm durchzusteigen, fehlt mir im Moment die Lust. ABer 
vielleicht liegt es an deinem 1. Problem. Wenn du einen Port als Eingang 
definierst, mußt du entweder die internen Pullups aktivieren 
(Portx.x=1), oder einen externen Pullup setzen oder von außen einen 
definierten H-Pegel anlegen. Der Zustand von PINx.x ist sonst 
undefiniert und kann sogar zu Programmabstürzen führen.
Unbenutzte Ports immer entweder als Ausgang definieren oder den Pullup 
einschalten.

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