Witam.
Otóż składam sobie pseudo amplituner i chciał bym do regulacji głośności użyć 3xPGA2311 sterowanych przez atmega 8 regulacja mila by się odbywać tylko przez impulsator. W zasadzie to wszystko bo nie potrzebuje wyboru źródła ani wyświetlaczy.
Schemat w zasadzie nie różniący się niczym od katalogowego poza dodaniem mute

Płytka wygląda tak - mile widziane sugestie/poprawki

No i sedno sprawy czyli program obsługujący to wszytko, i tu z mojej strony prośba do osób znających się na programowaniu o sprawdzenie, pokazanie błędów i ewentualnie podpowiedzenia jak to powinno wyglądać.
$crystal = 11000000
Config Spi = Soft , Dout = Pinc.0 , Cs = Pinc.2 , Clk = Pinc.1
Config Pinb.0 = Input
Config Pinb.1 = Input
A Alias Pinb.1
B Alias Pinb.2
Dim Value As Byte
Dim Af As Bit
Dim L As Byte
Dim R As Byte
L = 130
R = 130
Do
Set Pinb.1 : Set Pinb.2
If A = 1 And B = 1 Then 'impulsator w pozycji - zwarte
Af = 1
End If
If A = 0 And B = 0 Then 'impulsator w pozycji - rozwarte
Af = 0
End If
If A = 0 And B = 1 Then 'rozpoczety ruch impulsatora
If Af = 1 Then 'jezeli byl zwarty to
Do
If B = 0 Then Exit Do 'poczekaj az B = 0
Loop
Decr Value 'rozpoznany ruch w lewo
Else 'jezeli byl rozwarty to
Do
If A = 1 Then Exit Do 'poczekaj az A = 1
Loop
Incr Value 'rozpoznany ruch w prawo
End If
End If
If A = 1 And B = 0 Then 'rozpoczety ruch impulsatora
If Af = 1 Then 'jezeli byl zwarty to
Do
If A = 0 Then Exit Do 'poczekaj az A = 0
Loop
Incr Value 'rozpoznany ruch w prawo
Else 'jezeli byl rozwarty to
Do
If B = 1 Then Exit Do 'poczekaj az B = 1
Loop
Decr Value 'rozpoznany ruch w lewo
End If
End If
If Incr Value Then 'glosniej na ruch prawo
If L = 255 Then
L = 254
End If
If R = 255 Then
R = 254
End If
If Decr Value Then 'ciszej na ruch lewo
If L = 0 Then
L = 1
End If
If R = 0 Then
R = 1
End If
Loop
Spio:
Spiinit
Spiout L , 1
Spiout R , 1
Return
Na zakończenie dodam ze o programowaniu uP wiem nie wiele a powyższy powstał z tego co znalazłem o obsłudze impulsatora i PGA :wink:
Za jakie kol wiek sugestie, wskazówki z góry wielkie dzięki
Pozdrawiam rzerzuch
Otóż składam sobie pseudo amplituner i chciał bym do regulacji głośności użyć 3xPGA2311 sterowanych przez atmega 8 regulacja mila by się odbywać tylko przez impulsator. W zasadzie to wszystko bo nie potrzebuje wyboru źródła ani wyświetlaczy.
Schemat w zasadzie nie różniący się niczym od katalogowego poza dodaniem mute

Płytka wygląda tak - mile widziane sugestie/poprawki

No i sedno sprawy czyli program obsługujący to wszytko, i tu z mojej strony prośba do osób znających się na programowaniu o sprawdzenie, pokazanie błędów i ewentualnie podpowiedzenia jak to powinno wyglądać.
$crystal = 11000000
Config Spi = Soft , Dout = Pinc.0 , Cs = Pinc.2 , Clk = Pinc.1
Config Pinb.0 = Input
Config Pinb.1 = Input
A Alias Pinb.1
B Alias Pinb.2
Dim Value As Byte
Dim Af As Bit
Dim L As Byte
Dim R As Byte
L = 130
R = 130
Do
Set Pinb.1 : Set Pinb.2
If A = 1 And B = 1 Then 'impulsator w pozycji - zwarte
Af = 1
End If
If A = 0 And B = 0 Then 'impulsator w pozycji - rozwarte
Af = 0
End If
If A = 0 And B = 1 Then 'rozpoczety ruch impulsatora
If Af = 1 Then 'jezeli byl zwarty to
Do
If B = 0 Then Exit Do 'poczekaj az B = 0
Loop
Decr Value 'rozpoznany ruch w lewo
Else 'jezeli byl rozwarty to
Do
If A = 1 Then Exit Do 'poczekaj az A = 1
Loop
Incr Value 'rozpoznany ruch w prawo
End If
End If
If A = 1 And B = 0 Then 'rozpoczety ruch impulsatora
If Af = 1 Then 'jezeli byl zwarty to
Do
If A = 0 Then Exit Do 'poczekaj az A = 0
Loop
Incr Value 'rozpoznany ruch w prawo
Else 'jezeli byl rozwarty to
Do
If B = 1 Then Exit Do 'poczekaj az B = 1
Loop
Decr Value 'rozpoznany ruch w lewo
End If
End If
If Incr Value Then 'glosniej na ruch prawo
If L = 255 Then
L = 254
End If
If R = 255 Then
R = 254
End If
If Decr Value Then 'ciszej na ruch lewo
If L = 0 Then
L = 1
End If
If R = 0 Then
R = 1
End If
Loop
Spio:
Spiinit
Spiout L , 1
Spiout R , 1
Return
Na zakończenie dodam ze o programowaniu uP wiem nie wiele a powyższy powstał z tego co znalazłem o obsłudze impulsatora i PGA :wink:
Za jakie kol wiek sugestie, wskazówki z góry wielkie dzięki
Pozdrawiam rzerzuch
Skomentuj