(1 głosujący) Opis ten przybliży zasadę komunikacji z układami posiadającymi szeregowy interfejs w postaci rejestru przesuwnego. Opis zostanie przedstawiony na podstawie układu potencjometru cyfrowego DS1267 jednak nie jest to jedyny układ sterowany tym sposobem. Ten sposób przesyłania danych do układów pomocniczych nosi nazwę 3-Wire (RST,CLK i DQ). Język Bascom AVR:'************* Konfiguracja uC ***************** '*********************************************** Rst Alias Portb.3 'wyjście Dq Alias Portb.1 'wyjście Clk Alias Portb.4 'wyjście '********** Konfiguracja uC Koniec ************ '****************** Zmienne ******************* '*********************************************** Dim N As Byte , Dane As Word Dim Pot_A As Byte, Pot_B As Byte '************* Zmienne Koniec **************** '************ Warunki Poczatkowe *************** '*********************************************** N = 15 'rozpoczęcie procedury wysyłania Clk = 0 'sygnał zegarowy = 0 Dane = 256 * Pot_A 'tworzenie 16-bitowej zmiennej z wartoscią potencjometrów Dane = Dane + Pot_B Rst = 1 'stan wysoki na RST, początek wysyłania danych '******* Warunki Poczatkowe Koniec *********** '************** Petla glowna ****************** '*********************************************** Do If Rst = 1 Then 'wysylanie If Clk = 1 Then If N <> 255 Then Dq = Dane.n Decr N Else Rst = 0 Dq = 0 N = 15 End If End If Toggle Clk End If Loop End '************ Petla glowna Koniec ************** Do komunikacji (wysyłania danych) będziemy potrzebować 3 pinów mikrokontrolera, skonfigurowanych jako wyjścia. Przypisano nim nazwy: Rst, Dq oraz Clk. Główna część programu zawiera się w głównej pętli, między instrukcjami Do i Loop. Dane są wysyłane gdy w stan wysoki zostanie ustawiona linia Rst. Wykonywane są cyklicznie następujące czynności: If Clk = 1 Then If N <> 255 Then Dq = Dane.n Decr N Else Rst = 0 Dq = 0 N = 15 End If End If Toggle Clk Linia Clk jest przebiegiem zegarowym, dzięki instrukcji Toggle Clk, pin ten jest zmieniany na przeciwny po każdym wywołaniu procedury wysyłania danych. Jeżeli wartość Clk stanie się równa 1 to znaczy że zostało wykryte zbocze narastające (moment zapisu danych przez rejestr układu DS1267). Przed zapisem Clk ma wartość 0 co na samym początku (przy pierwszym zboczu narastającym na Clk) oznacza wpisanie do rejestru 0 (taki jest stan Dq na początku, nie używamy 1 bitu w rejestrze bo jest on potrzebny w specjalnym trybie pracy potencjometru). Pozostałe wartości zapisane w zmiennej Dane (16 - bitowej) są przypisywane na wyjście Dq począwszy od bitu 15 do bitu 0 (za pomocą zmiennej pomocniczej N) i wpisywane do rejestru na kolejnych zboczach narastających sygnału Clk. Jeśli licznik N przekroczy już 0 (stanie się równy 255, bo jest to zmienna bajtowa) to procedura wysyłania danych zostanie zakończona. Ustawione zostanie zero na sygnale Rst, co spowoduje odpowiednie ustawienie suwaków, zgodnie z wysłanymi danymi. Jednocześnie sygnał Dq oraz zmienna pomocnicza N powrócą do swych domyślnych wartości. Więcej informacji można znaleźć w bardziej rozbudowanym kodzie w projekcie: Potencjometr Cyfrowy
|
|||
DS1267
Witam!!!
Chciałbym się Pana spytać jak przerobić ten program aby można było całą pracę układu DS1267 pokazać na wyświetlaczu LCD?
DS1267
Witam!!!
Spróbowałem sam przerobić ten program i wyszło mi coś takiego:
Czy dobrze to wszystko napisałem?
Jeżeli nie to proszę poprawić tak aby było dobrze.
Fragment programu, który sam to:
Re: Program Ds
Zrób wcięcia w programie bo nie ma szans tego zanalizować.....
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Program DS
Witam!
Jestem początkującym programistą i nie wiem jak to zrobić.Byłbym bardzo wdzięczny jak pan mógłby mi ten program przerobić.
Re; DS1267
To w takim razie napisz co masz na myśli "pokazac całą pracę na LCD"? pokazać położenia suwaków?, czy głośnośc w 100% bo tak wnioskuję z wcześniejszych postów?
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
chciałbym aby na wyświetlaczu
chciałbym aby na wyświetlaczu była taka podziałka -[-----------]+.Czyli jak pan się domyśla jest to podziałka głośności.Jak będzie się pogłaszało muzykę to kursor będzie przechodził powoli w prawą stronę a jak przyciszało to w lewą.A w drugiej linijce wyświetlacza chciałbym aby był taki napis:
Głośność:(w tym miejscu cyfry od 0 do 30 w zależności od pogłoszenia)dB.
Myślę, że teraz chyba będzie pan wiedział o co mi chodzi?
Re: Potencjometr
Górną linijkę rozumiem ale niewiem skąd mamwytrzasnąć ci wzmocnienie w decybelach. Chodzi ci zrobienie wskaźnika tłumienia potencjometru głośności? tak wogóle to chodziło ci chyba o skalę od -ileś do 0 bo dodatnia wartość oznacza wzmocnienie które trzeba znać aby to policzyć (taki szkolny wzór z logarytmem: 20*log(Uout/Uin))? Chyba że poprostu ma to pokazywać położenie suwaka za pomocą liczby tak jak zrobiłeś to w twojej wersji programu?
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
dokładnie tak ja w mojej
dokładnie tak ja w mojej wersji programu
Mirley: reszta postów usunięta, nie wolno pisać swoich postów jeden pod drugim, albo się zaloguj uzyskując możliwość edycji albo dokładnie przemyśl co chcesz pisać bo nie mam czasu na scalanie pojedynczych wpisów
Re; potencjometr
Zrobi się ale trzeba mieć trochę czasu
--------------
Sprawdź tak:
sprawdź to teraz bo napisałem na sucho bez kompilacji i mogą być błędy. Program to prawie w całości projekt pot. cyfrowego
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
kod
Czyli mam teraz zaprogramować procka?
Re: Program
Wkleić do bascoma skompilować i wgrać czy będzie działało..... nie mam czasu aby to sprawdzać dokładnie. Mam nadzieje że dobre piny do lcd wpisałeś w programie
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
KWARC
Skompilowało się dobrze ale wgram jutro ponieważ zamówiłem dopiero procesor i jutro ma mi dojść.
W programie jest kwarc 8MHz czy mogę zmienić na 16MHz bo tylko taki mam?
A z tymi pinami do lcd to oco chodzi?
Re: Potencjometr
Możesz dać 16MHz ale na początku programu musisz to zdefiniować, w linijce crystal. Lcd musisz zdefiniować do jakich pinów podłączyłeś:
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
atmega16a
witam!
czy ATMEGA16 różni się czymś od ATMEGA16A?
Re: ATMEGA16
Teoretycznie nie różni się niczym, te z literą A to nowe opracowania ATMELA będące połączeniem M16 i M16L. Z tego co wiem to nie będzie już wersji LOW power bo załatwia to jeden mikrokontroler z literka A.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
atmega16a
czyli z zaprogramowaniem tej atmegi16a jest takie samo jak zaprogramowanieatmegi16?
nie
nie
nie?
a czemu nie?
Tak, tak można przepraszam
Tak, tak można przepraszam byłem zmęczony i zapomniałem, aha a moze kolega zdradzic gdzie dorwał już takie atmegi, na allegro.pl nie ma
atmega16a
wejdź na TME.EU tam znajdziesz za 13,90pln netto
Re: Obsługa potencjometru ds1267s
Mireczku, mam pytanie bo nie mogę się doczytać:
jak odczytać wartość aktualnego położenia suwaków?
jest to zapisane w tym miejscu?
czemu dorzucona jest jedynka na końcu? chodzi o odczyt położenia suwaka potencjometru nr1?
Moja strona w powijakach
Potencjometr
Nie, jest to standardowa funkcja odczytu z eeprom.
1 jest adresem w pamięci eeprom z którego czytam położenie obu suwaków. Zmienna głos przechowuje położenie suwaków. Oba potencjometry mają takie samo położenie
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: Obsługa potencjometru ds1267s
a jeszcze jedno pytanie.
da się wprowadzić ów potencjometr od razu w tryb mute?
jeśli tak to jak to zrobić?
Moja strona w powijakach
Re: Mute
Nie ma czegoś takiego jak mute potencjometru... jak sobie to wyobrażasz, potencjometr cyfrowy z punktu widzenia wzmacniacza jest taki sam jak zwykły potencjometr. Można na początku programu ustawić suwak w skrajnym położeniu, aby wejście wzmacniacza było zwarte do masy, wtedy uzyskasz wyciszenie
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: Obsługa potencjometru ds1267s
to mute to umowne. tylko jak ustawić ten potencjometr na zero?
Moja strona w powijakach
Re: Potencjometr
Popatrz do karty katalogowej.... potencjometr ma rejestr przesuwny 16 bitowy do zapisu położenia suwaków. Jak wpiszesz w dwa bajty 0 to suwak ustawi sie na minimum. ja robię z dwóch bajtów wartość Word (przykład pierwszy na górze):
Wystarczy jak w Pot_A i Pot_B będzie wpisane 0 i suwak ustawiony
W programie niżej masz tylko jedna zmienną Glos i wpisuje się ona w dwa suwaki, więc wystarczy Glos = 0 i uruchomic procedurę wysyłania poprzez RST=1
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
kod
Jaki to język ? Panie MF
Re: Kod
Bascom AVR (Basic)
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam, kiedyś w Bascomie
Witam, kiedyś w Bascomie programowałem... ale to były lata świetlne temu. Teraz mam "problem" i proszę o pomoc.
Muszę zrobić timer. Przeważnie to są przyciski góra - dół, wybieranie sekwencyjne... nikt tego nie lubi.
W kuchence mikrofalowej mam zegar - naciskam przycisk ustawiam godziny kręcąc pokrętłem w lewo lub w prawo.
Naciskam ponownie przycisk ustawiam minuty (kręcąc pokrętłem w lewo lub w prawo). Naciskam przycisk zatwierdzam ustawienia. Rozwiązanie bardzo fajne. Może ktoś by pomógł?
Pozdrawiam
Witam! Masz na tej stronie
Witam! Masz na tej stronie gotowe rozwiązanie. Poczytaj o enkoderze.
Jak podłaczyć dwa potencjometry ds1267 pod jeden procesor
Witam
mam pytanie, może mi pomożesz.
Potrzebuję wiedzy jak ma wyglądać kod w Bascomie kiedy podłączę dwa układy ds1267.
opracowałeś kod pod jeden i ok działa a jak mam uruchomić drugi?
jest taka możliwość?
Byłbym wdzięczny za poradę , sugestię... może nawet za gotowy kod.
pozdrawiam
Re: Ds1267
Można podłączyć dowolną ilośc potencjometrów w szeregu. Kłania sie karta katalogowa na stronie 4 i 5 "Cascade Operation". W kodzie źródłowym trzeba: Zmienić zmienną Dane na typ Long (4 bajty), a zmienna N powinna miec domyślnie N = 31 a nie N = 15. W zmiennej Dane trzeba zapisac 4 bajty określające położenia suwaków
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.