Problem mit Schleife in Atmel-C

Hallo,

nach langer Suche habe ich in einem Programm ein Fehler lokalisieren=20 k=F6nnen, nun suche ich einen Weg um diesen zu umgehen.

Ich habe in einem C-Programm f=FCr einen ATMega8-16 eine Endlosschleife i= m=20 Main-Teil:

=3D=3D=3D int main(void) { [initialisierungen] while(1) { test(); } } =3D=3D=3D

test sieht so aus:

=3D=3D=3D void test(void) { if (irq-variable) { PORTD |=3D (1

Reply to
Dschen Reinecke
Loading thread data ...

: Hallo,

: nach langer Suche habe ich in einem Programm ein Fehler lokalisieren : k?nnen, nun suche ich einen Weg um diesen zu umgehen.

: Ich habe in einem C-Programm f?r einen ATMega8-16 eine Endlosschleife im ...

: Ich habe herausgefunden, da? es mit den GCC-Optimierungen zusammenh?ngt, : ein -O0 also Parameter l?sst dies klappen, aber an anderer Stelle : brauche ich ich die Optimierungen.

: Wie kann ich es sonst noch in eine Funktion auslagern?

Ist die Variable mit "volatile" deklariert?

Reply to
Uwe Bonnes
[...]

richtig waere "volatile const"

Reply to
Juergen Hannappel

Das habe ich zwischenzeitlich auch rausgefunden :-)

Allerdings klappt das nur im Original-Programm, nicht in der hier=20 geposteten Test-Abschnitt.

Welcher Teil mu=DF so deklariert sein? Die 1 f=FCr die while-Schleife? Od= er=20 die 'irq-variable' diese aber wohl nicht als const?

Danke schonmal f=FCr die Antworten!

Ciao Dschen

--=20 Dschen Reinecke

=3D=3D=3D der mit dem Namen aus China =3D=3D=3D

formatting link
mailto: snipped-for-privacy@dschen.de

Reply to
Dschen Reinecke

[...]

Die irq-variable! Sie ist fuer die "test"-Funktion volatile, denn sie kann sich ohne vom "test" beinflusst zu werden aendern, und const, weil test sie nur lesen, nicht aber beschreiben soll.

Reply to
Juergen Hannappel

Juergen Hannappel schrieb...

Das const w=FCrde ich weglassen, da sonst die IRQ-Routine selbst die=20 Variable nicht beschreiben darf oder vorher const wegcasten mu=DF.=20 Ansonsten macht IMO const volatile f=FCr read-only hardware-register Sinn.

- Heinz

Reply to
Heinz Saathoff

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.