Hallo und frohe Weihnachten,
ich bin Michael. Ich habe mal an einem Projekt teilgenommen wo ein Audio DSP mit einem Atmega8 realisiert wurde. Allerdings hat man die Einstellung für die Lautstärke bei digitalem Eingang vergessen. Jetzt würde ich gerne ein Bedienteil nutzen um die Lautstärke und Bass einzustellen.
Der Quellcode wurde mir auch zur Verfügung gestellt. Ich habe erst vor drei Wochen aktiv angefangen mit Bascom zu programmieren und habe das Tutorial auf Halvar.at durchgelesen den Quellcode für den Encoder habe ich von rn-wissen.
Das Bedienteil besteht aus einem Display und einem Encoder mit Taster. Das ist ein Teil des Quellcodes aus dem Bedienteil:
Hier ein Auszug aus dem DSP:Code:Call Encoder2() 'Wird zyklisch im Hauptprogramm aufgerufen If Rotary_last <> Rotary Then 'Encoder gedreht? If Rotary < 50 Then Rotary = 50 If Rotary > 150 Then Rotary = 150 Printbin 11 ; Rotary Rotary_last = Rotary 'Neue Stellung merken End If
Soweit funktioniert der Code auch.Code:Enable Urxc On Urxc Uartlesen Enable Interrupts Main: .... Uartlesen: 'interruptroutine UART lesen Disable Interrupts Dummy = Udr If Dummy = &H0B Then Goto Volume Goto Uartende Volume: Rotary = Waitkey() Volumebit = 1 Printbin Rotary Goto Uartende Uartende: I2cstop Wait 1 Enable Interrupts return
Nur ich will nicht das das Programm auf die Ankunft von Rotary wartet. Die Funktion sollte etwas resistenter sein. Sollte zufällig durch eine Störung auf dem Bus nur eine 11 sein dann soll sich das Programm nicht tot warten.
Noch eine andere Frage: der DSP soll im Auto verwendet werden schafft es die RS232 Schnittstelle des Atmega8 eine Entfernung von 5 Meter ohne zusätzliche Elektrische Bauteile zurück zu legen?







Zitieren

Lesezeichen