Du hast natürlich schlicht die Warnung unterschlagen, die damit auch
noch zusammenhängt:
warning: "PA0" redefined
PA0 ist in <avr/io.h> definiert, du versuchst hier, es neu zu
definieren. OK, das würde ja zur Not noch funktionieren -- aber dann
benennst du auch noch einen formalen Funktionsparameter genau so. Was
nach dem Präprozessor rauskommt ist:
uint16_t SpannungWandeln(uint8_t (1<<0))
{
...
}
Das hat also alles gar nichts damit zu tun, dass er "unit8_t" nicht
kennen würde.
. verzichte darauf, Systemkonstanten wie PA0 neu zu definieren
. werde dir darüber einig, wie der Parameter deiner Funktion
heißen soll, jedenfalls bitte nicht PA0; du kannst die Funktion
ja mit (1 << MUX0) als aktuellem Parameter aufrufen, aber der
formale Parameter muss ein einfacher Bezeichner sein