Komparator an Tiny2313 mit Bascom benutzen

Gast #356091
Lesenswert?
• ▲
▼
Hallo,

ich bin ein Neuling auf dem Gebiet der Mikrocontroller und habe mir zum
Einstieg einen Tiny2313 gekauft. Da ich Basic etwas beherrsche, möchte
ich in Bascom programmieren.

Zu meinem Problem habe ich leider keine Antwort gefunden (die MIR
geholfen hat), trotz suche im Forum und gesamtem Netz.
Ich möchte mit dem Komparator über einen NTC eine Temperatur messen und
beim überschreiten des Schwellwertes (über Poti eingestellt) einen Port
auf High schalten.

Die Beschaltung ist im Anhang und mein Programm sieht folgendermaßen
aus:

$regfile "ATtiny2313.dat"
$crystal = 4000000

DDRb = &B11111100
Luefterstufe Alias Portb.4

Config Aci = Off , Compare = Off , Trigger = Rising
                                   'Oder muss ich ACSR = 0 schreiben?

Dim Temp As Byte
Do
   Temp = Acsr
   If Temp = $b00100000 Then
      Luefterstufe = 1
   Else
      Luefterstufe = 0
   End If
Loop

End


Sicher ist die Antwort sehr einfach, aber ich komme einfach nicht
drauf. Ich habe Code in C gesehen, aber das hat mir auch nicht
geholfen.
Angehängte Dateien:
#356093
Lesenswert?
• ▲
▼
Moin!
Ich hab zwar noch nie nen Komparator verwendet. Versuch mal das....:

$regfile "ATtiny2313.dat"
$crystal = 4000000

DDRb = &B11111100
Luefterstufe Alias Portb.4

Config Aci = Off , Compare = Off , Trigger = Rising
                                   'Oder muss ich ACSR = 0 schreiben?

Dim Temp As Byte
Do
   Temp = Acsr.5
   If Temp = 1 Then
      Luefterstufe = 1
   Else
      Luefterstufe = 0
   End If
Loop

End
Gast #356094
Lesenswert?
• ▲
▼
Moin moin,
das ging nicht, aber ich hab folgendes probiert (ASCR = 0 zur
Initialisierung) und: ET LÜPPT!
Danke!

$regfile "ATtiny2313.dat"
$crystal = 4000000

DDRb = &B11111100
Luefterstufe Alias Portb.4

Acsr = 0

Dim Temp As Byte
Do
   Temp = Acsr.5
   If Temp = 1 Then
      Luefterstufe = 1
   Else
      Luefterstufe = 0
   End If
Loop

End
#356095
Lesenswert?
• ▲
▼
Dann könntest Du dir wahrscheinlich sogar die Variable sparen.....
z.B.

$regfile "ATtiny2313.dat"
$crystal = 4000000

DDRb = &B11111100
Luefterstufe Alias Portb.4

Acsr = 0

Do
   If Acsr.5 Then
      Luefterstufe = 1
   Else
      Luefterstufe = 0
   End If
Loop

End

Ansonsten solle Dir wohl klarsein das Du fuer diese Funktion garkein µC
brauchst, sondern einen "echten" Komparator haettest nehmen können.


mfg,
Bjoern
Gast #356096
Lesenswert?
• ▲
▼
@Björn
Jo, die Variable kann man auch sparen.
Ich habe den uC genommen, weil der noch mehr Sachen ausser Vergleichen
erledigt. Den Rest des Code hab ich nur weggelassen, damit es
übersichtlicher ist. Sonst hätte ich einen LM324 oder so genommen..
Thx
Christian

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.