@Matthias habe deinen Code mal probieert und er funktioniert, dafür erstmal vielen Dank!
@Felix ..habe noch mal den Code wie er funktioniert reingestellt... ich habe das mit dieser für mich tiefgreifenden Bitmanipulation auch wenn es nur ne Abfrage ist, echt noch nicht so gut raus!!! Aber ich arbeite dran! Versprochen.Mich würde noch mal interessieren was Deine Funktion genau macht???
Vielen Dank euch beiden Grüße Stephan
EDIT:
Code:
int anzahl_Zyl(void) //fragt BP1-PB4 ab und giebt Einstellung Zylinderanzahl zurück
{
DDRB |= 0x00; //0000 0000 -> 0 TIMER && Z-Interface ZYL 1 ; 1-4 BITs Portabfrage Anzahl Zylinder ,5 LCD on/off , 5-7 ISP
int a = 0;
int test ;
test=PINB; // Das Register in einer Variable speichern
test &=0b00011110; //unwichtige Bits ausmaskieren
switch(test) //Switch case Abfrage
{
case 0b00000010: a=1;break;
case 0b00000100: a=2;break;
case 0b00000110: a=3;break;
case 0b00001000: a=4;break;
case 0b00001010: a=5;break;
case 0b00001100: a=6;break;
case 0b00001110: a=7;break;
case 0b00010000: a=8;break;
case 0b00010010: a=9;break;
case 0b00010100: a=10;break;
case 0b00010110: a=11;break;
case 0b00011000: a=12;break;
}
return a;
}
@Felix : Ich habe es glaube ich verstanden!!?? Dein Code funktioniert auch, habe es gerade getestet!
Lesezeichen