Gast
#285755
Hallo zusammen,
ich sitze an einem Programm auf einem ATMega128,
PC-Entwicklungsumgebung, gcc, Studio4 etc. Durch Zufall ist mir beim
Siglestep-Betrieb ein Fehler aufgefallen, für den ich keine Erklärung
habe.
Das Programm läuft ind Endlosschleife for(;;), führt die
switch-Anweisung aus, macht dann die Abfrage if (terminal_zeichen !=
0x00 ) terminal() ; und läuft dann aber nicht weiter zum lebenszeichen,
sondern springt zurück auf die switch-Anweisung.
Warum, was mache ich falsch ?
...und warum bekomme ich eine warnig, wenn ich ohne Rückgabewert
arbeite, also void main (void) statt int main (void) ?
Danke ! ...und hier der Code:
int main (void)
......
/* HAUPTSCHLEIFE: Run forever */
for (;;)
{
switch ( taste )
{
case taste_video: taste_vid_gedrueckt () ; break ; /* Video */
case taste_audio: taste_aud_gedrueckt () ; break ; /* Audio */
case taste_system: taste_sys_gedrueckt() ; break; /* System */
case taste_status: taste_status_gedrueckt();break; /*Status */
case taste_links: taste_li_gedrueckt () ; break ; /* LINKS */
case taste_up: taste_up_gedrueckt () ; break ; /* UP */
case taste_down: taste_dwn_gedrueckt () ; break ; /* DOWN */
case taste_rechts: taste_re_gedrueckt() ; break ; /* RECHTS */
case taste_esc: taste_esc_gedrueckt () ; break ; /* ESC */
case taste_ent: taste_ent_gedrueckt () ; break ; /* ENT */
default: ; /* Fehlerbehandlung */
} /* switch */
if (terminal_zeichen != 0x00 ) terminal() ;
lebenszeichen = lebenszeichen + 1 ;
if ((lebenszeichen = 0) && (led_encode_ist_an = 0xFF))
{ led_encode_ist_an = 0x00 ;
led_encode_aus () ; }
if ((lebenszeichen = 0) && (led_encode_ist_an = 0x00))
{ led_encode_ist_an = 0xFF ;
led_encode_an () ; }
} /* Ende for (;;) */
return 0 ; /* um Compiler-Warning zu unterdrücken */
} /* end of main */