komparator mit timer verbinden

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
Gast
Woher weißt Du, dass das Programm in der besagten Zeile "steckenbleibt"? 
Ich könnte mir eher vorstellen, dass der Optimizer Deine "Warteschleife" 
einfach wegoptimiert hat (weil sie leer ist) und deshalb die Anweisung 
"PORTB &= ~(1<<PB2);" permanent ausgeführt wird.
Gast
in der endlosschleife bleibt das progi bei wait hängen - wenn ich 
nämlich wait auskommentiere, geht die led an pb2 an (nächste zeile) - 
und sonst bleibt sie aus!!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.