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