Forum: Compiler & IDEs warning statement with no effect bei AVR-Studio


von Thomas K. (teakay)


Lesenswert?

Hallo,

ich habe gestern bis heute meine RTC am Display eDIP320 laufen über I2C 
laufen lassen. Dies hat soweit auch ohne Probleme funktioniert. Wollte 
nun heute mein Programm erweitern, jedoch beim ersten kompilieren kamen 
nun 2 Warnungen und meine I2C-Bus Kommunikation von ATmega16 zu eDIP 
funktioniert nun gar nicht mehr richtig.

Es irritiert mich folgende Warnmeldung:

../main.c:16: warning: statement with no effect

bedeutet dies, dass die Anweisung i2c_init(); keine Auswirkung hat???

hier wäre noch mein Code für die main.c
1
#include <avr/io.h>
2
#include <stdio.h>
3
#include <stdlib.h>
4
#include <inttypes.h>
5
#include <i2c.h>
6
#include <compat/twi.h>
7
#include <util/delay.h>
8
#include <edip320.h>
9
#include <ds1307.h>
10
11
#define waitms  _delay_ms
12
#define waitus  _delay_us
13
14
int main(void)
15
 {
16
  i2c_init;
17
  befehl_n("YH", 0);      // Helligkeit der LED-Beleuchtung auf 0 setzen
18
  befehl("TA");        // Terminal aus
19
  befehl("DL");        // Displayinhalt löschen
20
  befehl_n("NF", 0);      // Menüfont
21
  befehl_n("AF", 0);      // Touchfont
22
  befehl_n("NY", 2);      // zus. Zeilenabstand für Menüfont
23
  touch_menue(0, 0, 45, 15, 1, 0, 1, "UCMenue|Datum, Uhrzeit|Display|Info");
24
  while(1)
25
   {
26
    
27
    schreibeUhr();
28
  wieder:
29
    leseUhr();
30
    ausgabeUhr();
31
    goto wieder;
32
   }
33
 }

Woran kann es liegen??? Ach ja ich benutze die i2c-Library von Peter 
Fleury.

Gruß
Thomas K.

von Oliver (Gast)


Lesenswert?

>bedeutet dies, dass die Anweisung i2c_init(); keine Auswirkung hat???

Nein.

Es bedeutet, daß i2c_init; keine Auswirkung hat. Ein paar Klammern 
wirken da Wunder :-)

Oliver

von Bernd M. (Gast)


Lesenswert?

Geb dem i2c_init mal ein Paar Klammern mit.

grz. bernd

von Thomas K. (teakay)


Lesenswert?

Ahh, wie peinlich!!!

Danke Bernd für die schnelle Hilfe und Antwort!!!

Gruß
Thomas

von Patrick (Gast)


Lesenswert?

Kleiner Tipp am Rande:
Vermeide wenn möglich goto Anweisungen. Das wird als sehr schlechter 
Programmierstil angesehen.

von Kai G. (runtimeterror)


Lesenswert?

>Vermeide wenn möglich goto Anweisungen. Das wird als sehr schlechter
>Programmierstil angesehen.

Insbesondere wenn schon eine while(1)-Schleife verwendet wurde :)

Gibt es einen bestimmten Grund zwei Endlosschleifen ineinander zu 
verschachteln? Ich würde behaupten, dass die while(1)-Schleife gelöscht 
werden kann.

Schöne Grüße
Kai

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.