Sziasztok! A problémám az, hogy adott egy 24LC64 I2C-s EEPROM valamint egy PIC18F4525 és a page write művelet alkalmazásakor nem hajlandó beírni a 32-ik byte-ot. Így csak 31-et ír be, hiába állítottam be a ciklusváltozót a WRITE_PAGE _EEPROM szubrutinban.
Kérlek segítsetek mert megőrülök attól miért nem működik amikor elvileg a program helyes.
Igen ez igaz amit leírtál, én is így gondolom. De ha megnézed a forráskódot ott is így van, de ennek ellenére nem hajlandó beírni a legutolsó byte-ot az eepromba. Helyette 0xFF kerül. De futtasd le a kódot és próbáld ki egy 24LcXX EEPROM-on. Lehet hogy nálad működne, de akkor visszaadom a diplomámat.
A hibaüzenet:
Error[113] F:\PRóBA_PROGRAM_PIC16F877\ASM_ELSO\MAIN.ASM 119 : Symbol not previously defined (AAh)
Kérlek titeket, amennyiben tudtok, írjátok meg mi a probléma. Továbbá szívesen fogadnék egy PIC16F877 -re már megírt eeprom kezelést, tanulás céljából.
Írj "0AAh"-t az "AAH" helyére, mert az egy hexadecimális szám lenne, de mivel nem számjeggyel kezdődi, címkének gondolja a fordító, ilyen címke meg nincs definiálva.
Köszönöm. A fordító így már sikeresen fordít. Azonban sajnos a visszaolvasott értékem nem stimmel. Szóval ha tudnál egy egyszerű assemblyben írt kis progit feltenni, sokat segítenél. Illetve ha az én tanuló programomat megküldhetném neked átnézésre, azt is megköszönném.
Egyébként kitűnően működik a PICKIT2.
Pedig ez nem tűnik rossznak ránézésre. Utána kellene nézni errata-ban, hogy nincs-e valami EEPROM írási probléma a 877-nél. Lehet, hogy az EEPROM írási megszakításflaget érdemesebb lenne figyelni, mint a WR bitet.
A BANK-os üzenetek csak arról szólnak, hogy Te ellenőrizd, hogy megfelelő BANK-ban voltál a parancs kiadásakor ( fordítási opcióként ki is lehet kapcsolni ezeket az üzeneteket!).
A program fordításának szempontjából az a lényeg, hogy ne legyen benne ERROR!
Az írás programod nekem működött a szimulációban, át is néztem, nem láttam benne gondot (bár én az információ beírásának a tesztelését a rutinból történő visszatérés előtt szoktam elvégezni általában!), szerintem vagy az olvasással van gondod, vagy az írás meghívása előtti környezet okoz problémát ( ezek szimulációval jól kideríthetőek!).
Szerintem egy 33. kiolvasott adattal felülírod a BUFFER31 ben a jó kiolvasott 32. adatot.
A ciklus 32-szer fut le, eztán meg olvasol egyet NOACK-val.
Helyesen 31 darabot ACK-val és egyet NOACK-val kell olvasni.
A ciklust írd át 0x20 helyett 0x1F -re.
Segitseget kernek egy M35080 tipusu eeprom programozsi lehetosegerol.nem talalok ra a neten semmi megepitheto programozot csak valami borsos kulfoldi programozo keszulekeket , de ez elvileg ugyancsak valami spi-buszos eeprom.Ha valaki tudna nekem segitseget felvilagositast adni nagyon megkoszonnem.
Az adatlapja szerint egy "mezei" SPI-buszos EEPROM, vagyis keress olyan eszközöket / programokat, amik PC-ről erre a kommunikációra képesek (segítség a keresésben). A kérdés inkább az lesz, hogyan értelmezed a memória tartalmát, amennyiben erre is szükséged volna, cél (BMW-s, ha jól láttam)-eszköz nélkül.
Nem csak a BMW használja, hanem pl. az Opel is. Kilométeróra adatait tárolja, annak az átírásához szükséges. A kiolvasott tartalmat módosítják, majd beírják egy üresbe vagy egy reset-elt régibe és így pörgetik vissza az órákat.
A HW nem egy nagy durranás, a hozzá adott szoftver, ami dekódolja a tartalmat , módosít és újrakódol, az a drága. Csak egy programozóval, ha nem tudod mit, hogyan kell módosítani nem sokra mész.
Valószínűleg így van, nagy haszonért nagy befektetés kell Van, ahol letölthető egy programozó szoftver, de az meg a szintén drága célhardver nélkül nem fog sokat érni.
Elég sok fejtörést okoz az embernek, ha csak bináris állománya van, és el akar igazodni benne...
Egy nagy, keleti országban csinálnak dump-okat különböző óraállásnál és abból dekódolják mi , mikor változik. Nagyon sziszifuszi munka. Manapság meg senki nem hiszi el a kilométeróra állását, akkor sem ha valós. Így lassan ennek sem sok az értelme, max. , ha a céges autóval benzint akarsz "megtakarítani".
Néha (gyakran) vágyom egy olyan országra, ahol nincs ilyen !
Igen, opelrol van szo! elment a regi muszerfal, es masikat bontottat akartam rakni bele, viszont a kilometerallast a regit akartam, de mikor megcsereltem volna az epromokat az egyik kicsit meghallt, beletort a tokozasba. Eshat a masik muszerfal persze mas tipusu motort tartalmaott es most az alapjaratot is rosszul mutatja.gondolom az is ott volt traolvaszoval szivas! es nem tudom felprogramozni mert meg tartalmat azt talaltam volna uress ic-t is vettem de semmikepp sem sikerul beleirnom semmit.szivas.Probalkoztam a 25-os szeriaval de ugy nem ismeri, merthat azis spi-os, dehat persze a hogy moricka elkepzelte sajnos nem jott be!
Szoval ha valaki tudna vagy ratalalna valami kis rajzra megkoszonnem.Udv.tibi
Sziasztok. Egy 93c86an eepromot szeretnék átmenteni,egy másikba . A probléma,hogy Pic kit2-vel,ki olvasva ellenőrzéskor állandóan hibát ir ki .Az eeprom jó,mert az adott készülékbe rendesen működik.Esetleg valami ötlet, hogy, mi lehet a gond.Egyébként 93c86wp tip.rendesen ir-olvas.Mi különbség a két eeprom között köszönöm szepi003
- A 93C86C beállíthatóan byte(8 bites)/word(16 bites) szervezésű memória. Az ORG lábon levő szinttől függ a szervezése: ORG=0 esetén 8 bites, ORG=1 esetén 16 bites.
Az egyes gyártók különböző tokozású (a típusszám végén levő betü : a ill w) példányai különböző lábkiosztásúak.
A gyártótól az adatlapot letöltve ellenőrizni kell a két típus lábkiosztását.
Sziasztok! pic16f887 belső EEprom írás problémám van, mikroC nyelven.
A csatolt "eeprom_unionnal.c" kíválóan működik.
Ugyanez a kódrészlet egy komplexebb progamban nem működik. A nagyobb program külső impulzusra hőmérsékleteket mér és hőfogyasztást számol,majd LCD-n megjeleníti. Szeretném EEpromba menteni a hőfogyasztás értékeit, egy long és egy integer változót, hogy áramkimaradás esetén se felejtse el, hol tartott.
Sajnos nem stimmel a beírás, a csatolt kódrészlet csak az első bájtot írja be sikeresen, utána a többi bájt marad FF. Nagyon sokféle dolgot kipróbáltam már, de nem megy. Van valakinek ezzel tapasztalata?
köszi laz