Programmierproblem

Gast #29384
Hi Leute

vielleicht kann mir einer bei meinem kleinen Problem helfen.
Und zwar habe ich verschiedene Ports verwendet, um den Datenbus eines 
Displays anzusteuern also z.B. LCD0 = P4.1,
LCD1 = P4.2, LCD2 = P5.0 usw.
Jetzt möchte ich gerne eine 8 Bit Variable erzeugen, deren
einzelnen Bits für das entsprechende Bit LCD0 bis LCD7 des Datenbusses 
steht. Dann muss einen Zuordnung erfolgen, die den Wert von LCD0 z.B. 
auf den Port P4.1 weitergibt.
Damit könnte ich dann einen Hex Wert der Variable übergeben, wodurch ich 
alle Ports sofort ansprechen kann.
Falls irgendjemand eine Idee hat, wäre ich für einen Code
in C dankbar (Assembler ist nicht brauchbar für mich);
mfg Tutti
Gast #29385
Du kannst es mal so probieren:

void output(unsigned char var)
if (var&1)
{
  sbi(Portx,piny);
}
else
{
  cbi(Portx,piny);
}
if (var&(1<<1));
{
  sbi(Portx,piny);
}
else
{
  cbi(Portx,piny);
}
if (var&(1<<2));
{
.
.
.
.
if (var&(1<<7));
{
  sbi(Portx,piny);
}
else
{
  cbi(Portx,piny);
}
}

So in etwa müsste es gehn. Ist zwar gewiss nicht die beste lösung, aber 
müsste gehn.
Für eine elegantere Lösung währe ich auch Dankbar.

Gruß, Florian

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.