Atmega8515 i program do sterowania regulacji głośności

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
komodor2000
-
Posty: 3
Rejestracja: 19 sty 2006, 21:45
Lokalizacja: Janów
Kontakt:

Atmega8515 i program do sterowania regulacji głośności

Post autor: komodor2000 » 14 sty 2007, 20:36

Witam jestem początkującym programistą więc proszę o wyrozumiałość. Konstruuje sterowanie do wzmacniacza i pisząc program (w Bascomie) natrafiłem na problem, mianowicie nie wiem w jaki sposób napisać podprogram sterujący regulacją głośności,
chodzi o sterowanie potencjometru z silniczkiem. Na razie osiągnąłem efekt tego typu że po wciśnięciu na pilocie przycisku + lub - to potencjometr się kręci ale bez przerwy a nie na czas naciskanego przycisku. Czy ktoś wie jak zrealizować taką funkcje ?? Będę wdzięczny za podanie przykładowego programu.

Pozdrawiam
Ostatnio zmieniony 15 sty 2007, 15:50 przez komodor2000, łącznie zmieniany 1 raz.

Michał17
Użytkownik
Posty: 329
Rejestracja: 07 sty 2006, 14:25
Lokalizacja: Łódź

Post autor: Michał17 » 15 sty 2007, 14:14

może łatwiej zastosować potencjometry cyfrowe?? np.: DS2450

komodor2000
-
Posty: 3
Rejestracja: 19 sty 2006, 21:45
Lokalizacja: Janów
Kontakt:

Post autor: komodor2000 » 15 sty 2007, 15:54

No niby łatwiej ale ja już kupiłem taki potencjometr i chciałbym go wykorzystać bo inaczej 30 zł w błoto :(

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 15 sty 2007, 16:54

a mógłbyś pokazac aktualny program?, bo pewnie wystarczy mała poprawka.

komodor2000
-
Posty: 3
Rejestracja: 19 sty 2006, 21:45
Lokalizacja: Janów
Kontakt:

Post autor: komodor2000 » 16 sty 2007, 17:35

W sumie jest to szkielet programu obsługa rc5 no i moje próby napisania obsługi potencjometru z silniczkiem

$crystal = 4000000

Dim Adres As Byte ' Adres RC5
Dim Komenda As Byte ' Komenda RC5
Dim A As Bit
Dim B As Bit

Declare Sub Get_rc5 ' Odbiera komendy RC5
Config Rc5 = Pind.2
Config Pinc.0 = Output 'końcówka Portc.0 będzie wyjściem
Config Pinb.0 = Output
Config Pinb.1 = Output
Enable Interrupts

Do

Call Get_rc5 'sprawdza czy wysłano polecenie z pilota
If Komenda = 1 Then Toggle Portc.0 'jezeli komenda = 13, zmien stan pinc.0 na przeciwny
Waitms 130 'czekaj okolo pół sekundy
If Komenda = 16 Then Gosub 1:
If Komenda = 17 Then Gosub 2:

Loop

Sub Get_rc5: ' Odbiera kod z pilota

Getrc5(adres , Komenda) ' Odbiór RC5
If Adres = 12 Then
'zerujemy znacznik w słowie RC5(najbardziej znaczacy bit)
Komenda = Komenda And &B01111111 'bit znacznika jest zmieniany podczas każdej transmisji kodu rc5
Adres = Adres And &B01111111
End Sub


1:
If A = 0 Then
Set Portb.0
A = 1
Waitms 50
Reset Portb.0
Return
End If
If A = 1 Then
Reset Portb.0
A = 0
Waitms 50
Set Portb.0
Return
End If


2:
If B = 0 Then
Set Portb.1
B = 1
Waitms 50
Reset Portb.0.1
Return
End If
If B = 1 Then
Reset Portb.1
B = 0
Waitms 50
Set Portb.1
Return
End If

ODPOWIEDZ