Forum: Compiler & IDEs Fehler durch Konstante?


von Anfänger (Gast)


Lesenswert?

Hallo,
ich habe glaube ich einen ganz dummen Anfängerfehler drin, aber ich sehe 
ihn nicht :/
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
4
#define RED  43;
5
#define GREEN 109;
6
#define BLUE  2;
7
#define STEPS  256;
8
9
volatile uint8_t i = 0;
10
11
12
ISR(TIMER0_OVF_vect)
13
{
14
  i++;
15
  if(i == RED) {
16
    PORTC |= (1<<PB0);
17
    }
18
  if(i == GREEN) {
19
    PORTC |= (1<<PB1);
20
    }
21
  if(i == BLUE) {
22
    PORTC |= (1<<PB2);
23
    }
24
  if(i==STEPS) {
25
    i=0;
26
    PORTC &= ~((1<<PB0) | (1<<PB1) | (1<<PB2));
27
    }
28
}

ES kommt foglende Fehlermeldung... Ich finde dass genug Klammern gesetzt 
sind...

sender.c:15: error: expected ')' before ';' token
sender.c:18: error: expected ')' before ';' token
sender.c:21: error: expected ')' before ';' token
sender.c:24: error: expected ')' before ';' token

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

i ist 8 bit und nie gleich STEPS, es muss an der Stelle gegen 0 
verglichen werden.

Warnungen aktivieren und beachten hätte hier gehülft.

Hinter die Makros gehört hier kein ; sonst steht der später wo er nicht 
hinsoll (Textersatz)

von hans (Gast)


Lesenswert?

Hinter define steht ein ";" -> Vergleich IF(i==43;){

das mag der Compiler nicht!!

Vorsicht Steps sind 256 und du vergleichst mit i als uint8
(dieser fehler kämme auch noch ;)

gruß hans

von Anfänger (Gast)


Lesenswert?

Hallo,
danke, habs auf 16 bit geändert, aber die Fehler kommen immer noch...

von Anfänger (Gast)


Lesenswert?

Überschneidungspost, die ";" waren die Übeltäter, danke dir!

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.