Forum: Mikrocontroller und Digitale Elektronik Frage zu Input und zu verständinssprob


von Bernhard Efler (Gast)


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

von crazy horse (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.