PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mega 32 an LM3915 anschließen



Stifel
17.10.2010, 14:50
Mit einem LM3915 kann man ja Musikfrequenzen auswerten auswerten und dann z.B. Leds zum Takt aufleuchten lassen. Jetzt wollte ich fragen ob man einen LM3915 auch an einen ATMega32 anschließen kann und dann mit dem ATMega32 die Daten auswerten.

Versucht hab ichs nur war bei mir dass problem, dass der LM3915 nach Masse die Leds schaltet und nicht nach +. Jetzt müsste ich meinen ATMega so programmieren, dass er erkennt, wenn der LM3915 auf Masse schaltet.

Geht dass überhaupt? Und wenn ja wie?

Achja. Ich programmiere übrigens mit Bascom.

Nett währe eine Hilfe ( als Code) wo der ATMega 32 erkennt, dass der LM3915 nach Masse geschalten hat.

Vielen Dank

021aet04
17.10.2010, 15:04
Wie hast du ihn angeschlossen? Ob es funktioniert weiß ich nicht, da der LM3915 eigentlich zum Ansteuern von Leds gedacht ist. Hast du die Pullupwiderstände eingeschalten?


MfG Hannes

Richard
17.10.2010, 17:50
Wenn der Baustein LED's nach GND treibt musst Du nur die Internen Pull up einschalten Port(Dein Port) = 1 Und dann die Eingänge auf 0 abfragen.. If eingang = 0 Then......

Oder Du spendierst Dem Baustein externe Pull Up. dann schaltest Du mit Port(dein Port) = 0 die internen ab und fragst dann iF Eingang = 1 Then....

Gruß Richard

Stifel
18.10.2010, 14:44
Ich hab den LM3915 vor die Pins des ATMega32 angeschlossen.

Also so. Hab alle anderen Leitungen mal weggelassen. Diese irritieren nur.

http://www.bilder-upload.eu/show.php?file=b5uzc22FZ8R6uFu.png

Stifel
19.10.2010, 15:48
Hab mal en einfachen Code geschrieben. Die Taster sind nur die Ports wo mit dem LM3915 verbunden werden. Da diese Ports des LM3915 nach Masse ziehen.

$regfile = "m32def.dat"
$crystal = 1000000

Led1 Alias Portb.0
Led2 Alias Portb.1
Led3 Alias Portb.2
Led4 Alias Portb.3
Led5 Alias Portb.4



Taster1 Alias Portc.0
Taster2 Alias Portc.1
Taster3 Alias Portc.2
Taster4 Alias Portc.3
Taster5 Alias Portc.4

Config Portc = Input
Config Portb = Output

Portc = 1

Do

If Taster1 = 0 Then
Led1 = 1
Else
Led1 = 0
End If

If Taster2 = 0 Then
Led2 = 1
Else
Led2 = 0
End If

If Taster3 = 0 Then
Led3 = 1
Else
Led3 = 0
End If

If Taster4 = 0 Then
Led4 = 1
Else
Led4 = 0
End If

If Taster5 = 0 Then
Led5 = 1
Else
Led5 = 0
End If

Loop
End

Stifel
20.10.2010, 17:27
Würde dass so funktionieren? Währe echt nett wenn ein kurze nachricht kommen würde.

BoGe-Ro
22.10.2010, 14:33
hier:

Taster1 Alias Portc.0
Taster2 Alias Portc.1
Taster3 Alias Portc.2
Taster4 Alias Portc.3
Taster5 Alias Portc.4


muss es

Taster1 Alias Pinc.0

heißen

Stifel
22.10.2010, 19:44
Warum muss ich die als Pins und nicht als Ports angeben? Hab leider noch nicht soo viel Erfahrung mit AVR controllern.

Jaecko
22.10.2010, 20:10
Pin = Input
Port = Output.

Wenn du mit Portx.y liest, liest du den Status vom internen Pullup.
Pinx.y liest den tatsächlichen Pegel zurück.

Stifel
22.10.2010, 20:36
Das mag ich an diesem Forum. Kurze, knappe und infomative antworten.

Danke.

Jaecko
22.10.2010, 21:17
Eventuell (nicht getestet) kann man in Bascom dieses Konstrukt

If Taster1 = 0 Then
Led1 = 1
Else
Led1 = 0
End If

noch etwas kürzen: Led1 = NOT Taster1.
Gleiches auch für LEDs/Taster 2-5.