Compilerproblem: non static main & expected declaration

OP Persönliche Seite #1761630
Lesenswert?

Ich versuche gerade eine Anwendung mit dem ADC für den Mega 8 zu 
schreiben.
Leider meldet der Compiler immer:
"'main' is normally a non-static function" und
"expected declaration or statement at ent of input".
Hier mein Code:
1
#define F_CPU 3686400
2
#include <avr/io.h>
3
#include <stdlib.h>
4
#include <util/delay.h>
5
#include "lcd-routines.h"
6
uint16_t BOTTOM;
7
uint16_t MEDIUM;
8

9
void initADC(){
10
//ADC auf interne Referenz 2.56 Volt einstellen
11
//Eingang auf 0V Referenz
12
ADMUX = (1<<REFS1) | (1<<REFS0) | (1<<MUX3) | (1<<MUX2) | (1<<MUX1) | (1<<MUX0);
13
//Grundeinstellungen für ADC einstellen
14
ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
15

16
//Eine Messung machen, um ADC warmlaufen zu lassen
17
ADCSRA |= (1<<ADSC);
18
//Auf Fertigstellung warten
19
while(ADCSRA & (1<<ADSC)){;}
20
//Wert auslesen, um ihn zu verwerfen
21
BOTTOM = ADCW;
22

23
//Eine Messung machen, um BOTTOM zu ermitteln
24
ADCSRA |= (1<<ADSC);
25
//Auf Fertigstellung warten
26
while(ADCSRA & (1<<ADSC)){;}
27
//Wert für BOTTOM speichern
28
BOTTOM = ADCW;
29

30
//Referenzwert jetzt auf 1/2 Vcc einstellen
31
ADMUX = (1<<REFS1) | (1<<REFS0) | (1<<MUX3) | (1<<MUX2) | (1<<MUX1);
32
//Eine Messung machen, um MEDIUM zu errechnen
33
ADCSRA  |= (1<<ADSC);
34
//Auf Fertigstellung warten
35
while(ADCSRA & (1<<ADSC)){;
36
//Wert für MEDIUM speichern
37
MEDIUM = ADCW;
38
}
39

40
void lcd_int_out(int x){
41
char buffer[20];//Einen Buffer für die Zahl bereitstelleb
42
itoa(x, buffer, 10);//Zahl in String umwandeln
43
lcd_string(buffer);}//String auf Display ausgeben
44

45
void init(){
46
initADC();//ADC anwerfen
47
lcd_init();//LCD anwerfen
48
}
49

50
int main(void){
51
init();//Init-Void aufrufen
52
while(1){
53
lcd_string("BOTTOM  |  MEDIUM");//Beschreibung in obere Zeile
54
lcd_setcursor(0,2);//Cursor in untere Zeile
55
lcd_int_out(BOTTOM);//Bottom ausgeben
56
lcd_string("  |  ");//Trennzeichen ausgeben
57
lcd_int_out(MEDIUM);//Medium ausgeben
58
_delay_ms(100);//Tue nix außer warten...
59
}
60
return 0;
61
}
Könnt ihr mir sagen, wo der Fehler ist?
Mit freundlichen Grüßen,
Valentin Buck

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