mikroPascal a SHT potazmo I2C
milan
minkob@stonline.sk
Pondělí Listopad 29 11:23:36 CET 2004
Radek a Petra Vickovi wrote:
> Zdravim,
> nepouzivate nekdo mikroPascal pro PICy? Dneska jsem se rozhodl si napsat
> vlastni obsluhu SHT11 s tim, ze to zkusim s mikroPascalem pac do ASM se mi
> nechtelo kvuli tomu slozitemu linearizacnimu retezci.
>
> Vsechno mam napsany odladeny - celou matematiku vcetne zobrazeni a
> ztroskotal jsem na tom cteni SHT - vicemene nevim proc se mi nechce
> zinicializovat rutina Soft_I2C_Config - zjistil jsem ze to ceka z nejakeho
> duvodu az neco nahodi SCK do 1 nicmene nevim co by to tam melo nahodit kdyz
> master je MCU a hodiny by si mel sam ridit!!!
>
> Tady je ta rutina a prosim nedeste se je to muj prvni vytvor a bude se
> optimalizovat.
>
> procedure CtiSHT;
> begin
> TRISA := 0; //PORTA je output
> //Transmission Start
> SetBit(PORTA,0);ClearBit(PORTA,1) ;
> nop;
> SetBit(PORTA,1);
> nop;
> ClearBit(PORTA,0);
> nop;
> ClearBit(PORTA,1) ;
> nop;nop;nop;
> SetBit(PORTA,1);
> nop;
> SetBit(PORTA,0);
> nop;
> ClearBit(PORTA,1) ;
> //Transmission End
>
> Soft_I2C_Config(PORTA,0,1); //procedure Soft_I2C_Config(var Port :
> byte; const SDA, SCL : byte; clock : longint);
> TRISA := 0; // PORTA is output
> PORTA := $FF;
> Soft_I2C_Start;
> Soft_I2C_Write(%00000011); //posilame prikaz cteni teploty
> Soft_I2C_Stop;
>
> Delay_ms(220); //pockam na prevod
>
> Soft_I2C_Start;
> T_MSB := Soft_I2C_Read(1); //ctu horni byte s potvrzenim ACK
> T_LSB := Soft_I2C_Read(1); //ctu dolni byte s potvrzenim ACK
> Soft_I2C_Stop;
> end;
>
Skusal som mikroBasic, ale pri AD_read mi zastavil a koniec. Potom som
si presiel casovacie subrutiny, ktore pouziva (myslim Delay_22_mikrosec)
a je v nej chyba. Poslal som im to ako bug (3 tyzdne dozadu), ale
neopravili to.
Milan
-=x=-
Skontrolované antivírovým programom NOD32
Další informace o konferenci Hw-list