Új hozzászólás Aktív témák

  • Sziasztok!

    Eljött lassan az ideje, hogy ebben a topicban is rontsam a levegőt.

    Nagy mikrokontroller (azon belül pedig leginkább Arduino kompatibilis) fan vagyok, de eddig valahogy sosem volt olyan nyíkom, amivel kimondottan ide jönnék.

    Ahogy nézem, pont ATTiny van porondon, szóval íme a kérdésem:
    Terveztem a fórumról egy kollégának a gépházába a gyári RGB stick (szalag szélességű, de 1.6-os PCB) helyett egy ATTiny85-ös alapú retrofitet.
    Az első hibát ott követtem el, hogy a Digispark pinelnevezései után mentem, amikor a PCB-t terveztem, és nem a beültetendő IC lábszámozás szerint. (Guess what? Persze, hogy nem ugyanaz.) De ez még nem lenne showstopper. Amúgy sem volt nagy kedvem még PC oldalra is host szoftvert csinálni ami kommunikálna az attiny féle virtuálisUSB-vel.

    Mivel a gépházon van dedikált RGB gomb eredetileg, gondoltam csinálok egy egygombos menürendszert, ami rövid - hosszú - dupla gombnyomásokkal navigálható a különböző effektek között.
    Na és itt kezdődik a baj.

    Az összes színt felvettem statikus változóként, és megírtam (természetesen ciklusokkal és nem diszkrét állapotokkal) az összes effektet, és így a végén a következőbe futottam:
    digispark_ARGB_controller.ino.elf section `.text' will not fit in region `text'
    /avr/bin/ld.exe: region `text' overflowed by 3394 bytes

    Nem nagyon értettem ezt a hibát, kikommenteltem random részeket, és akkor volt hogy ez jött:
    A vázlat 6598 bájt (109%)-ot használ a program tárhelyből. A maximum 6012 bájt.
    text section exceeds available space in board
    A globális változók 182 bájtot használnak a dinamikus memóriából.
    Sketch too big; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing it.
    A [link] és az üzenet segít: Túl nagy a kódom.

    A durva az, hogyha kiveszem csak(!) az effekteket, a kódból, akkor egyből megáll ilyen 70%-ban.
    Az effektekben használt függvényeim:
    max()
    abs()
    random()

    illetve van, amiben használom a % operandust.

    Létezik, hogy egy pár eljárásban lévő ciklusban több programmemóriát foglalok, mint a teljes addigi könyvtárarzenál? (A globális változóim bőven határon belül vannak, mint látható).

    Futott már bárki ilyesmibe?

Új hozzászólás Aktív témák

Hirdetés