Forum: Mikrocontroller und Digitale Elektronik Komparator an Tiny2313 mit Bascom benutzen


von Christian (Gast)


Angehängte Dateien:

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.

von Christian (Gast)


Lesenswert?

Mir würde ein kleiner Codeschnipsel ja schon reichen, den fummel ich mir
dann zurecht. Ich kann aus der Manual überhaupt nicht erkennen, wie ich
den AC überhaupt ansprechen muss! :(

von Bjoern B. (tishima)


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

von Christian (Gast)


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

von Bjoern B. (tishima)


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

von Christian (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.