Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: zamzam23 - 20 Temmuz 2011, 16:29:17

Başlık: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: zamzam23 - 20 Temmuz 2011, 16:29:17
Arkadaşlar şuan üzerinde çalıstıgım projede 3 tane digital potansyometre kullanmam gerekıyor. ccsnin kendı kutuphanesinde ds1868 için dosya mevcut. ancak bilindiği üzere ds1868 de 2 tane pot var. bana ise 3 tane gerekli. şimdi sorum şu:
1-ben tek işlemciyle ccs kullanarak( mumkunse hazır kutuphaneyi kullanarak) 2 tane ds1868 ı nasıl kontrol edebılırım?
2-ya da diğer bir cozum olarak ıcerınde ıkıden fazla pot olan bir entegre varmı piyasada bildiğiniz?
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: VFR - 20 Temmuz 2011, 18:10:27
Hocam geçen sene yapmış olduğum bir uygulama var. 2 adet potu kontrol ediyoruz tek entegreyle. Dosyaları buraya ekliyorum.
http://hotfile.com/dl/124577590/2b7e5ed/877.rar.html (http://hotfile.com/dl/124577590/2b7e5ed/877.rar.html)
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: mufitsozen - 20 Temmuz 2011, 18:26:08
Alıntı yapılan: zamzam23 - 20 Temmuz 2011, 16:29:17
Arkadaşlar şuan üzerinde çalıstıgım projede 3 tane digital potansyometre kullanmam gerekıyor. ccsnin kendı kutuphanesinde ds1868 için dosya mevcut. ancak bilindiği üzere ds1868 de 2 tane pot var. bana ise 3 tane gerekli. şimdi sorum şu:
1-ben tek işlemciyle ccs kullanarak( mumkunse hazır kutuphaneyi kullanarak) 2 tane ds1868 ı nasıl kontrol edebılırım?
2-ya da diğer bir cozum olarak ıcerınde ıkıden fazla pot olan bir entegre varmı piyasada bildiğiniz?

Dallas/Maxim'in DS1844 Quad Digital Potentiometer var. 3 yada 5 tel programli gozukuyor. CCS-C programlarini adapte etmek cok zor olmasa gerek
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: mufitsozen - 20 Temmuz 2011, 18:45:10
Alıntı yapılan: zamzam23 - 20 Temmuz 2011, 16:29:17
Arkadaşlar şuan üzerinde çalıstıgım projede 3 tane digital potansyometre kullanmam gerekıyor. ccsnin kendı kutuphanesinde ds1868 için dosya mevcut. ancak bilindiği üzere ds1868 de 2 tane pot var. bana ise 3 tane gerekli. şimdi sorum şu:
1-ben tek işlemciyle ccs kullanarak( mumkunse hazır kutuphaneyi kullanarak) 2 tane ds1868 ı nasıl kontrol edebılırım?
2-ya da diğer bir cozum olarak ıcerınde ıkıden fazla pot olan bir entegre varmı piyasada bildiğiniz?

@zamzam23 CCS_C deki dosya icindeki c programina kucuk bir iki degisiklik yaparak  2 chip kontrol edilebilir. Bende bu chiplerden olmadigi icin deneme yapamam ama, isterseniz yarin size 2 ayri chip kontrol edecek sekilde iki ayri c modulu hazirlarim. ornegin DS1868A.c ve DS1868B.c (icindeki function'larida set_potA(int pot_num, int new_value) ve set_potB(int pot_num, int new_value) sekline ceviririz, cok kolaylikla yapilabilir.

A chip'i icin PCI pinleri :
    #define RST1 PIN_B0
    #define CLK PIN_B1
    #define DI PIN_B2

olarak tanimli,

B chip icin hangi pinler tanimli olsun istersiniz? (hatta bu iki function'i ayni anda[kesme icinden vs] calistirmazsanizCLK ve DI PIN_B1 ve PIN_B2 olarak kalir RST1A PIN_B0 yapariz, ornegin PIN_B3'ude RST1B olarak kullaniriz, boylece 4 tel ile iki chipin baglantisini halledersiniz. Yani iki chip'ede data ve clock ayni pinlerden gider, chipin birine giden RST1 ucu PIN_N0 olur, obur chipe giden RST1 ucuda PIN_B3 olur mesela.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: zamzam23 - 20 Temmuz 2011, 20:15:09
Alıntı yapılan: healme - 20 Temmuz 2011, 18:10:27
Hocam geçen sene yapmış olduğum bir uygulama var. 2 adet potu kontrol ediyoruz tek entegreyle. Dosyaları buraya ekliyorum.
http://hotfile.com/dl/124577590/2b7e5ed/877.rar.html (http://hotfile.com/dl/124577590/2b7e5ed/877.rar.html)
hocam proteus şimdilik yüklü olmadıgı için devreyi inceleyemedim ancak koddan anladıgım kadarıyla iki pot kontol etmişsiniz ama tek chip tek entegre var. benım ıstedıgım ıse tek işlemci çift ds1868 yani örneğin 4 pot kontrolu. ama yıne de saolun

Alıntı yapılan: mufitsozen - 20 Temmuz 2011, 18:45:10
@zamzam23 CCS_C deki dosya icindeki c programina kucuk bir iki degisiklik yaparak  2 chip kontrol edilebilir. Bende bu chiplerden olmadigi icin deneme yapamam ama, isterseniz yarin size 2 ayri chip kontrol edecek sekilde iki ayri c modulu hazirlarim. ornegin DS1868A.c ve DS1868B.c (icindeki function'larida set_potA(int pot_num, int new_value) ve set_potB(int pot_num, int new_value) sekline ceviririz, cok kolaylikla yapilabilir.

A chip'i icin PCI pinleri :
    #define RST1 PIN_B0
    #define CLK PIN_B1
    #define DI PIN_B2

olarak tanimli,

B chip icin hangi pinler tanimli olsun istersiniz? (hatta bu iki function'i ayni anda[kesme icinden vs] calistirmazsanizCLK ve DI PIN_B1 ve PIN_B2 olarak kalir RST1A PIN_B0 yapariz, ornegin PIN_B3'ude RST1B olarak kullaniriz, boylece 4 tel ile iki chipin baglantisini halledersiniz. Yani iki chip'ede data ve clock ayni pinlerden gider, chipin birine giden RST1 ucu PIN_N0 olur, obur chipe giden RST1 ucuda PIN_B3 olur mesela.

hocam sana da tesekkür ederim. potları aynı anda kullanmayacagım.mümkün oldugu kadar az pinle bu işi halletmeme yardım ederseniz sevinirim. kullanacagımız pinler,B4-B7 olmasın yeter. o pinlerle encoder okunacak cunku.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: VFR - 20 Temmuz 2011, 20:21:47
Bir tane daha entegre ekleyip kodu kopyalayarak 4 pot kontrol edebilirsiniz, fazla bir değişikliğe gerek yok hiç.
[IMG]http://i53.tinypic.com/2h4ywir.png[/img]
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: zamzam23 - 20 Temmuz 2011, 20:51:56
ds1868 proteus kütüphanesi için .lib doyasını yollar mısın bi zahmet
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: VFR - 20 Temmuz 2011, 21:01:34
Hocam internetten bulduğum bir de şöyle bir devre vardı.
Kütüphanesi de var burada zaten.
http://hotfile.com/dl/124590423/375937e/ds1868_ve_pic16f877_uygulamas.rar.html (http://hotfile.com/dl/124590423/375937e/ds1868_ve_pic16f877_uygulamas.rar.html)
DS1868'in kütüphanesi yokmuş içinde, kütüphanenin kodu bu şekilde
///////////////////////////////////////////////////////////////////////////
////   Library for a Dalas DS1868                                      ////
////                                                                   ////
////   init_pots ();    Sets all of the pots to 0                      ////
////                                                                   ////
////   set_pot (pot_num, new_value);  Sets pot pot_num to new_value    ////
////                                                                   ////
///////////////////////////////////////////////////////////////////////////
////        (C) Copyright 1996,2003 Custom Computer Services           ////
//// This source code may only be used by licensed users of the CCS C  ////
//// compiler.  This source code may only be distributed to other      ////
//// licensed users of the CCS C compiler.  No other use, reproduction ////
//// or distribution is permitted without written permission.          ////
//// Derivative programs created using this software in object code    ////
//// form are not restricted in any way.                               ////
///////////////////////////////////////////////////////////////////////////

#define RST1 PIN_B0
#define CLK PIN_B1
#define DI PIN_B2
#define NUM_POTS 2

BYTE pots[2];

set_pot (int pot_num, int new_value) {
   BYTE i;
   BYTE cmd[3];

   if (pot_num >= NUM_POTS)
      return;

   pots[pot_num] = new_value;

   cmd[0]=pots[0];
   cmd[1]=pots[1];
   cmd[2]=0;

   for(i=1;i<=7;i++)
     shift_left(cmd,3,0);

   output_high(RST1);
   delay_us(2);

   for(i=1;i<=17;i++) {
      output_bit(DI, shift_left(cmd,3,0));
      delay_us(2);
      output_high(CLK);
      delay_us(2);
      if(i==17)
         output_low(RST1);
      output_low(CLK);
      delay_us(2);
   }
}

init_pots ()
{
   set_pot (0,0);
   set_pot (1,0);
}

Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: zamzam23 - 20 Temmuz 2011, 21:07:54
saol.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: rercan - 20 Temmuz 2011, 22:37:06
pt2258 var 6 kanal volume kontrol . ı2c ile calışıyor.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: zamzam23 - 20 Temmuz 2011, 22:49:28
Alıntı yapılan: rercan - 20 Temmuz 2011, 22:37:06
pt2258 var 6 kanal volume kontrol . ı2c ile calışıyor.
hocam bu nedir? 6 kanal gzl de ayarlı direnç mi var içinde. baktım biraz volume kontrol diyor IN1 OUT1 şeklinde.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: zamzam23 - 21 Temmuz 2011, 12:58:43
mufitsozen arkadaş. o bahsettiğin kütüphaneyi hazırlamam da yardımcı olur musun bana
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: mufitsozen - 22 Temmuz 2011, 14:21:21
kesinlikle yardımcı olurun. Aslında bu sabah yapıp yollamak istedim ama acil bir durum oldu  herhalde bugun ofise gidemeyecegim. Yarın ofise gittigimde yazar yollarım.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: zamzam23 - 22 Temmuz 2011, 14:46:21
peki. bende malzemeyi temın etmeye calsıyorum pek bulunmuyor galıba piyasada. internette bulamadım da bıyere soyledım bakıyorlar haber verıcek bana bulunca.onlarda da yokmus piyasadan bakıyorlar.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: Tagli - 22 Temmuz 2011, 16:25:44
Burada (http://tinyurl.com/3pk2jkx) gozukuyor ama ellerinde kalmis midir onu bilemem. Ben zamaninda oradan bir tane almistim ama her nedense calistiramadan yaktim galiba. Bir tane daha almak icin tekrar gittigimde de "kalmadi" demislerdi.

Sana kac tane lazim? 1 - 2 tane lazimsa elimde MCP42010 var.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: zamzam23 - 22 Temmuz 2011, 16:56:09
10.55TL diyor. bu kadar pahalı mı entegreler? 2 tane dijital potansiyometre lazım bana.markası önemli değil. ds1868 in hazır kütüphanesi var mufitsozen arkadas da hazır yardım edecek kütüphaneyi olusturmamda. onun ıcın bunu kullanyım demiştim
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: H@S@N - 22 Temmuz 2011, 18:13:41
ustam kod işinden pek anlamam ama arkadaşımızında dediği pt2258 var.6 kanal volume kontrol.gerçi sadece ses sinyali içinmi yapılmış yoksa dijital potansiyometremi bilmiyorum.ama her kanalı ayrı ayrı kontrol etmek mümkün.arıza için gelen bi ses sisteminde buna rastlamıştım..
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: mufitsozen - 23 Temmuz 2011, 13:42:15
Alıntı yapılan: zamzam23 - 22 Temmuz 2011, 16:56:09
10.55TL diyor. bu kadar pahalı mı entegreler? 2 tane dijital potansiyometre lazım bana.markası önemli değil. ds1868 in hazır kütüphanesi var mufitsozen arkadas da hazır yardım edecek kütüphaneyi olusturmamda. onun ıcın bunu kullanyım demiştim

sayin @zamzam23 driverlardaki DS1868.c dosyasina yeni bir fonksiyon ekledim. yeni driver'a DS1868x2.c adini verdim

bu chip icin orijinal driver RST1, DI, ve CLK uclarini kullaniyordu (bunlarda RB0, RB1 ve RB2) bende RST2 diye yeni bir degisken olusturdum, RST2 olarak RB3 pinini sectim ve orijinal set_pot fonkisyonunu iki tane ayri fonksiyona cevirdim. set_pot_A ve set_pot_B

bende bu chip olmadigi icin, vede bugun ofisten erken cikmam gerektiginden deneyemedim. Fakat yapilan degisiklik cok basit eger cok basit bir ayrinti vs atlamamissam calismasi gerekir. set_pot fonksiyonunu set_pot_A ve set_pot_B olarak iki ayri fonksiyona cevirdim (cok karisik ve buyuk bir degisiklik yapmamak icin) Simdi DI ve CLK uclarini iki dijital direnc icinde ayni pinlere bagliyoruz, pot_a'yi degistirmek icin RST1'i pot_b'yi degistirmek icin RST2'yi kullaniyoruz.

RB3 ayni zamanda VLP pini oldugu icin #fuses'da NOVLP demeniz lazim(gerci CCS_C default olarak boyle set ediyor ama, yinede isinizi saglama alin.

bu degisiklikleri denedikten sonra bir problem olursa pazartesi yine bakariz. Umarim gozumden basit bir detay kacmamistir.



///////////////////////////////////////////////////////////////////////////
////   Library for Two Dallas DS1868                                   ////
////                                                                   ////
////   init_pots ();    Sets all of the pots to 0                      ////
////                                                                   ////
////   set_pot_A (pot_num, new_value);  Sets pot_A pot_num to new_value////
////   set_pot_B (pot_num, new_value);  Sets pot_B pot_num to new_value////
////                                                                   ////
///////////////////////////////////////////////////////////////////////////
////        (C) Copyright 1996,2003 Custom Computer Services           ////
//// This source code may only be used by licensed users of the CCS C  ////
//// compiler.  This source code may only be distributed to other      ////
//// licensed users of the CCS C compiler.  No other use, reproduction ////
//// or distribution is permitted without written permission.          ////
//// Derivative programs created using this software in object code    ////
//// form are not restricted in any way.                               ////
///////////////////////////////////////////////////////////////////////////

#define RST1 PIN_B0
#define CLK PIN_B1
#define DI PIN_B2
#define NUM_POTS 2

#define RST2 PIN_B3

BYTE pots_A[2];

set_pot_A (int pot_num, int new_value) {
   BYTE i;
   BYTE cmd[3];

   if (pot_num >= NUM_POTS)
      return;

   pots_A[pot_num] = new_value;

   cmd[0]=pots_A[0];
   cmd[1]=pots_A[1];
   cmd[2]=0;

   for(i=1;i<=7;i++)
     shift_left(cmd,3,0);

   output_high(RST1);
   delay_us(2);

   for(i=1;i<=17;i++) {
      output_bit(DI, shift_left(cmd,3,0));
      delay_us(2);
      output_high(CLK);
      delay_us(2);
      if(i==17)
         output_low(RST1);
      output_low(CLK);
      delay_us(2);
   }
}

BYTE pots_B[2];

set_pot_B (int pot_num, int new_value) {
   BYTE i;
   BYTE cmd[3];

   if (pot_num >= NUM_POTS)
      return;

   pots_A[pot_num] = new_value;

   cmd[0]=pots_B[0];
   cmd[1]=pots_B[1];
   cmd[2]=0;

   for(i=1;i<=7;i++)
     shift_left(cmd,3,0);

   output_high(RST2);
   delay_us(2);

   for(i=1;i<=17;i++) {
      output_bit(DI, shift_left(cmd,3,0));
      delay_us(2);
      output_high(CLK);
      delay_us(2);
      if(i==17)
         output_low(RST2);
      output_low(CLK);
      delay_us(2);
   }
}

init_pots ()
{
   set_pot_A (0,0);
   set_pot_A (1,0);
//
   set_pot_B (0,0);
   set_pot_B (1,0);
}



Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: Okan AKÇA - 23 Temmuz 2011, 15:23:34
mcp 4410 dijital pot olması lazımdı
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: zamzam23 - 23 Temmuz 2011, 23:40:04
set_pot_B (int pot_num, int new_value) {
   BYTE i;
   BYTE cmd[3];

   if (pot_num >= NUM_POTS)
      return;

  pots_A[pot_num] = new_value;

Hocam çok sağol. çok küçük bir eksiklik dışında kod çalısıyor eline sağlık.
Düzeltme: verdiğim kod parçacıgında altı çizili yer pots_B olmalı. Onun dışında kodun hatası yok çalısıyor.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: mufitsozen - 25 Temmuz 2011, 19:49:48
Alıntı yapılan: zamzam23 - 23 Temmuz 2011, 23:40:04
set_pot_B (int pot_num, int new_value) {
   BYTE i;
   BYTE cmd[3];

   if (pot_num >= NUM_POTS)
      return;

  pots_A[pot_num] = new_value;

Hocam çok sağol. çok küçük bir eksiklik dışında kod çalısıyor eline sağlık.
Düzeltme: verdiğim kod parçacıgında altı çizili yer pots_B olmalı. Onun dışında kodun hatası yok çalısıyor.

sende sagol,

cumartesi gunu ofise sadece 1 saatligine ugrayabildim, senin sorununu cozecek en cabuk kodu yazayim diye boyle acik forumlarda ornek olarak gosterilmemesi gereken cok kotu bir cozum yapmak zorunda kaldim. Ilk firsatta birden fazla DS1868 kontrol eden bir fonksiyon yazip sana yollarim. eger onuda deneyebilirsen cok makbule gecer


Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: zamzam23 - 25 Temmuz 2011, 21:35:41
tabi denerim.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: mesutpalut - 27 Aralık 2015, 20:06:47
Mrb arkadaşlar DS1867-10k kullanarak bir sinyal jeneratörü yapacağız bu konu hakkında yardım edebilirmisiniz. İki tane DS 1867-10k kullanacağız. İkisini tek bir pic le kontro ledebilirmiyiz. 0-10k arasında ayar yapmasını isitoruz her bir potun (3 pot kullanacağiz.) Ancak tam olarak yazılımı nasıl nasıl kontrol edilebilir birbilgim yok yardım edebilirmisiniz
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: Murat Mert - 28 Aralık 2015, 23:53:58
S.Â.
MCP41010 kullanmanı tavsiye ederim. Tek pot ama da uçları ile istediğin potu kontrol edersin. Ccs nin sitesinde bir ara görmüştüm. Kolay gelsin.
Başlık: Ynt: DS1868 dijital potansiyometre kullanımı hakkında
Gönderen: mesutpalut - 29 Aralık 2015, 01:15:56
Teşekkür ederim. Ancak DS1868 üzerine yoğunlaşttık.Bu ancak yazılımının tam mantığını anlayamadık