Bezne sitove trafo na 100Hz

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Neděle Leden 26 21:05:31 CET 2014


V double se pracuje jen pri priprave sinus pole jednou na zacatku funkce 
main, to je jedno jak je pomale, jde o deleni nahrazene posuny a pak 
operaci s pulkou promenne ve funkci z predchoziho prispevku kde se to 
prepocitava 8000x/s. Pak uz jen celociselne v int32, to by v double AVR 
nestihalo ani 10Hz, teda nezkousel jsem to ;-)
V podstate mam pole vzorku sin(x) prepocitane na interval 
-32767..+32767, potrebuju prubezne menit amplitudu a pak to prepocitat 
na rozsah PWM (aktualne 1..499)
Nasobeni je docela rychle, asi vyuziva HW, deleni je naopak velmi pomale 
a prekvapilo me, ze >>= 16 na int32 to pri nejvyssi optimalizaci neudela 
presunem bytu nebo wordu jak jsem to pak musel udelat manualne ale v 
cyklu po jednom bitu...


Dne 26.1.2014 20:54, Marek Peca napsal(a):
>> Proc? Na zacatku main si pole se sinusovkou vygeneruju jen jednou  
>> podle definovanych konstant
>>
>> for (uint16_t idx=0; idx<PWM_RESOLUTION; idx++)
>>    {
>>        SinTable[idx] = 
>> (uint16_t)(32767.0*(sin(M_PI*2.0/(double)(PWM_RESOLUTION)*(double)idx)));
>>    }
>
> Proc tam to deleni vubec je? Kdyz stejne pracujete v doublech ;-)
>
> MP
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


---
Tato zpráva neobsahuje viry ani jiný škodlivý kód - avast! Antivirus je aktivní.
http://www.avast.com



Další informace o konferenci Hw-list