Anfänger braucht Hilfe - finde Fehler nicht

OP #2205853
Lesenswert?

Hallo,

ich habe nach Monaten mal wieder ein altes Projekt ausgegraben.
es werden follgende Fehler angezeigt:

../Mainframe.c:71: error: expected ')' before '{' token
../Mainframe.c:113: error: expected expression before '}' token
../Mainframe.c:113: error: expected 'while' at end of input
../Mainframe.c:113: error: expected declaration or statement at end of 
input

Ich check einfach nicht wo der Fehler liegt - liegt vieleicht an der 
Hitze, warscheinlicher aber an mir.
1
//B2 Taster K?ltebad
2
//B3 Taster W?rmebad
3

4

5

6
#include <avr/io.h>
7
#include <avr/interrupt.h>
8
#define F_CPU 2000000
9
#include <util/delay.h>
10
#include <inttypes.h>
11
#include <stdint.h>
12

13
#define TRUE 1
14
#define FALSE 0
15

16
// Anchlussbelegung:
17

18
#define KTEMP_DDR DDRD        //Temperatur Input vom Kältebad
19
#define WTEMP_DDR DDRC        //Temperatur Input vom Wärmebad
20
#define PTEMP_DDR DDRA        //Temperatur Input von Probe
21

22
#define MOTOR_DDR DDRB        //Datenrichtung zum Motor-Steuer-Atmega festlegen
23
#define MOTOR_OUT PORTB        //Ausgänge zum Motor-Steuer-Atmega
24
#define MOTOR_IN  PINB
25

26
#define WTEMP_IN   PINC        //Wärmebad abfragen
27
#define KTEMP_IN   PIND        //Kältebad abfragen      
28
#define PTEMP_IN   PINA        //Probentemperatur abfragen
29

30
#define CW   PB0          //Motor cw richtung Kältebad
31
#define CCW  PB1          //Motor ccw richtung Wärmebad
32
#define KB   PB2          //Taster Kältebad abfragen 
33
#define WB   PB3          //Taster Wärmebad abfragen
34

35

36

37

38

39

40

41

42
int main(void)
43
{
44
    uint8_t w_temp = 0;          //Variable zum speichern der Zustände vom Wärmebad
45
    uint8_t k_temp = 0;          //Variable zum speichern der Zustände vom Kältebad
46
    uint8_t p_temp = 0;          //Variable zum speichern der Zustände von der Probe
47
         
48
        const uint16_t pause = 200;
49
    const uint16_t pause_2 =80;
50
    
51
    
52
    KTEMP_DDR = 0x00;    //Eing?nge
53
        WTEMP_DDR = 0x00;    //Eing?nge
54
    PTEMP_DDR = 0x00;    //Eing?nge
55
    //B0 un B1 als Ausgänge, B2 und B3 als Eingänge:
56
    MOTOR_DDR = DDRB = (1 << DDB0) | (1 << DDB1) | (0 << DDB2) | (0 << DDB3);
57
        
58

59

60
    //Pause für 20 Sekunden damit alles andere initialisieren kann
61
    //for(int a=0; a<10; a++){_delay_ms( 1000 )};
62
    
63

64
        do
65
        {
66
      k_temp = KTEMP_IN;          //Temp vom Kältebad abholen
67
      p_temp = PTEMP_IN;          //Temp der Probe abholen
68
      w_temp = WTEMP_IN;          //Temp vom Wärmebad abholen
69

70
      //Wenn Taster vom K?ltebad an (d.h. Probe ist im Kältebad)
71
      if((PINB & (1<<KB))
72
      {
73
        //Motor erst mal grundlegend ausschalten, um einen definierten Startwert zu haben
74
      PORTB &= ~ (1<<CCW);  //Motor aus
75
      PORTB &= ~ (1<<CW);    //Motor aus
76

77

78
        if((p_temp <= k_temp + 1))   //fals Probentemp gleich Kältebadtemp ist
79
        {
80
         //Pause um damit Probe die Temp vom Kältebad vollständig annehmen kann
81
             //     for(int a=0; a<20; a++){_delay_ms( 1000 );}
82

83
         //ins Wärmebad fahren)
84
         PORTB &= ~ (1<<CCW);
85
         PORTB |= (1<<CW);
86

87
         //Pause für 20 Sekunden
88
               //     for(int a=0; a<20; a++){_delay_ms( 1000 );} 
89
        }
90
      }
91
         
92
      //Wenn Taster vom Wärmebad an (d.h. Probe ist im Wärmebad)
93
      if((PINB & (1<<WB))
94
      {
95
        if((p_temp >= w_temp - 1))// fals Probentemp gleich Wärmebadtemp ist
96
        {
97
         //Pause um damit Probe die Temp vom Wärmebad vollständig annehmen kann
98
      //     for(int a=0; a<20; a++){_delay_ms( 1000 );}
99

100
         
101
         PORTB &= ~ (1<<CW);
102
         PORTB |= (1<<CCW);
103
         
104
        }
105
      }
106

107

108
         
109

110

111

112
        } //ENDE do
113
    while(1);
114

115
} //ENDE main

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren