Fórum témák
» Több friss téma |
Köszi a gyors választ. Én is így tartottam logikusnak.
Sziasztok,
Meg tudná valaki mondani, hogyan lehet az MPLAB-ba betenni olyan tartalmat, amit aztán a PIC EEPROM-ba szánok? Úgy értem persze, hogy nem azzal a modszerrel, hogy megnyitom az EEPROM ablakot és kézzel szépen beirogatom a 255 byteot, hanem valahogy azt fájlból beolvasom. Köszönöm, L.
ORG-al odamesz az EEPROM kezdocimere, aztan
DE 1,2,3,4,5,6,7,8 DE 3,4,5,6,7,8 stb.
Az EEPROM tartalmát akár a PIC-ben lévő program is írhatja, olvashatja, de közvetlenül is megadhatod byte, word, vagy akár szöveges formában. A mód fordítótól, nyelvtől függ.
Az alkalmazott compiler leírásában érdemes keresgélni. Pl. a PIC18-aknál assembly-ben így is lehet:
Bővebben: Link A hozzászólás módosítva: Máj 13, 2013
Köszönöm!
Most már csak azt nem tudom, 16F690-en mi a EEPROM kezdőcime. Amikor olvasom, akkor a 0x00 cimről olvasok. De ha azt irom az ORG-nak, akkor nem a programmemoria kezdetére fog gondolni? Vagy a DE jelenti azt, hogy azt az EEPROM területen kell értelmezni? L.
Szerintem ott 0x2100 az EEPROM kezdőcíme.
De ha nem veszed elő a doksikat, 3 percenként kell feltenned 10-20 kérdést és ráadásul sosem fog összeállni a kép, hogy mi is található egy ilyen eszközben, melyek a lehetőségei és hogyan is használd azokat.
Köszönöm az információt.
(Meg a kioktatást is. Természetesen átnéztem a Data Sheet-ben a Memeory Organization valamint Data EEPROM and Flash Program Memory Control fejezeteket, de ezt nem találtam benne. Bocsánatot kérek, ha zavartam valakit a kérdésemmel. Azt hittem itt lehet. Sőt, hogy azért van, hogy a tapasztaltabbaktól..., meg hogy önzetlenül...., meg hogy egyszer mindenki elkezde...., stb... Még ezt a programot befejezem, aztán önkritikát gyakorolok, levonom a konzekvenciát és gondoskodom a kivégzésemről. ))))))
Szerintem senkit sem zavartál, ez a fórum erről szól.
Útbaigazításnak szántam az előbbieket, semmikép sem kioktatásnak.
A fordító doksija Bővebben: Link
Sziasztok!
Még nagyon kezdő vagyok.Adva van egy PICkit 44 pines Demo Board (PIC18F45K20). Az PORTA 0. bitjére van kötve egy potenciométer és ezzel kéne a PORTD-n lévő LEDek fényerejét szabályozni. Mindezt assemblerben. Tudna valaki segíteni? Előre is köszönöm.
A Demo Board-al adtak egy DVD-t is azon vannak mintaprogramok. De megtalálod neten is. (Ezen az oldalon a lap alsó részén Bővebben: Link)
A kártyához adott mintapéldákban és azok leírásában (Erről az oldalról is letölthető, PICkit 3 Debug Express fájlok) mindent megtalálsz. Ha jól értelek, akkor a 7. példa C nyelvű mintaprogramjának ADC_Init és ADC_Convert függványét kell átírnod assemblybe. Nem nagy kunszt, hiszen s regiszter = valami típusú értékadások aligha okoznak gondot. Az ANSELbits.ANS0 = 1; pedig azt jelenti, hogy az ANSEL regiszter ANS0 bitját kell 1-be álítani.
Az while (ADCON0bits.GO_DONE == 1); pedig azt jelenti, hogy vizsgálni kell az ADCON0 regiszter GO_DONE bitjét, és mindaddig várakozni (visszaugrani a vizsgálathoz), amíg az '1' állapotban van. Ez valami házi feladat?
Igen. Az egyik LED fényerejét kellene vele szabályozni.
Sziasztok.
Képes a PIC s saját programja s egyéb adatja törlésére? Ha igen, mi ennek a funkciónak a neve? Minden PIC képes erre vagy csak egy részük? Tudtok adni linket magáról a folyamatról? BASIC-ben annak idején volt ilyen szörnyű rutin. 13 IF A=1 THEN NEW
Szia!
Van lehetőség azokon a típusokon, amik rendelkeznek "Self write" lehetőséggel. Bővebben: Link
Csak tipp: ha már 2 vagy több pic van akkor ott a Low Voltage Programming (Single Supply ICSP) lehetőség hogy az egyik százlábú felprogramozza a másikat...
A hozzászólás módosítva: Máj 15, 2013
Köszi mindkettőtöknek. Úgy érted amelyiken nincs meg ez a funkció az is képes rá úgy hogy egyik PIC törli a másikat? Egész pontosan felprogramozza egy olyan programmal ami csak arra képes hogy törölje a másikat s az összes többi bájtja értéke 255? S ezután ez törli az egyiket?
Bár elmondom mire kell hátha van erre más mód is. Azt akarom, hogy ha felnyitják a dobozt akkor törlődjön a PIC tartalma. Bár lehet jobb ha inkább ez esetben ráadom a tápfeszt a bal lábsorra a testet a jobb sorra s előtte lesmirglizem a PICről a feliratot. Akkor meg se lehet utána állapítani mi volt korábban)) Mik a vélemények?
Szerintem a brutális megoldás helyett, egy I/O-val figyeld a nyitást és a programod végezze a büntetést. Nem kell gyilkolnod a PIC-et és nem kell cserélni sem. Ha rátervezel egy külső bemenetet, akár még a felhasználó is tudja "unlock"-olni egy szoftveres vagy hardveres kulccsal. Csak egy változó kell a nyitáshoz és egy kulcs tárolásához. Még akár ugrókodot is használhatsz, hogy ne tudja többször használni a kulcsot...
Üdv! Lenne itt egy valamelyest PIC-es kérdésem: Bővebben: Link Köszönöm!
A hozzászólás módosítva: Máj 15, 2013
Szia!
Egy kissé átírt bootloader megoldaná a feladatot. Egy láb figyelésével a normál programból a boot loader -re kerül a vezérlés. Itt kell az átírás, hogy ha belép a boot loader -be, egyből törölje a "normál programot". Ezután a boot loader parancsait hajtja végre, ami között van a "normál" program betöltése és indítása. Frissen felprogramozva csinálhatja a maga dolgát. Még tesztelésre is jobb, a próbálkozásakat a boot loader segítségével letöltheted. Olyan kontrollert ajánlanék, amiben van uart és képes a self write -re (és van kész boot loader program hozzá): 16F88x, 18F420, 18F4420 stb. A boot loader az uart -tal kommunikálhat a PC -vel. Bár így is van egy apró probléma: Tápfeszültség nélkül vizsgálja valaki. Egyből megtalálja a doboznyitás érzékelőt... A hozzászólás módosítva: Máj 15, 2013
Programozáskor: Enable Code Protect (kódvédelem bekapcsolása)
Amint Hp41C írja: Idézet: „Bár így is van egy apró probléma: Tápfeszültség nélkül vizsgálja valaki. Egyből megtalálja a doboznyitás érzékelőt...” Ki az aki bekapcsolva kezdi szétszedni...? azaz semmit se ér a doboznyitást figyelő kapcsoló. Felesleges neked erre a célra a Selfwrite vagy LVP.
A PIC-ek hekkelése régen rutin műveletnek számított. Nem tudom mi a helyzet mostanában.
Nem lenézés vagy ilyesmi, de nem hiszem, hogy a kolléga, aki ilyen kérdéseket tesz fel, akkora értékkel bíró holmit készítene, aminek nekiállnának kiolvasni a kódját bekapcsolt kódvédelem mellett. Mert bármiből (nem csak PIC-ből) végsősoron ki lehet olvasni a kódot a chip szétszedésével és megfelelő felszereléssel, de ez azért nem minden sarkon elérhető technológia...
A hozzászólás módosítva: Máj 15, 2013
Tudom, hogy valószínűleg nem erre gondoltál, de jelen esetben a doboz kinyitásán van a hangsúly és nem a PIC-en. Persze az is fontos (sőt!).
Anno én is terveztem olyan berendezést, aminek a belseje védve volt. Ott a program intézkedett, mert kiírta a kijelzőre, hogy hiba, hívja az illetékest (telefonszám). Mivel a program futása itt állt, (és el volt mentve a PIC-be ez az állapot), a reset vagy tápelvétel sem segített. Ott egy kódot kellett bebillentyűzni a feloldáshoz, ami persze szerviz díjba került. Az egyszer használt kód is be lett jegyezve az eepromba, így azt sem lehetett újra használni. 65535 kód volt a programban telepítve, így elég sok lehetőség volt.
Köszönöm a sok választ. Egy PIC-cel vezérelt eszközről van szó aminél bontás esetén nem kellene kiderülnie a vezérlés módjának se még a vezérlő kilétének se sőt egyáltalán a vezérlés tényenek se. Kereskedelmi forgalomba kerülő eszközt vezérel. A gombakku jó ötletnek hangzik de kérdés képes e annyira kiégetni hogy ne lehessen megismerni, pic volt. Itt elhangzott hogy kimérhető a pic kiléte, de kérdés: Kellő mennyiségű áram esetén is?
De ez csak elvi kérdés mert szerintem a gombakkuban nincs elég áram ehhez. A sima törlés a második lehetőség ez esetben valóban kimérhető hogy pic volt csak az nem hogy mit tett. Szóval egyenlőre csak hangosan gondolkozom hogy mi lenne a megfelelő megoldás. Az alap ötlet a törlés volt s másod ötlet a totális elégetés.
Üdv mindenkinek!
Egy kis segítséget kérnék. Real time orát szeretnék összehozni pic-el. A PIC programozás már megy (ASM), de Real T. -al még nem volt dolgom. SPI-vel kommunikál (MCP795W10-I/SL). Fogalmam sincs hogy kellene hozzákezdeni. Minden segítség jól jönne. Előre is köszönöm. |
Bejelentkezés
Hirdetés |