Forum: Mikrocontroller und Digitale Elektronik Funktion in Variable speichern und Variable in andere Funktion aufrufen


von Paul (Gast)


Lesenswert?

unsigned int x;

long int string()
{
char string[5] = "HALLO";
char i;
  for(i=0; i<6; i++)
{
 if(i==0)
{
switch(string[i])
{
case 'A':
 x = bitmuster_a();
 //usw.
}

void test(unsigned int x)
{
x;

}

void main()
{
test();

}


Hallo,
ich würde gerne wissen wie kann ich den Inhalt der Funktion bitmuster_a 
in Variable x speichern und diesen der Funktion Test() übergeben.Ist es 
möglich in switch variablen zu übergeben?
Ich habe es so programmiert jedoch passiert da garnichts.

vielen Dank im vorraus

von Marius W. (mw1987)


Lesenswert?

Lern erstmal programmieren bevor du weitermachst!

Ansonsten lautet das Stichwort Funktionszeiger.

MfG
Marius

von ich (Gast)


Lesenswert?

Sry, aber das was da steht ist totaler Schrott. Da stimmt ja überhaupt 
nichts.

>Ich habe es so programmiert jedoch passiert da garnichts.

Ja ist klar. Das Ding bekommt ja auch nicht kompiliert.
Buch über C kaufen und von ganz vorne durcharbeiten.

von Soll S. (soll)


Lesenswert?

hier Paul

Hab es versucht mit Funktionszeiger, bekomme da immer eine 
Fehlermeldung.

(Lern erstmal programmieren bevor du weitermachst!)

Bin ja dabei, deshalb brauch ich Hilfe!

Du meinst


unsigned int *x;

long int string()
{
char string[5] = "HALLO";
char i;
  for(i=0; i<6; i++)
{
 if(i==0)
{
switch(string[i])
{
case 'A':
 x = &bitmuster_a();
 //usw.
}


klappt leider auch nicht, wie gesagt habs versucht.

von Soll S. (soll)


Lesenswert?

ich hab es kompiliert,
ich muss glaub ich den kompletten code posten.
Sonst ist es schwierieg

von ich (Gast)


Lesenswert?

Noch ein kleiner Hinweis. C-Programme beginnen immer mit der main() 
Funktion.

Was passiert bei dir:

1. Programm startet mit main()
2. Hier wird die Funktion test() aufgerufen. (übrigens entweder falsch 
definiert oder falsch verwendet )
3. In der Funktion test() passiert nichts.
4. Programm springt zurück in die main() Funktion.
5. Es passiert in der main()-Funktion nichts, da nichts weiter in der 
Funktion enthalten ist.
6. Programm endet.

von Klaus W. (mfgkw)


Lesenswert?

Bevor ich versuche, da etwas zu entziffern:
- Überlege doch bitte, was du willst
- Formuliere das verständlich
- Formatiere deine Quelltexte lesbar
- Frage sinnvoll
- Zeige ganze Quelltexte
- Und bleibe bitte bei einem Namen

So wie bisher stiftet das nur Generve.

Also Reset, und streiche nicht 3000 Mark ein.

von Klaus W. (mfgkw)


Lesenswert?

PS: für die elementarsten Grundlagen gibt es auch Bücher.

von Soll S. (soll)


Lesenswert?

folgenden Sachverhalt:

Ich möchte eine Led Anzeige betreiben und habe für jeden einzelnen 
Buchstaben das entsprechende Bitmuster definiert.

anhand der char string[] wird verglichen an welcher Stelle sich die 
Zeichen befinden.

 void string()
{
char string[5] = "ABCDE";
char i;
  for(i=0; i<6; i++)
{
 if(i==0)
{
switch(string[i])
{
case 'A':
 var1 = bitmuster_a();
 break;
}}
switch(string[i])
{
if (i==1)
{
case 'B':
 var2 = bitmuster_b();
 break;
}}
switch(string[i])
{
if (i==2)
{
case 'C':
 var3 = bitmuster_c();
 break;
}}
switch(string[i])
{
if (i==3)
{
case 'd':
 var4 = bitmuster_d();
 break;
}}
switch(string[i])
{
if (i==4)
{
case 'E':
 var5 = bitmuster_e();
 break;

}}}}

wenn bsp. A sich an erster Stelle des Strings befindet, so wird das 
Bitmuster welches in Funktion "bitmuster_a" befindet aufgerufen und soll 
in var1 gespeichert werden. Das soll an die Funktion test() übergeben 
werden. Ich möchte halt nur wissen wie kann´ich dieses Bitmuster in der 
var1 speichern und einer anderen Funktion übergeben bzw. aufrufen.

danke für eure Geduld

von ich (Gast)


Lesenswert?

Ich kann nur immer wieder auf ein C-Buch hinweisen.
LCD-Libs gibt es auch wie Sand am Meer. Das Rad muss nicht neu erfunden 
werden.

Dieses magische Bitmuster speichert man in ein Array. Die Verknüpfung 
zwischen den Buchstaben A,B,C,D und entsprechenden Zahlen, die ja viel 
einfacher zu handhaben sind, erfolgt über die ASCII-Tabelle. Eine 
switch/case Anweisung für jeden einzelnen Buchstaben (klein/groß) ist 
blub.

Wie gesagt C-Buch / LCD-Libs. Gibt es beides wie Sand am Meer........

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.