www.mikrocontroller.net

Forum: Compiler & IDEs Fehler bei Benutzung von crc16.h


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
vieleicht kann mir einer helfen bei meinem Problem??
Versuche die crc16 einzusetzen, aber es kommt die Fehlermeldung
"warning: implicit declaration of function"
hier mein Code:


#include <avr\io.h>
#include <avr\interrupt.h>
#include <avr\pgmspace.h>
#include <avr\wdt.h>
#include <util/crc16.h>

//Makro-Definitionen
#define SETBIT(ADRESS,BIT) (ADRESS|=(1<<BIT))
#define CLEARBIT(ADRESS,BIT) (ADRESS&=~(1<<BIT))
#define CHECKBIT(ADRESS,BIT) (ADRESS&(1<<BIT))


unsigned int crc_flash;
uint16_t p_flash;

//Ausgänge definieren auf Port B
#define Ausgang    PORTB
#define out1    PB0
#define Eingang    PORTD
#define test    PD0


void Port_Init(void)
 {
    PORTB = 0x00 ;
    DDRB = 0x01 ;
    PORTD = 0x41;
    DDRD = 0x00;
 }

void Flash_test(void)
{
  unsigned char temp;
  for(p_flash = 0; p_flash < FLASHEND; p_flash++);
  {
    temp = pgm_read_byte(&p_flash);
    crc_flash = crc_update(crc_flash, temp);            //Überprüfung 
des Flashspeichers
    wdt_reset();
    if(crc_flash == 1234)
    {
      CLEARBIT(PORTB, out1);
    }
  }
}



int main()
{

  while(1)
  {

    if(!(CHECKBIT(Eingang, test)))    //Test aktiv ? (bei aktiv low)
    {
      SETBIT(PORTB, out1);

      //hier erfolgt der Speichertest
      Flash_test();
    }
    else
    {
      CLEARBIT(PORTB, out1);
    }
  }
  return 0;
}

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und auf welche Zeile bezieht sich die Meldung?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
auf die Zeile mit der crc_update

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt ja auch keine Funktion mit dem Namen in util/crc16.h.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber ich muss den Ordner für die crc16.h angeben oder nicht??

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Du hast einen falschen Namen bei der Funktion angegeben.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe ich nicht ganz, welchen falschen Namen?

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann es sein, dass du in der Zeile "crc16_update" meinst? Die habe ich 
der .h-Datei zumindest gefunden...

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"crc16_update" ist zwar auch falsch, aber schon näher dran. ;-)

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kommt bei mir folgende Meldung:
warning: implicit declaration of function 'crc_update'
und zeigt auf die Zeile:
crc_flash = crc_update(crc_flash, temp);

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Name "crc_update" ist falsch.

Ich weiß nicht, was du daran nicht verstehst. Noch deutlicher kann ich 
es nicht sagen, ohne dir den richtigen Namen zu nennen, was ich 
prinzipiell nicht will.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe nun auf crc16_update geändert ohne Erfolg, kommt die
selbe Fehlermeldung.
Stehe glaube voll auf dem Schlauch.

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Gast
Zeig doch mal in der util/crc16.h, welche Funktion du aufrufen willst 
(Zeile rauskopieren)

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Habe nun auf crc16_update geändert ohne Erfolg, kommt die
>selbe Fehlermeldung.

Weil die Parameterzahl nicht stimmt!?
http://www.algorithm-code.com/wiki/CRC16_Algorithm

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, ich gebe auf, die Funktion heißt richtig:
_crc16_update

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal eine Frage als C-nur-peripher-Kenner: Wo kommt der Unterstrich her? 
Ich hatte jetzt ganz blauäugig in die crc16.h geschaut - oder habe ich 
die falsche erwischt?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich danke Stefan für die Auflösung, was so ein Strich alles ausmacht.

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kai Giebeler schrieb:
> Mal eine Frage als C-nur-peripher-Kenner: Wo kommt der Unterstrich her?
> Ich hatte jetzt ganz blauäugig in die crc16.h geschaut - oder habe ich
> die falsche erwischt?

In deiner crc16.h ist der Unterstrich nicht drin? Schwer zu glauben.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.