Fórum témák
» Több friss téma |
Megszakítás nincs. A főprogramból mikor a PAGE3 ra ugrok a PCLATH 3,4 bitjét beállítom, ami a verembe eltárolt címen is látszik. Amennyiben jól értem amit írtál, a PCLATH 0,1,2 bitjét is kezelnem kell a tömbbe ugrás előtt.
Jól értetted. A 3. és 4. bitjét meg kell őrizned, ha a hívni kívánt táblázat a 3. program lapon van.
A hozzászólás módosítva: Nov 22, 2017
Este kipróbálom, remélem sikerül, mert már régóta kínlódok vele.
Az összes gondom, hogy globális változót nem tudok deklarálni.
A változó definiálva lesz, de értéket nem kap.
Próbáltam így is, a változó definiálva van, de értéke nincs.
A var.c -ben ennyi legyen:
Az extern.h -ban:
HE-proba.c -ben:
Ennek így mennie kellene Még annyi,hogy régebben mintha írtál volna olyasmit,hogy nagy tömbökkel dolgozol,ha így van akkor azt szedd ki ideiglenesen.
A c és a h fájlok a helyükön vannak, gond nélkül le is fordul, de az x1 és x2 vel futó for ciklusok egyike sem hajtódik végre, nem villog a LED.
Így gondolom, hogy az értékük nulla. x3 lokális változó értéke 4, ezért 4 másodperc szünet után van 4 villanás. Logikus, hogy az xc.h a legelejére kerül, de így sincs változás. Az xc8 linker Runtime opciójában be van kapcsolva az Initialize data.
Így sincs változás.
Nincs tömb, mert egy mezei char-al sem működik. A méretes globális konstans tömböt tárolja a memóriában, deklarálva van de inicializálva nincs. Ezzel a PIC-el más dolgok sem működnek jól. Viszonylag "újnak" számít és a free fordítónak is lehetnek hibái. Eldobni sajnálnám, ezért abban reménykedtem, hogy én rontok el valamit. Mert az MPLABx-et eddig másra még nem használtam.
Sziasztok,
tud valaki eladó PICKIT2-t? Nem klónt, eredetit. Más nem jó, céghez kellene, rá van állitva egy folyamat. Javítani már nem akarom, ezerszer volt, sok helyen van toldva. Szentendre-Bp17kerület vonalon mozgok.
Sajnos, amint látom, a globális inicializált változókat egyszerűen nem tölti fel a XC8. A fórumon a legjobb ajánlás: Töltsük fel programból.
Akkor végre meg van miért kínlódott, de az XC8 nál nem kell beállítani még külön dolgokat neki a fordításhoz ?
A hozzászólás módosítva: Nov 22, 2017
Az a kérdés, mit és hol kellene még beállítani?
Linker: Initialize bepipálva. Globális változó kezdőérték a deklarációnál. Nincs hibajelzés. #pragma idata és #pragma udata -ra "Unknown pragma" figyelmeztetés. A static nem változtat semmit sem. Ha a kérdéses változó const, akkor a programba literális adatként (movlw paramérereként) kerül be. A hozzászólás módosítva: Nov 22, 2017
Ha globálisan deklarálom, lokálisan definiálom, az sem jó, mert lokális változóként viselkedik. Máshol mincs értéke.
Biztos van erre valami egyszerű megoldás, talán le kéne foglalni a megfelelő memóriatarományt és hozzárendelni a változóhoz. Idézet: „Ha már több ilyen EEProm -ot kezelsz” Nem vagyok mazochista Örülök ha egyel boldogulok Akkor a1,a2,a0 lábat akkor tesre kötöm ha csak egyet szeretnék kezelni? A plédádba mindig 0xA1 vagy 0xA0 írtad ennek volt oka ?? Mert más példájába is láttam...
Akkor még meg lehetne csinálni
extern a helyére:
deklarálás után vagy a main függvény elején
és a végén lenne a függvény
vagy ezt lehetne static függvénynek is vagy nem voidosan hanem int esen és } előtt return 0; A hozzászólás módosítva: Nov 22, 2017
Idézet: „Akkor a1,a2,a0 lábat akkor tesre kötöm ha csak egyet szeretnék kezelni?” Ha az a1,a2,a0 lábat akkor tesre kötöd, akkor annak az egynek 0xA0 - 0xA1 lesz a címe. Idézet: „A plédádba mindig 0xA1 vagy 0xA0 írtad ennek volt oka ?? Mert más példájába is láttam...” Az írás/olvasás bit az eszközcím alsó bitje. Ha küldesz neki adatot, az eszközcím alsó bitje 0, ha olvasol belőle az eszközcím alsó bitje 1.
Globálisan deklarálod kezdőérték nélkül, a main függvény elején értéket adsz neki...
Az előbbi megállapításom nem igaz, elnéztem valamit:
Idézet: „Ha globálisan deklarálom, lokálisan definiálom, az sem jó, mert lokális változóként viselkedik. Máshol nincs értéke.” Tehát úgy működik, ahogyan írtad. Köszönöm a segítséget! A hozzászólás módosítva: Nov 22, 2017
Az extern-el valamiért nem sikerült megoldani, de ha globálisan deklarálom, lokálisan definiálom, akkor működik.
Kicsit szokatlan így, de majd valahogy megpróbálom külön fájlba rakni az adatokat. Köszönöm a segítséged!
Köszönöm!
Ezt a librayt használnám :Bővebben: Link
Kérdésem az lenne még hogy hol adom meg azt hogy melyik lábon van az eszköz vagy mindegyik SDA SCL lábon kiküldi az adatokat?? Inkább leírom hogy hogy értelmeztem a dolgokat hát ha tévedek: Device code ahogy nézem eppromoknál 1010 bin vagy is hexa 0xA 2 írok utánna írás ha 1 akkor olvasás. "Acknowledge Bit" ebbe nem vagyok biztos mire jó de szerintem a byte sorozat végét jelzi. Jól gondolom??
Tudom, itt egy kicsit off, de találkozott bárki bárhol beépíthető rádioaktív sugárzás mérő szenzorral?
Ha az EEpromod A2, A1, A0 lábát Vss -re kötötted, akkor a Device code 10100000 bin vagy is hexa 0xA0 íráskor és 10100001 bin vagy is hexa 0xA1 olvasáskor.
A linkelt könyvtár az MSSI1 modult használja. Az adatlapon kellene találnod SDA1, SCL1 kivezetést. Az is előfordulhat, hogy remap -pelhető lábakon van. Ebben az esetben a lábat az MSSI1 modulhoz kell map -penli mégpedig kimenetként is és bemenetként is. A hozzászólás módosítva: Nov 23, 2017
Mármint milyen sugárzás? α, β,γ, X, neutrino stb.?
A hozzászólás módosítva: Nov 23, 2017
A picemnek van sda1 scl1 laba . Akkor gondolom arra kossem majd az eppromot
Konstans tömbnél - amire nekem kellene - viszont nem működik.
Azt sajnos nem lehet futási időben létrehozni.
Még nem láttam, de ha nem sürgős és nem lényeges a pontosság, akkor valamilyen fotodiódával is össze lehet hozni egyet. Egy régi Elektor újságban láttam a megvalósítását. Jövő héten elő tudom keresni, mert éjszakás leszek és bent van melóhelyen (ez a nappalos hét elég káosz, leülni sincs sok időm). Csak szólj majd, mert elfelejtem!
|
Bejelentkezés
Hirdetés |