OK,
Bin auf etwas gekommen:
Bei meinen Schleifenprogrammen ging ja weder die for- noch die while- Schleife.
Durch Zufall kam ih gestern drauf, das ich vergessen hatte, mittels DDRB die PINs als Ausgänge zu deklarieren!! Ein Fehler, der mich nun schon Wochen geplagt und zurückgeworfen hat...
Nun gehen simple schleifen wie:
Code:
int i;
int hunderterstelle=5; // z.B. 5
DDRB=0b00001111; //Wichtig!!!!!!
main()
{
for(i=0;i<hunderterstelle;i++)
{
PORTB=PORTB|(1<<PB1);
waitMs(100);
PORTB=PORTB&(~(1<<PB1));
waitMs(100);
}
}
Und auch in der Schaltung gehts hervorragend.
Wenn ich aber die Schleife unten an mein ADC-Auswerteprogramm hänge, dann passiert in der Schaltung genau nie etwas.
Ich hatte mir gedacht, dass ich im Programm was falsch mache, aber nun, nachdem die Schleife geht, passiert immer noch nix...
Daher habe ich geschrieben if (spannung==0) {...}
und siehe da, die LEDs mit diesem 'Morsecode' leuchten auf!!
Früher hatte ich jedoch, wie bereits hier beschrieben, die Messbereiche des ADCs gedrittelt, und das funktionierte auch prima. Nur halt, dass er 1) keine Spannung direkt rechnen konnte, 2) Dass es nur 3 Codes geben konnte, statt mit einer Schleife der hunderterstelle entsprechend zu blinken.
Also halt: viel Strom, mittel oder wenig, das konnte er sagen.
Also, nun zeigt der ADC offensichtlich immer 0, egal ob ich auf + , - oder auf gar nichts lege.
Da ich den ADC mit der selben Batterie des ATtiny versorge, kann das nicht sein, es sollten rund etwas unter 1,5V (oder 1500mV, Programm teilt durch 100 -> also 15 mal blinken) rauskommen
Lesezeichen