Gast
#2898169
Hallo zusammen,
bei der Weiterentwicklung meines Projektes stosse ich an einen Punkt an
dem ich jetzt den 4.Tag hänge. Ich muß dazu sagen mit "C" arbeite zwar
schon ein paar Tage, habe aber noch so meine Probleme wie Ihr lesen
könnt.
zu den Randbedingungen:
Mit einem Taster/ auf Tastendruck zähle ich die Variable Modul je eins
hoch. Mit einer switch case verzweige ich auf die jeweilige zuständige
Funkion. Das geht bei Modul 0 los und endet bei Modul 4. Wenn alle ADC
Pinne belegt sind geht alles perfekt.
void Modulwahl (int Modul){
switch (Modul){
case 0 : EIMSK &= ~(1<<INT2);
break;
case 1 : Modul_1_init();
break;
case 2 : Modul_2_init();
break;
case 3 : Modul_3_init();
break;
case 4 : Modul_4_init();
break;
default:
break;
}
}
Da nicht von Anfnag an alle Modulanschlüsse (ADC) belegt werden können,
möchte ich die belegten ADC mit Jumper quasi frei/aufschalten. Modul 0
und 1 bleiben aber ohne Jumper und sind so immer anwählbar.
So werte ich nach hochtasten der Variable "Modul" auch den zuständigen
Jumper aus. Wenn jetzt z.B. Jumper 2 und 3 aber nicht gesetzt sind soll
die Auswertung dies bemerken und den nächsten belegten ADC anspringen.
Nach mehrfachem Tastendruck also vom Start mit Modul 0 nach Tastendruck
auf Modul 1 und nach weiterem Tastendruck Modul 2 und 3 überspringen (da
Jumper nicht gesetzt) und Modul 4 anspringen
Genau da hänge ich, ich habe einiges mit if, Else und elseif probiert
komme aber nicht weiter.
So habe ich angefangen, wenn der Jumper 2 gesteckt ist und die Variable
Modul den Wert 2 enthält dann springe in die Funktion Modulauswahl und
initialisiere Modul 2.
if ((!IS_RESET(LDA_Jumper)) && (Modul == 2)){
Modulwahl(Modul);
}
else {
Modul++;
}
ansonsten wenn die Bedingung nicht erfüllt ist zähle die Variable Modul
+1 hoch und prüfe erneut.
Ganau da hänge ich, ...prüfe erneut...Hirnwindungskurzschluss.....ich
brauch da mal einen Tipp, vielleicht habe ich mich da auch in einer
Auswertemöglichkeit verrant die nicht zielführend ist. Kann man einfach
zurück an den Anfang der Auswertgun zurück springen ??.
Ich werde das ganze nochmal auf einem Blatt skitzzieren...ein Tipp wäre
super.
Achja ich verwende einen ATMega1284P mit 16MHZ, AVR Studio 4.19
Danke
Peter