Forum: Mikrocontroller und Digitale Elektronik PORTx und DDRx - Programmierung


von Ma Z. (Gast)


Lesenswert?

Hallo,

ich habe folgende Aufgabenstellung:

gegeben ist ein Controller mit LEDs dran und wenn ich z.B. Button A 
drücke, dann leuchten nur die letzten drei LEDs und bei Button B 
unterschiedlich.
Mein Programm muss so aussehen:

int main(void){
   PORTA = 0b10101100;
   PORTB = 0b00000111;

   DDRA  = ________;
   DDRB  = ________;

while(1)  {

   if( _____ ) {
   PORTA = __________________________;

} }  }


Da wo "_____" muss ich das entsprechende eintragen. Meine Frage ist, ob 
das so richtig ist:

DDRA = 0b11111111;
DDRB = 0b00000111;

if( i < 9 )
PORTA = ((PINB & 0b00000111) | (PINB & 0b10101100));



Vielen Dank im Voraus!

von Jim M. (turboj)


Lesenswert?

Schaltplan, bitte. Wir sehen nicht wo was wie angeschlossen ist.

Sowohl Buttons als auch LEDs könnten aktiv high oder  aktiv low 
geschaltet sein.

von Ma Z. (Gast)


Lesenswert?

Jim M. schrieb:
> Schaltplan, bitte. Wir sehen nicht wo was wie angeschlossen ist.
>
> Sowohl Buttons als auch LEDs könnten aktiv high oder  aktiv low
> geschaltet sein.



Weder Schaltplan noch sonst irgendwas ist gegeben. Ich habe die Aufgabe 
genauso bekommen. LEDs sind aktiv High bei 1 aber an sich LOW.
Deswegen auch die Frage, weil ich nicht weiß wie man es lösen soll

von Matze (Gast)


Lesenswert?

Genau. Und wenn es nur darum geht die Aufgabe nur in der Theorie zu 
lösen und das ein Problem darstellst, dann lies dir besser nochmal das 
hier

https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

durch.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.