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