Der "Fehler" liegt wohl eher hier:

#define VORNE_AUS PORTD&=~VORNE;

Nach der Ersetzung durch den Preprozessor würde das dann so aussehen:

#define VORNE_AUS PORTD&=~1<<PD5;

Die Bindung der Tilde ~ an die 1 ist größer als bei Shift:

http://de.wikibooks.org/wiki/C-Progr...Priorit%C3%A4t

Das vermute ich mal als Ursache. Im Zweifel immer klammern!

Gruß

mic