ATtiny2313 analog comparator - nix tut sich

Gast #770302
Lesenswert?
• ▲
▼
Also eigentlich ein einfaches Problem - man nehme eine Spannung und 
schließe sie an den analog comparator des Controllers an (AIN1), als 
Referenz dient ein Spannungsteiler, der ca. 2,1V liefert (AIN0). Zur 
Auswertung dient eine LED. So und dann schreibt man folgenden Code:

void main (void)
{
DDRD = 0b00000000;      // PD0,1,2,3,4,5 Eingang
PORTD = 0b00000010;    // Pull-up PD1
DDRB = 0b11100100;      // PB0,1 Eingang, PB2,5,6,7 Ausgang
ACSR = 0b01000000;
while(1)
  {
  if ((ACSR & 0b00100000) == 0b00100000)
    {
    PORTB = PORTB | 0b01000000;
    }
  else
    {
    PORTB = PORTB & 0b10100100;
    }
  }
}

Aber es passiert rein gar nix an meiner LED, egal wie sich die varibale 
Spannung verhält. Liegt das jetzt an meinem Code oder daran, daß es wenn 
überhaupt nur mit Interrupt funktionert?
Danke schonmal vorab.
Gast #770381
Lesenswert?
• ▲
▼
die LED hängt an PB6

Spannung VCC 5V, Vref (AIN0) 2,1V Vsig (AIN1) entweder ca.0V oder ca. 
3,1V

sonst macht der µC ja noch nix, aber wenn ich den Inahlt der if-Schleife 
vertausche dann leuchtet die LED

die LED über n Taster per Software einschalten geht ...

if((PIND & 0b00000010) == 0b00000010)
Gast #770387
Lesenswert?
• ▲
▼
ja ich weiß daß das einfacher geht, aber der Mensch is n 
Gewohnheitstier, wobei das in dem Fall ausnahmsweise nicht das 
eigentliche Problem ist - wenn ich das gewußt hätte, hätte ich es mit 
nem OP gemacht
Gast #770910
Lesenswert?
• ▲
▼
ja klar ... ist nicht mein erstes C-Programm und wenn ich anstatt des 
Komparators einen Taster zur Ansteuerung der LED verwende, dann 
funktioniert das Ganze ja reibungslos.
Mein Controller is übrigens SMD und neu aus der Stange.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.