Forum: Mikrocontroller und Digitale Elektronik Programm führt void Displ_out() nicht aus


von Steven Z. (steven84)


Angehängte Dateien:

Lesenswert?

Hallo, es ist mir ein Rätsel warum das Programm nicht in die Void 
funktion springt.


Kurz Erläuterung:
in While sollen die zeichen in die SEG1-6 geladen werden, beim Aufruf 
der Funktion  void Displ_out(); soll die
For schleife 8 mal durchlaufen werden um die Variable seg in das 
Schieberegsiter zu schieben. Das Problem was ich habe ist, das der 
Simulator nicht in die void funktion springt.
Ich komm nicht drauf, ist bestimmt wieder mal was ganz banales!!


Danke

vg

Steven
Ich muss korrigieren die touch.c ist fehlerhaft da fehlt was

es ist die 8 Kb große hab auch schon den aufruf in der while ohne void 
gemacht bin gerade dabei das durchzuspielen

: Bearbeitet durch User
von M. P. (phpmysqlfreak)


Lesenswert?

Nur kurz rüber geschaut, aber werden Funktionen nicht ohne das "void" 
davor aufgerufen? ;)

von Uwe B. (boerge) Benutzerseite


Lesenswert?

MoinMoin,

dieser Quelltext wird ohne Fehler/Warnungen übersetzt???

Wenn ja, dann (Glaskugel, ohne weiter nachdenken) rufst du Displ_out() 
gar nicht auf, sondern definierst es an der einen Stelle in main()... 
Zufall oder gewollt)

Grüße Uwe

von Martin B. (martin_b97)


Lesenswert?

Hallo,

weil:

- siehe vorheriger Beitrag
- der Aufruf in einem Block-Comment steckt (deswegen gibts wohl keinen 
Fehler)
- wenn ich es richtig sehe die Funktion Displ_Out() innerhalb von main() 
steht?

Gibt das keine Fehler beim kompilieren?

Martin

von Steven Z. (steven84)


Lesenswert?

Die 8Kb große *.c kompiliert Atmel studio6 ohne errors oder 
warnmeldung,das problem was ich jetzt habe ist das er in der Displ_out() 
die for schleife unendlich durchläuft :(

von Peter II (Gast)


Lesenswert?

Steven Zimmermann schrieb:
> Die 8Kb große *.c kompiliert Atmel studio6 ohne errors oder
> warnmeldung,das problem was ich jetzt habe ist das er in der Displ_out()
> die for schleife unendlich durchläuft :(

Funktion sollte man außerhalb von main anlegen!

von PittyJ (Gast)


Lesenswert?

Wie wäre es mit debuggen?
Gucken, was geht?
Überflüssige Teile auskommentiieren?
Zusätzliche Meldungen rein?


Wie haben wir das früher nur ohne Internet gemacht?

von Oliver (Gast)


Lesenswert?

Du brauchst ein C-Buch. Ganz dringend.

Es reicht einfach nicht, C-ähnliche Befehle mehr oder weniger sinnfrei 
aneinander zu reihen. Damit wird auch durch viel posten in einem Forum 
kein funktionierendes Programm.

Lies dir die Grundlagen über den Aufbau von C-Programmen an. Wie 
deklariert und definiert man Funktionen, und wie ruft man die auf.

Und ja, dabei kommt es auf jedes Zeichen an. Eins zu viel ist genauso 
schlecht wie eins zu wenig, auch wenn der Compiler nicht meckert.

Oliver

von Steven Z. (steven84)


Lesenswert?

^^ zu der Zeit hatte ich den Computer nur zum Spielen benutzt und war 
voll der Noob :D

von Steven Z. (steven84)


Lesenswert?

Ein C-buch habe ich schon und das hat mich schon sehr weit gebracht nur 
gewisse teile sind mir bis heute noch unklar, beziehungsweise haben sie 
sich mir noch nicht erschlossen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Steven Zimmermann schrieb:
> Ein C-buch habe ich schon und das hat mich schon sehr weit gebracht

Das ist eine interessante Definition von "sehr weit".

von Steven Z. (steven84)


Lesenswert?

Ich habs jetzt, hab die variable i zu x geändert (wird wahrscheinlich 
schon irgendwo benutzt) und den vergleich (...; x>=1;... gesetzt
jetzt springt mir der µC nicht mehr auf 255 was passiert ist wenn ich 
x>=0 setze.

Danke an euch

von Oliver (Gast)


Lesenswert?

Und jetzt nimmst du dir wieder dein C-Buch, liest das Kapitel zu 
Datentypen, und versuchst zu verstehen, warum die Schleife vorher nicht 
funktioniert hat. Am x für ein i lag es nicht ...

Oliver

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.