PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : unbekannter Fehler in RP6 Programm



Virus
07.01.2010, 14:14
Ich hab Probleme mit einem meiner RP6 Programme,
weil ich den Fehler (seine Meldung im Output) nicht kenne und nicht weis wie ich ihn korregiere.


#include "RP6ControlLib.h"

void temp(void) // Temperaturfunktion
{
writeString(" | Temperatur in Grad Celsius: ");
uint16_t adc4 = 1032- readADC(ADC_4); // ADC 4 einlesen
uint16_t stemp = (adc4 - 316) / 11; // Y-Achsenabschnitt und Umrechnung zu °C
writeInteger(stemp, DEC); // Temperatur ausgeben
writeChar('\n');

setCursorPosLCD(0,0); // Temperatur am LCD ausgeben
writeIntegerLCD(stemp,DEC);
writeCharLCD('G');
writeCharLCD('r');
writeCharLCD('a');
writeCharLCD('d');
writeCharLCD(' ');
writeCharLCD('C');
writeCharLCD('e');
writeCharLCD('l');
writeCharLCD('s');
writeCharLCD('i');
writeCharLCD('u');
writeCharLCD('s');
}

void licht(void) // Lichtfunktion
{
writeString(" | Licht von 0 bis 10: ");
uint16_t adc3 = readADC(ADC_3) - 23; // ADC 3 einlesen und auf 1000 begrenzen
uint8_t rlicht = adc3 / 100; // ADC3 verkleinern
uint8_t slicht = rlicht; // ausgabe-variable deklarieren
writeInteger(slicht , DEC); // Lichtwert ausgeben
writeChar('\n');

setCursorPosLCD(1,1); // Lichtwert am LCD ausgeben
writeIntegerLCD(slicht,DEC);
writeCharLCD('L');
writeCharLCD('i');
writeCharLCD('c');
writeCharLCD('h');
writeCharLCD('t');
}

void relfeucht(void) // rel. Feuchte Funktion
{
writeString(" | rel. Feuchte in Prozent: ");
uint16_t adc5 = readADC(ADC_5); // ADC 5 einlesen
uint16_t rrF = adc5 - 204; // Y-Achsenabschnitt
uint16_t srF = rrF / 5; // rel. Feuchte in % berechnen
writeInteger(srF, DEC); // rel. Feuchte ausgeben
writeChar('\n');

setCursorPosLCD(1,8); //rel. Feuchte am LCD ausgeben
writeIntegerLCD(srF,DEC);
writeCharLCD('%');
writeCharLCD('r');
writeCharLCD('F');

int main(void)
{
initRP6Control();
initLCD();
showScreenLCD("Wetterstation","Auf dem RP6");
mSleep(1000);


DDRA &= ~ADC3;
DDRA &= ~ADC4; // ADC definieren
DDRA &= ~ADC5;

while(true)
{

temp();
licht();
relfeucht();
mSleep(100);

}

return 0;

}

KingTobi
07.01.2010, 15:27
Eine kleine Beschreibung, was passiert, bzw. was nicht passiert wäre nciht schlecht gewesen.
Wie dem auch sei, es fehlt aufjedenfall eine geschlossene geschweifte Klammer am Ende von "void relfeucht".

Virus
07.01.2010, 16:39
Danke King Tobi, das war es schon.

Die Fehlerbeschreibung im Output von Programmers Notepad beim Compilieren ist die folgende gewesen:

RP6Control_05_IO_ADC.o
RP6Control_05_IO_ADC.c: In function 'relfeucht':
RP6Control_05_IO_ADC.c:63: warning: 'main' is normally a non-static function
RP6Control_05_IO_ADC.c:87: error: expected declaration or statement at end of input
make.exe: *** [RP6Control_05_IO_ADC.o] Error 1