Forum: Mikrocontroller und Digitale Elektronik Lautstärkereglung mit ATMega8 und DS1802


von Michael P. (smalldevice)


Lesenswert?

Hallo Gemeinde,

Ich (immer noch blutiger Anfänger mit µC) versuche mich gerade an einer 
Lautstärkeregelung mit dem Digitalpoti DS1802.
Leider komme ich nicht mehr weiter, vielleicht kann mir einer von Euch 
helfen.
Ich nutze die Hardware SPI und habe folgendermaßen beschaltet:
ATmega8        DS1802
PB3 (MOSI) --> D   (Serial Port Data Input)
PB5 (SCK)  --> CLK (Serial Port Clock Input)
PB2 (SS)   --> RST (Serial Port Reset Input)
Wenn ich nun die Fernbedienung betätige kann ich mit dem Oszi an PIN D 
und Pin RST des DS1802 Dateneingang nachweisen.
Leider kann ich keine Änderung des Widerstandes an den entsprechenden 
Pins des DS1802 feststellen (was ja eigentlich Sinn der Übung ist).
Vielleich erkennt ein Profi gleich wo ich Mist gebaut hab.

Hier mein Programm:

' Lautstärkeregelung über IR-Fernbedienung mit ATMega8 und DS1802
$regfile = "m8def.dat"
'erzeugt kleineren code
$lib "mcsbyte.lbx"
$baud = 19200
$crystal = 4000000

Declare Sub Lauter
Declare Sub Leiser
Declare Sub Setvolume

' für Digitalpoti DS1802
Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = High , 
Phase = 0 , Clockrate = 4 , Noss = 0
Spiinit

Config Portc = Output

'Pin für IR-Sensor PD7
Config Rc5 = Pind.7
Portd.7 = 1

Enable Interrupts

Dim Addr As Byte , Comm As Byte
Dim Vol_l As Byte , Vol_r As Byte

Vol_l = 0
Vol_r = 0

Do
  Getrc5(addr , Comm)
  If Addr <> 255 Then
    Reset Comm.7
    Select Case Comm
      Case 16
        Call Lauter
      Case 17
        Call Leiser
    End Select
  End If
Loop
End

Sub Lauter
  If Vol_l < 63 Then Vol_l = Vol_l + 1
  If Vol_r < 63 Then Vol_r = Vol_r + 1
  Call Setvolume
End Sub

Sub Leiser
  If Vol_l > 0 Then Vol_l = Vol_l - 1
  If Vol_r > 0 Then Vol_r = Vol_r - 1
  Call Setvolume
End Sub

Sub Setvolume
  ' DS1802 ansteuern
  Spiout Vol_l , 1
  Spiout Vol_r , 1
End Sub

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.