Forum: Mikrocontroller und Digitale Elektronik Problem mit eeprom_read_dword


von Heiopei (Gast)


Lesenswert?

Hallo,
ich mache mit dem AVRstudio4 und dem ATtiny85 rum.
Mein kleines Testprogramm scheint irgendwie zu funktionieren,
aber wenn ich für die eeprom-Adresse statt 0x00 z.B 0x10 eingebe, krieg 
ich zweimal die Fehlermeldung:"makes pointer from integer without a 
cast"
1
int main(void)
2
{
3
  unsigned long long int Zahl;
4
  Zahl = eeprom_read_dword(0x10);;
5
6
  DDRB = (1 << STX_BIT);
7
  while(1)
8
  {
9
    RS232_Ausgabe_Text("Zahl =");
10
    RS232_Ausgabe_Zahl(10,Zahl);
11
    
12
13
    if(!(Zahl % 10)) eeprom_write_dword( 0x10,*(uint32_t *)&Zahl);
14
15
    Zahl++;
16
    my_putchar(13);
17
    my_putchar(10);
18
    for(volatile unsigned long int x=100000;x;x--){}
19
  }
20
}

von Heiopei (Gast)


Lesenswert?

es muß natürlich unsigned long int Zahl sein.
Nicht long long.
Dies behebt aber immer noch nicht das Problem mit der Warnung.

von Schiko (Gast)


Lesenswert?

Heiopei schrieb:
> ich zweimal die Fehlermeldung:"makes pointer from integer without a
> cast"int main(void)

Fehler oder Warnung? :-)

> {
>   unsigned long long int Zahl;
>   Zahl = eeprom_read_dword(0x10);;

eeprom_read_dword will als Argument einen Pointer haben und
keinen integer. Du gibst 0x10 als Argument an, und Zahlen ohne
Zuffix sind nun mal int und keine Pointer.
..dann "caste" doch mal:
Zahl = eeprom_read_dword( (uint16_t*)0x10)

>     if(!(Zahl % 10)) eeprom_write_dword( 0x10,*(uint32_t *)&Zahl);
>
>     Zahl++;
>     my_putchar(13);
>     my_putchar(10);
>     for(volatile unsigned long int x=100000;x;x--){}
>   }
> }

von Thomas E. (thomase)


Lesenswert?

Schiko schrieb:
> ..dann "caste" doch mal:
> Zahl = eeprom_read_dword( (uint16_t*)0x10)

Aber wenn, dann auch richtig:
unsigned long Zahl = eeprom_read_dword( (unsigned long*)0x10);

mfg.

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.