Hallo!
Wie kann ich ein ein Register (PIN oder PORT) in ein Unterprogramm übergeben.
Ich weiß dass es mit Pointern geht, aber da brauche ich einen Cast, das will ich vermeiden.

bei den Funktionen:

Code:
bit_is_set(PINB, 5)
bit_is_clear(PINC, 2)
Geht das ja auch.

Ich habe nach ihnen in den Include datein gesucht, aber nichts gefunden, was ich verstanden habe, die includedatein schaun gar nicht wie C aus, ich checks überhaupt nicht.

Diese Funktion will ich schreiben (ohne Cast beim Aufruf):

Code:
void wait_for_key (uint8_t *inputreg, uint8_t inputbit)		// Pin Register über Pointer einlesen
{	do{}
	while(bit_is_set(*inputreg, inputbit));					// Auf Tastendruck warten
	_delay_ms(50);											// Entprellung

	do{}
	while(bit_is_clear(*inputreg, inputbit));				// Aufs loslassen warten
	_delay_ms(50);											// Entprellung
}

Aufruf:

int main(void)
{  ...
   wait_for_key((uint8_t*)&PINC, 0);
   ...
}
lg Christoph