Fórum témák
» Több friss téma |
Előjeles számokkal könnyebb megoldani:
Köszönöm, valóban egyszerűbb és áttekinthetőbb. Működik.
Sajnos csak most volt időm jobban megnézni.
Sziasztok!
Mit jelentene ez a sor struktúra, union vagy változó előtt
Az __attribute__ még világos, hogy valamilyen specifikus beállítás, de a packed nem világos, hogy mire utal?
A packed az union eseteben azt jeloli, hogy az adattagokat a leheto legkisebb helyre probalja besuriteni (nem hagy ki ures helyet ket mezo kozott).
Üdv!
XC8 megint szívat. PIC16F1459-re akartam írni egy gyors UART tesztet, mert nincs nálam a saját UART könyvtáram. Már kapásból az OpenUSART() függvénnyel is gondja van. Az editor (Mplab X) azt mondja nem tudja azonosítani, de ezzel a betegségével már nem szoktam foglalkozni, megpróbáltam lefordítani. Hibaüzenet: Idézet: „warning: (1464) number of arguments passed to function "_OpenUSART" does not match function's prototype :0: error: (499) undefined symbol: _OpenUSART(dist/default/production\BT.X.production.obj)” Ötlet, hogy mi lehet a baja? szerk:Microchip Belenéztem a fejlécekbe, csak PIC18-ra van peripherial library. Irhatom a rutinokat, mert nincs nálam PIC18. A hozzászólás módosítva: Szept 2, 2015
Microchip Code Configurator ismeri. Jó "csontváz" kódokat tud generálni. Nézd meg, hátha UART-ra is van benne előre megírt kód, és meg tudsz spórolni egy kis munkát.
Srácok, porbálok éleszteni és használni egy ST7920-as 128x64-es GLCD-t.
PIC18F46K22-es okoskával akarom meghajtani, de belefutottam egy olyan struktúrába amely kiszalad a megengedett memóriából. C18 fordítót használok. A struktúra:
Az eredeti kód CSS-ben van itt: Bővebben: Link Ezt írom át C18-ra, de a az x,y tengelyek megadásához szükséges struktúra túlcsordulást hoz a fordításnál. Van erre valamilyen megoldás vagy másként kell megírjam a grafikus kijelzés pozicionálását? Hiba: Idézet: „Error - section '.udata_main.o' can not fit the section. Section '.udata_main.o' length=0x00000401” Előre is köszi.. A hozzászólás módosítva: Szept 3, 2015
Szia!
A PIC18F46K22.lkr linkerfájlt kell módosítani, ahol nagyobb területet kell lefoglalni és elzárni a fordító elől. pl.: DATABANK NAME=buff1 START=0X400 END=0X7FF PROTECTED SECTION NAME=buff1 RAM=buff1 aztán a mainban : #pragma udata buff1 //linker fájl módosítva. unsigned char buf1[1024]; //adatpuffer #pragma udata
Köszi, én is erre gondoltam, de nem mertem hozzányúlni.
Ez nem befolyásolja az esetleges interruptokat? Mert, hogy állitalában az is át van helyezve persze másabb memória területeket érint, de akkor is.
Szia!
Ez RAM terület, nem a programmemória. Nyugodtan használjad... üdv.: Foxi
Sziasztok!
Eddig C-ben amit programoztam, az 18F volt, azt is C18-ban. Azonban már ugye XC fordítók vannak, amiket nem ismerek, de valami mégis azt súgja, hogy a gyártó saját compilerét érdemesebb használni. Kérdésem, hogy éri meg XC fordítót használni? A másik ami még szerintem szóba jöhet, a MikroC.
MPLAB X -ben is lehet használni a régi fordítókat, akár C32-t is. Talán az XC8, ami a Hi-TechC helyett esetleg szóba kerülhet a 18F-alattiakhoz...
Közben megnéztem.
Nem értem a dolgot, segítenél? Linker módosítva:
Program kód módosítva:
Mit nézek be? Ugyan az a hiba: Idézet: „Error - section '.udata_main.o' can not fit the section. Section '.udata_main.o' length=0x00000401” Előre is köszi..
Közben rájöttem, hogy ez a sor:
Erre változik:
Mivel már egyszer a változót definiáltam. Így jó, szerintetek is?
Közben kidűlt, hogy nem jó, mert más a "pix" változó és más, ha struktúrán belül van.
Nem tudom, hogy oldjam meg a fentebb lévő struktúrának a megfelelő memória terület felszabadítását. Kérnék segítséget.
Szia!
Hát van némi probléma... Elsőnek a struktúra definíciója kell, aztán a lefoglalás. Szerintem a Dots struktúra 2 byte a dots tipusú kétindexes tömb 128x32x2 byte =8192 byte + refresh = 8193 byte ez 32 db 256-os lap + 1 byte a ram területről. Ennyi nincs is a PIC-ben. ... ha mégis belefér már a ram-ba, akkor pedig így kellene: #pragma udata buff1 //linker fájl módosítva. GD_RAM gdram; //adatpuffer #pragma udata üdv.: Foxi A hozzászólás módosítva: Szept 15, 2015
Köszi, így be is nyelte igaz, 1024byte-ot kellett neki lefoglalnom.
Szia!
Örülök, hogy jó lett! üdv.: Foxi A hozzászólás módosítva: Szept 16, 2015
Meg lehet oldani valahogy, hogy a fordító módosítsa a sorszámokat egy deklarálásban, ha közé szúrok egy újabbat?
Erre gondolok:
Ide kéne beszúrni egy #define gombFbal 4 sort úgy, hogy a további hozzárendelt számok egyel növekedjenek. Nyílván nem 5-6 sornál probléma ez...
Felsorolás típussal esetleg megoldható:
Azt tegyuk hozza, hogy ha kulon nem jelzed, akkor 0-rol indul a szamozas. Ha azt akarod, hogy a gombAbal valoban 1 legyen, akkor :
A hozzászólás módosítva: Szept 21, 2015
Köszi, mindkettőtöknek! Az enum, jól gondolom, egyik memóriát sem terheli ezekkel az adatokkal ugye?
Nem. Kb. ugyanaz az enum is, mint a define, csak van rajta valamilyen szintű típusellenőrzés.
Sziasztok!
Hőmérséklet szabályzást szeretnék megvalósítani PWM-mel. A terv, hogy a hőmérséklettel arányosan nő a kitöltési tényező. Az alábbi programrészlet mennyire lehet működőképes a gyakorlatban? Főleg a hiszterézissel kapcsolatban vagyok bizonytalan. Van esetleg jobb módszer erre? Köszönöm előre is a segítséget.
Nem értek a C nyelvhez, de a kérdésben van némi csavar. Egyszer hőmérséklettel arányos kitöltési tényezőt említesz, egyszer pedig hiszterézist.
Azzal is gond van, hogy ha nő a hőmérséklet, pont csökkennie kellene a kitöltésnek...
Nézz körül a PID, de legalább PI szabályzás terén, utána kell folgalkozni azzal, hogyan programozod le (ami az egyszerűbb része a dolgonak, miután néhány függvény az egész...). Idézet: „Azzal is gond van, hogy ha nő a hőmérséklet, pont csökkennie kellene a kitöltésnek...” Miért, honnan tudod, hogy mit vezérel a kitöltési tényezővel ( fűtést vagy hűtést ?! ), így szabályozva a hőmérsékletet ( a FAN pont ventillátorra--> hűtésre utal ! ) ?! A hozzászólás módosítva: Szept 28, 2015
Sziasztok!
Igen, ventilátort szabályoz, tehát a növekvő kitöltési tényezőben nem látok gondot. A hiszterézist pedig a ki- és bekapcsolási határértékre terveztem, hogy ne forduljon elő az, hogy 0 és 20% között ugrál a kitöltési tényező (20% a minimum). Olvasgattam már a PID szabályzásról, erre a feladatra egy viszonylag egyszerű megoldást szeretnék kitalálni. Üdv, Ati |
Bejelentkezés
Hirdetés |