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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren