mikrocontroller.net

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


Autor: Michael Pippert (smalldevice)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.