-
        

Ergebnis 1 bis 4 von 4

Thema: Analoger Komperator (ATTiny2313), Timer

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2008
    Alter
    30
    Beiträge
    26

    Analoger Komperator (ATTiny2313), Timer

    Anzeige

    Hi,

    hab da ein problem. Wie richte ich den analogkomperator am Attiny2313 in Bascom (und schalttechnisch) so ein, dass ich damit eine spannung messen kann?

    Mein vorhaben ist es über einen Spannungsteiler aus NTC und festwiderstand eine spannung zu messen.

    Was ich bis jez ausfindig machen konnte war:
    CONFIG ACI = ON|OFF, COMPARE = ON|OFF, TRIGGER=TOGGLE|RISING|FALLING

    Aber wie frag ich den jetzt ab? Warum compare? natürlich soll der vergleichen bzw die differenz zwischen spannungsteiler und masse auslesen können. Trigger is ja nur für ein Interrupt wenn ich das richtig sehe.

    Ausserdem noch eine kleine frage: Gibt es einen fortlaufenden Counter bzw eine Zeit in ms oder µs vom start des Atmels? In Qbasic oder anderen sprachen gibt es immer soetwas wie Timer, welcher eine zeit zurückgibt. Genausoetwas bräuchte ich dann auch nochmal ^^

    MfG Vader

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Der Comperator vergleicht nur, ein ADC könnte direkt messen.

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wie schon gesagt, der Comperator ist kein AD Wandler (der nur ein 1 Bit Wandler). Man müßte sich also erst einen AD Wandler bauen. Das geht z.B. mit Hilfe eines Foliencondensators (z.B. 1 nF) am Comperator eingang gegen Masse und einem Widerstand. Für die messung des NTCs könnte man den NTC gegen Masse (oder einen IO PORT) auch an den Comperator Eingang schalten. Den anderen Comperator Eingang legt man am besten an die Halbe Spannung.
    Die Messung geht dann darüber, wie lange es dauert den Kondensator umzuladen. Bei 1 nF und ca. 1 kOhm gibt das ein Zeit von etwa 1 ms, die sich sehr gut messen läßt. So kann man sogar mehr als 10 Bit Auflösung erreichen.

    Eine forlaufende Zeit gibt es nicht. Man kann aber einen Timer programmieren so das er dann ab dann fortlaufend hochzählt, etwa alle µs. Wenn es um lange Zeiten (> 1 s) geht, muß man das wohl von Hand in einem Timer Interrupt machen.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2008
    Alter
    30
    Beiträge
    26
    Ah ok. Das ist natürlich schade. Das muss ich wohl doch eher nen ATMega8 oder sogar 32 nehmen. Hab leider nur nochn 32 da. Wäre schade um die ganzen pins. Gut zu AD Wandler is ja ein beispiel in Bascom. Nur was speichert der getadc befehl? Etwa die Spannung in V als ganzzahl + gleitkommastellen wenn ich ein float/double nehme?
    Falls ja, ist das genau das richtige.

    Danke schonmal dazu.
    Wie sieht es mit dem TIMER aus? Mir geht es darum einen wert in eine variable schreiben zu können, der wert wird laufend im hintergrund mitgezählt. Natürlich geht das mit interrupts. Aber die art finde ich viel schöner und ich kann einfacher die zeit messen. Sagen wir mal ich speichere den aktuellen wert AktZeit = Timer (quasi wie in QBasic) und subtrahiere später wieder mit der aktuellen zeit Zeitvergangen=Timer-AktZeit.

    Gibt es sowas?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •