Virus
07.01.2010, 15: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;
}
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;
}