
Försöker få en Maxim DS1802 att fungera. Någon här som använt en? Det är en digital potentiometer som styrs antingen via knapptryckningar, eller som jag försöker med, ett seriellt interface. (alla knappingångar är jordade enligt datablad)
Det verkar inte så svårt, man sätter !RST hög, och sen klockar in 16 bitar på D, en i taget när CLK går hög. och sen sätta !RST låg. För det mesta fungerar det inte alls, men då och då lyckas jag få till att wipern hoppar till ett till synes godtyckligt ställe.
Dataöverföringen är väl rätt så standard, så någon kanske har ett bättre sätt att göra det på? Själv använder jag en 16F877A@20MHz och Hitech PICC. Mina C-kunskaper är inte de bästa

Kod: Markera allt
void set_pot(unsigned char pot_val)
{
pot_val&=0x3F; //maskar av till de lägsta 6bit som är datan
RD6=1; //!RST går hög, starta programmering
DelayUs(10); //pausa lite
for(i=0;i<=1;i++) //först pot1 och sen pot2 med samma värde
{
k=0x01; //bit 0
for(j=0;j<=7;j++)
{
RD4=0; //CLK går låg
DelayUs(10);
if(pot_val&&k) //kollar om bit nr i (k) är hög eller låg
RD5=1; //och sätt biten
else
RD5=0;
DelayUs(10);
RD4=1; //CLK går hög
k<<1; //kolla nästa bit
DelayUs(10);
}
}
RD6=0; //!RST går låg. programmering klar
DelayUs(10);
}