Gast
#3051212
Hallo Leute,
ich versuche neuerdings Microcontroller zu programmieren allerdings habe
ich damit leider so meine Schwierigkeiten.
In der Suche habe ich nichts gefunden daher hier meine Frage:
In einer Musterlösung einer Aufgabe habe ich folgenes gelesen:
PinA&(1<<PA0)
Dabei ist mir aufgefallen, dass ich scheinbar die Shift funktion nicht
so ganz verstehe.
Ich würde diese Zeile so aufschlüsseln:
(1<<PA0)-> die 1 wird um die wertigkeit von PA0 nach links verschoben->
und dann wird das Ergebnis von(1<<PA0)[in meinen Augen wäre das dann
eine 10] bitweise mit PinA verknüpft
Das gesamt Programm sieht in der Lösung dann folgendermaßen aus:
int main(){
DDRA = 0x00; // Eingänge
DDRB = 0xFF; //Ausgänge
while(1)
{
if(PINA &(1<<PA0))
{
PORTB = 0xFF;
}
if(PINA &(1<<PA1))
{
PORTB = 0x00;
}
_delay_ms(300);
}
}
Es soll folgende Funktion erfüllen:
Beim drücken des Tasters an Pa0 sollen alle LED's an Port B an gehen und
beim drücken des Tasters an PA1 wieder ausgehen.
Ich hoffe meine Frage ist klar genug gestellt, dass auch einer außerhalb
meines Kopfes sie verstehen kann.
Freue mich auf eure Antworten!
Viele Grüße
Philipp