PORTx und DDRx - Programmierung

Gast #5308684
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!
Gast #5308692
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.