Forum: Mikrocontroller und Digitale Elektronik Programmierproblem


von Tutti (Gast)


Lesenswert?

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

von Florian Pfanner (Gast)


Lesenswert?

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

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.