Speedking
29.06.2006, 20:48
Hallo Forum,
hier ein kleines Programm, welches die Batteriespannung an PIN-6 am Port-A abfragt.
uint16_t RN_Control_Board::Batteriespannung(void)
{
uint16_t volt = 0;
admux = 6; // Input-Pin: Taste ist an PA7 angeschlossen
cbi(ADCSRA, ADFR); // single-Wandlung
cbi(ADMUX, ADLAR); // left adjust ist nicht aktiv
sbi(ADCSRA, ADEN); // ADC enable
sbi(ADCSRA, ADSC); // A/D-Wanldung starten
while (ADCSRA & 64); // auf 0 warten, dann ist Wandlung beendet
volt = ADCW * (5/1024) * 5.2941; // Berechnung der Spannungsausgabe.
return volt;
}
Der Wert für die Spannung kann nun über die serielle Schnittstelle an einen PC ausgegeben werden. (Wenn man weiß, wie die serielle Schnittstelle programmiert wird ! Ich nämlich noch nicht !)
Bis später.... Klaus
hier ein kleines Programm, welches die Batteriespannung an PIN-6 am Port-A abfragt.
uint16_t RN_Control_Board::Batteriespannung(void)
{
uint16_t volt = 0;
admux = 6; // Input-Pin: Taste ist an PA7 angeschlossen
cbi(ADCSRA, ADFR); // single-Wandlung
cbi(ADMUX, ADLAR); // left adjust ist nicht aktiv
sbi(ADCSRA, ADEN); // ADC enable
sbi(ADCSRA, ADSC); // A/D-Wanldung starten
while (ADCSRA & 64); // auf 0 warten, dann ist Wandlung beendet
volt = ADCW * (5/1024) * 5.2941; // Berechnung der Spannungsausgabe.
return volt;
}
Der Wert für die Spannung kann nun über die serielle Schnittstelle an einen PC ausgegeben werden. (Wenn man weiß, wie die serielle Schnittstelle programmiert wird ! Ich nämlich noch nicht !)
Bis später.... Klaus