[elektro] PIC 10 bit szorzás kérdés

Rancz Lajos csiga at fosch.com
Sat Feb 7 08:17:27 CET 2009


Szia!

C-ben egyszerűbb az biztos, sőt lehet akár olyan hatékony is lehet mint 
a gépikód, de float műveletekkel nem fog menni usec időtartományban, 
mivel lebegőpontos műveletvégző egység híján szoftveres emuláció, ami 
nagyon lassú.

Üdv,
Lajos

Huszti Andras írta:
> Hali!
>
> C-ben nem egyszerubb?
>
> float integrate(float in, float dt) {
>  static float result = 0;
>  if (dt != 0) {
>    result += in * dt;
>  } else {
>   //t.b.d. error condition
>  }
>  return result;
> }
>
> esetleg kulturaltabb lehet:
>
> typedef struct _Integrator {
>  float in;
>  float out;
>  float dt;
> } Integrator;
>
> unsigned int intergrate (Integrator *integrator) {
>  unsigned int result = RET_ERROR;
>  if (integrator->dt != 0) {
>   integrator->out += integrator->in * integrator->dt;
>   integrator->out = RET_OK;
>   //t.b.d. overflow and underflow detection
>  } else {
>   //error condition
>   result = RET_ERROR;
>  }
>  return result;
> }
>
> En csinaltam regebben szabalyozastechnikai alaptagokat modulban. PID
> szabalyzotol egeszen a PT1-eg minden volt benne. PIT1D1 is meg PIT0D0
> is :) Kinek mi tetszik jobban.
>
> -----------------------------------------
>           elektro[-flame|-etc]
>   



More information about the Elektro mailing list