Jak vynutit sekvencni provadeni prikazu u GCC ?
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Pondělí Únor 24 13:14:10 CET 2014
Pro avr jsem napsal tuto fci:
void UpdateAmp()
{
cli();
uint32_t amp = adc_chvals[3];
sei();
amp *= 20000;
amp /= 1023;
uint32_t ampcorrr = 45000UL + amp;
cli();
pwmAmplitude = (uint16_t)ampcorrr;
sei();
}
A problem je, ze deleni 1023 se zaradi pri zapnute optimalizaci az za
cli() coz je samozrejme velmi spatne protoze trva dost dlouho.
Pomuze vypnout optimalizaci pro tuto funkci
(__attribute__((optimize("-O0"))); ) a pomuze i pokud obe lokalni
promenne definuju jako volatile - to ale nevim, jestli je spolehlive.
Existuje nejaka elegantnejsi metoda?
---
Tato zpráva neobsahuje viry ani jiný škodlivý kód - avast! Antivirus je aktivní.
http://www.avast.com
Další informace o konferenci Hw-list