Atmel Studio 7 c/c++ Compiler Problem

OP #5003433
Moins,

Ich verwende in einem Projekt in Atmal Studio den TWI Treiber von Atmel. 
Der ist in C geschrieben, ich programmiere in C++. Deshalb muss ich ihn 
mit einbinden.

Mein Problem ist nun, dass der C-Compiler die Definitionen aus dem .h 
file nicht mehr im .c file findet:

Hier kleine Auszüge aus den Programmen:

TWI_Master.h
1
#ifndef TWI_Master_h
2
#define TWI_Master_h
3

4
#ifdef __cplusplus
5
extern "C" {
6
/****************************************************************************
7
  TWI Status/Control register definitions
8
****************************************************************************/
9
#define TWI_BUFFER_SIZE 4   // Set this to the largest message size that will be sent including address byte.
10

11
#define TWI_TWBR            0x0C         // TWI Bit rate Register setting.
12
                                        // Se Application note for detailed 
13
                                        // information on setting this value.
14

15
und so weiter ....

TWI_Master.c:
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include "TWI_Master.h"
4

5

6
static unsigned char TWI_buf[ TWI_BUFFER_SIZE ];    // Transceiver buffer
7
static unsigned char TWI_msgSize;                   // Number of bytes to be transmitted.
8
static unsigned char TWI_state = TWI_NO_STATE;      // State byte. Default set to TWI_NO_STATE.
9

10
union TWI_statusReg TWI_statusReg = {0};            // TWI_statusReg is defined in TWI_Master.h
11

12
/****************************************************************************
13
Call this function to set up the TWI master to its initial standby state.
14
Remember to enable interrupts from the main application after initializing the TWI.
15
****************************************************************************/
16
void TWI_Master_Initialise(void)
17

18
usw....

Hier spuckt mir der Compiler folgende Fehlermeldungen aus:
1
    Building file: .././TWI_Master.c
2
    Invoking: AVR8/GNU C Compiler : 5.4.0
3
C:\Users\steingas\Documents\Atmel Studio\7.0\HomeLED_Anz\HomeLED_Anz\TWI_Master.c(52,31): error: 'TWI_BUFFER_SIZE' undeclared here (not in a function)
4
     static unsigned char TWI_buf[ TWI_BUFFER_SIZE ];    // Transceiver buffer
5
                                   ^
6
C:\Users\steingas\Documents\Atmel Studio\7.0\HomeLED_Anz\HomeLED_Anz\TWI_Master.c(54,34): error: 'TWI_NO_STATE' undeclared here (not in a function)
7
     static unsigned char TWI_state = TWI_NO_STATE;      // State byte. Default set to TWI_NO_STATE.
8
                                      ^
9
C:\Users\steingas\Documents\Atmel Studio\7.0\HomeLED_Anz\HomeLED_Anz\TWI_Master.c(56,7): error: variable 'TWI_statusReg' has initializer but incomplete type
10
     union TWI_statusReg TWI_statusReg = {0};            // TWI_statusReg is defined in TWI_Master.h

Da im .c file TWI_BufferSize und TWI_NO_State definiert wurden müsste 
der compiler diese eigentlich finden.

Diese Definitionen sind von Atmel.
Wo liegt der Fehler?

Viele Grüße

Alexander

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 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.