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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.