Versuch mal
Code:int main (void) { ... wait_for_key((uint8_t*)&PINC, 0); ... }
Hi, ich brauche oft die funktion, dass ein programm auf einen tastendruck wartet.
Dazu habe ich mir das hier geschrieben:
Ich bekomme beim kompilieren keine errors, nur ein warning, dass ich einen pointer ohne cast mache. Ich habe keine Ahnung wo ich den cast hinmachen soll, aber ich glaube das ist sowieso nicht das einzige problem, ich denk da is was mit der übergabe des PIN-registers falsch.Code:void wait_for_key (uint8_t *inputreg, uint8_t inputbit) { do{} while(bit_is_set(*inputreg, inputbit)); _delay_ms(50); do{} while(bit_is_clear(*inputreg, inputbit)); _delay_ms(50); } Aufruf: int main (void) { ... wait_for_key(PINC, 0); ... }
Wenn ich das programm auf den microcontroller spiele, reagiert er einfach nicht auf den Tastendruck.
Könnt ihr mir sagen was an meinem programm falsch ist?
lg Christoph
Versuch mal
Code:int main (void) { ... wait_for_key((uint8_t*)&PINC, 0); ... }
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Danke es hat funktioniert!!
Kann man das Register irgendwie anders (außer mit Pointern) übergeben?
Dass man sich den cast erspart?
lg christoph
In deinem Fall nicht wirklich. Deine function braucht nunmal die Adresse des Ports und nicht den Inhalt, also eben den Pointer.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
ok, macht nichts, danke!
Lesezeichen