typloser pointer verarbeiten

OP #1218104
Hallo,
kann mir bitte jemand sagen wie ich folgende Fehlermeldung weg kriege ??
../Fuction.c:74: error: void value not ignored as it ought to be
1
//********************************************* SPI_MasterTransmit **********************************************************************
2

3
void SPI_MasterTransmit(void *cData,uint8_t len)
4
{
5
    uint8_t i;
6
  PORTB &= ~(1 << PB4);    // Start transmission
7
  for (i=0;i<len;i++)
8
  {
9
    SPDR = (*cData);        // shift out data
10
      while(!(SPSR & (1<<SPIF))); // Wait for transmission complete
11
    cData++;
12
  }
13
  
14
    PORTB |= (1 << PB4);     // disable \ss
15

16
}

Vielen Dank für Eure Hilfe vorab

Gruß
Pier
Gast
Pier S. wrote:
> Hallo,
> kann mir bitte jemand sagen wie ich folgende Fehlermeldung weg kriege ??
> ../Fuction.c:74: error: void value not ignored as it ought to be
Wo ist Zeile 74?

>
1
> //********************************************* SPI_MasterTransmit
2
> **********************************************************************
3
> 
4
> void SPI_MasterTransmit(void *cData,uint8_t len)
5
> {
6
>     uint8_t i;
7
>   PORTB &= ~(1 << PB4);    // Start transmission
8

9
>   for (i=0;i<len;i++)
10
>   {
Es ginge auch 'while (len-- > 0)'.
1
>     SPDR = (*cData);        // shift out data
Einen Zeiger auf void darf man normalerweise nicht dereferenzieren (*).
1
>       while(!(SPSR & (1<<SPIF))); // Wait for transmission complete
2
>     cData++;
Das ist auch verboten. Da void keine Größe hat, ist nicht definiert, wie 
weit das '++' den cData-Zeiger versetzen soll.
[c]
>   }
>
>     PORTB |= (1 << PB4);     // disable \ss
>
> }
/c]
Mach statt void mal uint8_t oder char.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.