@Fieke:
Ausgänge kann man nicht lesen, sondern nur Eingänge.

Mit ...
Code:
// Eingänge definieren:
	DDRA &= ~E_INT1;				// PA4 (IT1) als Eingang definieren
//	PORTA |= E_INT1;				// evtl. Pullup für PA4
	DDRC &= ~(SCL | SDA);			// PC0, PC1 als Eingänge definieren
//	PORTC |= (SCL | SDA);			// evtl. Pullups für PC0, PC1
... definiert man SCL, SDA und INT1 als Eingänge.

Abfragen kann man sie im Programm mit ...
Code:
// Abfrage der Pins:
	temp1 = PINA & E_INT1;
	temp2 = PINC & SCL;
	temp3 = PINC & SDA;
Den Wert von tempX kann man nicht mit WriteInteger o.ä. ausgeben, weil das nur ein Ja/Nein-Wert ist. tempX ist also entweder 0 oder <> 0. Damit erkennt der Roboter dann die Linie, der er folgen soll.
Die Abfrage im Programm erfolgt dann mit ...

if (tempX) {tuwas};
oder ...
if (!tempX) {tuwasanderes};

Gruß Dirk