Ezt hogyan lehetne megoldani?
Először is se az elektronikához, se a programozáshoz nem igazán értek, netről próbálok csak tanulgatni.
Mikrovezérlőre kellene megírnom egy olyan kódrészletet, ami a lehető leggyorsabban lefut. Tulajdonképpen egy egyszerű feltételvizsgálatról van szó. A már meglévő kód "ciklusideje" olyan 1ms. A legelején viszont szükség lenne megvizsgálni több paramétert is (egyszerű változókban vannak/lesznek tárolva) és azok alapján műveleteteket végrehajtani. Viszont ez (sima if-es feltételvizsgálat) olyan sok időt vesz el (lévén hogy egy 16MHz-es AVR-ről van szó), hogy a már meglévő kód nem látja el megfelelően a funkcióját. Hogyan lehetne felgyorsítani mégis ezt? A baj az igazából az, hogy nem csak a folyamatos vizsgálat nem fér bele a lefutásba, hanem már az egyszeri sem. Szóval annyira ki van használva a mikrovezérlő, hogy a teljes futásidő alatt egy pillanat sincs hogy ne csinálna valamit. Ebben az esetben mi lehet a megoldás? Csak is a komolyabb hardverre történő váltás? Sajnos a jelenlegi kódon már csak úgy lehetne (szerintem) optimalizálni, ha assembly-ben lenne újraírva az egész (C++-ban írtam). Ami meg nem kis feladat, meg nem is tudom hogy lehetne-e nyerni vele annyit.
szerintem a 16. if ágban lesz a gond. :-)
Lépj vissza a tervezéshez, és az if ágakat úgy építsd fel,
hogy a leg kevesebb ellenőrzésen menjen át, ne fusson fölös köröket.
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!