Jak vynutit sekvencni provadeni prikazu u GCC ?
Michal Lukac
michal.lukac na fstroj.uniza.sk
Pondělí Únor 24 13:26:41 CET 2014
a nepomoze atomic_block?
http://www.nongnu.org/avr-libc/user-manual/group__util__atomic.html
m.
-----Original Message-----
From: Jaroslav Buchta
Sent: Monday, February 24, 2014 1:14 PM
To: HW-news
Subject: Jak vynutit sekvencni provadeni prikazu u GCC ?
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
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list