Gast
#500951
hallo community:
ich stehe vor einem rätsel. Beim Versuch, den ad-wandler beim tiny2313
so zu implementieren wie im avr-gcc-skript:
13.1.2.2 ADC über Komparator
kam ich nicht weiter, weil ein merkwürdiges verhalten auftrat.
Im folgenden programm:
...
void wait() {uint32_t j; for (j=0;j<320000;j++) {};};
int main(void)
{
DDRB=0xc4; /* PIN 7 und 6 und 2 von B werden auf output gesetzt*/
PORTB=0xFF; // alle drei LEDs aus, alle PullUps aktiv
// auch im Timer1 muss der richtige Modus gesetzt sein:
(A) TIMSK |= (1<<ICIE1); // input capture interrupt enable am Timer1
// Modus setzen für den komparator
ACSR |= (1<<ACIS0); ACSR &= ~(1<<ACIS1);
(B) ACSR |= (1<<ACIC); // verbindet den komparator mit dem timer1
(C) sei();
while(1)
(D) { wait();
PORTB &= ~(1<<PB2);
}
return 0;
}
blieb das Programm in Zeile (D) stecken - außer wenn eine der Zeilen (A)
bis (C) auskommentiert war.
Welchen Einfluß haben diese Zeilen auf die Funktion wait()????
thx
jürgen riehle