Hallo,
Zitat Zitat von stochri
Hallo Herman,

ohne jetzt genauer nachschauen zu wollen meine ich mich grob zu erinnern, dass es problematisch sein kann, den AD-Wandler zu benutzen, wenn die Encoder-Interrupts laufen. Beisst sich die Konfiguration des Wandlers bei autoencode mit der Konfiguration der Batterie()-Funktion?

Gruss,
stochri
um die Mißverständnisse von oben aufzulösen, autoencode ist auf false.

Das folgende minimale Codestück zeigt das komische Verhalten (Werte <255) -- und wie gesagt, eben erst seit kurzem -- vorher kamen Werte über 800 und bei vollen Batterien über 900 raus:
Code:
#include <asuro.h>

int main(void)
{
  Init(); // setzt "autoencode = FALSE;"

  SerPrint("\r\nBatterie="); 
  PrintInt(Batterie()); 
  SerPrint("\r\n"); 

  while (1) ;

  return 0;
}
Vielleicht habe ich neben dem Widerstand R21 noch irgendein anderes Bauteil in eine mißliche Lage gedrückt. Welche Bauteile (außer dem AtMega) haben denn überhaupt mit der Funktion Batterie() zu tun?