Forum: Mikrocontroller und Digitale Elektronik If abfrage wird in der Schleife nicht wiederholt


von Gast (Gast)


Lesenswert?

Hy
ich programmiere gerade einen atmega 8 in c.
Dabei habe ich mehrere if abfragen in einer schleife geschrieben und 
diese sollten sich eigentlich beim wiederholen der schleife 
aktualisieren. Dies tuhen sie aber nicht.
Jetzt habe ich schon ein wenig rumgespielt, und habe meine abfragen zum 
test in die mainloop geschrieben und dort hat es nun funktioniert.
Ich bin daher etwas ratlos und hoffe auf eure hilfe
wenn jemand ideen oder tips hat dann bitte helft mir.

von Johannes M. (johnny-m)


Lesenswert?

1.: Vor dem nächsten Posting die Foren-Regeln lesen!

2.: Ohne Dein Programm zu sehen, kann man dazu gar nichts vernünftiges 
sagen.

von Stephan H. (stephan-)


Lesenswert?

zu jedem If gehört ein Then und EndIf !!
Strukturierte Programmierung !!
Den Quelltext der If Anweisung einrücken, dann behält man den Überblick
Aber ohne Dein Programm wird hier niemand was dazu sagen können.

von Johannes M. (johnny-m)


Lesenswert?

Stephan Henning wrote:
> zu jedem If gehört ein Then und EndIf !!
Nö, in C nicht!

von Gast (Gast)


Lesenswert?

achso
ich habe den code aus firmeninternen gründen auf einem anderen rechner, 
der keinen i net zugang haben darf, daher ist es momentan schwer den 
code hochzuladen, ich versuche jedoch dieses im laufe des tages nach 
hole

von Peter D. (peda)


Lesenswert?

volatile


Peter

von Johannes M. (johnny-m)


Lesenswert?

> ich habe den code aus firmeninternen gründen auf einem anderen rechner
Jo, die Foren-Regeln, die Du offensichtlich immer noch nicht gelesen 
hast, sind aber nicht auf dem anderen Rechner...

von Stephan H. (stephan-)


Lesenswert?

@Johannes,
> zu jedem If gehört ein Then und EndIf !!
Nö, in C nicht!

wie auch immer Du das machst, unser Kandidat hat offensichtlich den 
Überblick verloren, und den hat man nur mit Struktur.
Also sollte man Then und EndIf nutzen um sich eine ordentliche 
Programmierung an zu gewöhnen.

Ich frage jetzt nicht warum ein IF wenn kein Then.
Sowas nutze ich in ASM nicht !!!
Du kannst doch machen was Du willst. Es ist Dein Proggi.
Neulingen muß man aber keine schlechten Gewohnheiten beibringen !!

von ARM-Fan (Gast)


Lesenswert?

>Also sollte man Then und EndIf nutzen um sich eine ordentliche
>Programmierung an zu gewöhnen.

Nö, immer noch nich! In C gibt's das nicht!
Und Basic für 'nen ordentlichen Programmierstil zu empfehlen...

Der OP programmiert offensichtlich in C:

>ich programmiere gerade einen atmega 8 in c.

von jens (Gast)


Lesenswert?

>Ich frage jetzt nicht warum ein IF wenn kein Then.
C kennt weder then noch endif ;-)

if (Bedingung){
 MachWas;
}
Mit den Klammern kann man allerdings auch struktuieren.

Gruß

Jens

von T. H. (pumpkin) Benutzerseite


Lesenswert?

Gast wrote:
> ich habe den code aus firmeninternen gründen auf einem anderen rechner,
> der keinen i net zugang haben darf,

Warum nur?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Gast wrote:
> achso
> ich habe den code aus firmeninternen gründen auf einem anderen rechner,
> der keinen i net zugang haben darf, daher ist es momentan schwer den
> code hochzuladen, ich versuche jedoch dieses im laufe des tages nach
> hole

Der Compiler nimmt wahrscheinlich an, dass sich in der Schleife die 
Bedingung der if-Abfrage nicht ändert und optimiert das Ganze.

Beachte den Hinweis auf volatile als Schlüsselwort vor Variablen und 
Funktionen, d.h. du macht dem Compiler bekannt, dass sich z.B. eine 
Variable anderswo (Interrupt?) ändert.

Wenn du das nicht hinbekommst, dann denk dir einen Ersatzcode aus, 
Teste, ob das Problem reproduzierbar ist. Porte den Ersatzcode.

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.