Hallo,
okay, hat was mit ASURO zu tun, aber ich denke, hier ist C gravierender. Und zwar meine Frage: kann mir einer diesen Codeschnipsel aus der asuro.c erklären? Das dürfte mir bei der programmierung meines ersten Bots helfen, den ich jetzt bald in Angriff nehme. Der Codeschnipsel:
Code:
/* Set motor direction */
inline void MotorDir(unsigned char left_dir, unsigned char right_dir)
{
	PORTD = (PORTD &~ ((1 << PD4) | (1 << PD5))) | left_dir;
	PORTB = (PORTB &~ ((1 << PB4) | (1 << PB5))) | right_dir;
}
Meine Vermutungen dazu.
1. Zeile Kommentar zum Lesen
2. Zeile Hier wird wohl eine Funktion aufgemacht?
3. Zeile Hier wird gesagt, dass PORT D gemeint ist. dann versteh ich dieses &~ nicht - was bedeutet das? So. Dann 1 << PD4. Schätze, dass eben Pin 4 an Port D irgendiwe aktiviert werden soll? Und wofür ist dieser | Strich in der Mitte?
Das Ende versteh ich wieder, da wird halt definiert, dass es sich bei dieser Ausgabefolge um das handelt, was bei right_dir berücksichtigt werden soll.
4. Zeile eigentlich halt die gleichen Fragen...

Kann mir das irgendjemand erklären?