Error: expected ')' before

Gast #2673798
Lesenswert?
• ▲
▼
Hallo
Ich hab folgenden Code:
1
#include <avr/io.h>
2
#include "pins.h"
3

4
int main(void)
5
{
6
  set_low(0, DDRD, PORTD);
7
    while(1)
8
    {
9
        //TODO:: Please write your application code 
10
    }
11
}
1
#ifndef PINS_H_
2
#define PINS_H_
3

4
void set_hight(uint8_t pin, uint8_t ddr, uint8_t port);    // Error
5
void set_low(uint8_t pin, uint8_t ddr, uint8_t port);      // Error
6

7
#endif
1
#include "pins.h"
2

3
void set_hight(uint8_t pin, uint8_t ddr, uint8_t port){    // Error
4
  ddr = ddr | (1<<pin);
5
  port = port | (1<<pin);
6
}
7
void set_low(uint8_t pin, uint8_t ddr, uint8_t port){      // Error
8
  ddr = ddr && !(1<<pin);
9
  port = port && !(1<<pin);
10
}
Nun bekomme ich viermal folgenden Error in den markierten Zeilen:
expected ')' before 'pin'

Was mach ich denn da falsch? Hab schon ein bischen im Internet gesucht 
und bin darauf gestoßen, dass uint8_t unbekannt ist!?
Gast #2673817
Lesenswert?
• ▲
▼
:) Ok super danke es funktioniert! Aber ich hab leider keine Warnung 
erhalten...
Es sieht jetzt so aus:
1
#include <avr/io.h>
2
#include <stdint.h>
3
#include "pins.h"
4

5
int main(void)
6
{
7
  set_low(0, DDRD, PORTD);
8
    while(1)
9
    {
10
        //TODO:: Please write your application code 
11
    }
12
}
und:
1
#include <stdint.h>
2

3

4
#ifndef PINS_H_
5
#define PINS_H_
6

7
void set_hight(uint8_t pin, uint8_t ddr, uint8_t port);
8
void set_low(uint8_t pin, uint8_t ddr, uint8_t port);
9

10
#endif
Die andere Datei hab ich nicht veränder...
Wird aber nicht jetzt stdint.h doppelt inkludiert?
Gast #2673840
Lesenswert?
• ▲
▼
> Aber ich hab leider keine Warnung erhalten...

Stimmt, hier auch nicht (mehr?). War mir sicher da kommt ein 'warning: 
unknown "uint8_t" .. assuming something something' davor..

> Wird aber nicht jetzt stdint.h doppelt inkludiert?

Jein. Normalerweise(tm) macht man sich keine Sorgen wegen doppelter 
Includes, die sind eh adäquat ∗abgesichert∗ (d.h. 'Ja, wird doppelt 
eingebunden' und 'Nein, es entstehen daraus keine Probleme').

Saubererweise holt sich ∗jeder∗ ∗alle∗ Header rein, die ∗er∗ braucht, 
nicht mehr und nicht weniger. So gesehen braucht obige main die stdint.h 
(noch) nicht.

Unabhängig vom obigen Problem: Überlegs Dir nochmals genau, ob Du 
set_[high,low] wirklich als Funktionen implementieren willst oder nicht 
doch als Präprozessormakros.

HTH und nix für ungut

Antwort schreiben

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