Fórum témák
» Több friss téma |
Értéket tudom ennél növelni?
A linkelt részél kell csak a #1-et állítanom nagyobbra? Mert gondolom az lesz a ciklus szám. Közben látom, hogy ezt kell módosítani:
A hozzászólás módosítva: Nov 22, 2016
Véletlenül elírtam az értéket. javítottam.
A kezd sorban adom meg a ciklusok számát, a cikl sorban a változót csökkentem 1-gyel. (A D0 adatregiszterbe betöltöm a ciklusok számát, majd csökkentem 1-gyel, és ha nem 0, akkor ugrok vissza újra csökkenteni - addig amíg el nem éri azt.) A hozzászólás módosítva: Nov 22, 2016
Sziasztok!
Lehetséges egy PIC16F1938-as típusú mikrovezérlővel két különböző frekvenciájú PWM-et előállítani egy időben? Az adatlapban látok lehetőséget arra, hogy meghatározzuk, hogy melyik Timer-t használja a CCP modul, de nem tudom hogy lehetséges-e két különböző CCP modulhoz külön Timert választani egy időben. Előre is köszönöm.
Nagyon köszi, nagyon sokat segítettél.
Majd mutatom az eredményt. A 68K program feltöltését már megírtam PIC-re, frankón működik. Még a program módosítását kell megírnom, hogy feltöltés előtt a PIC elvégezze a szükséges módosításokat a 68K programjában és akkor minden a helyére kerül. Marha jó kis projekt ez, de lassan a végére érek... (végre)
Nem olvastam teljesen végig, de szerintem lehet mert 3 Timert és 3 PR regisztrer közül lehet választani a beállítások során, ezek alapján szerintem ha más időalapot tudsz neki választani akkor nyert ügyed van.
Elég sokat foglalkozom vele, de az Assembly nyelv .... már nézegetem, de kicsit kusza.., lényeg ami a lényeg Rajta vagyok.
És ahogyan ígértem, csatoltam pár képet. A képen a hardver látszik ahogyan feltölti a memóriába az adatokat, amikor azt a sort írja, hogy "Hardver update" no akkor módosítja a 68K programját és tölti fel szintén a memóriába. A további 2 képen pedig azt látod, hogy a késleltetés után kiírja a feltöltött játékok címeit.
Sziasztok
Hogyan lehetne egy spectrum analizert megírni progiba és kell e pic elég valami erösités vagy csúcsegyenírányitás......stb???? 4mhz kristály elég szerintetek???
kissi, Elektro.on, icserny
Köszönöm! Működik. Ha valaki a jövőben rákeresne ugyan erre, a beállítások PIC18F14K50 RA4 I/O port.
A hozzászólás módosítva: Nov 24, 2016
Digitális spektrum analizátort FFT-vel szoktak csinálni, egyszerűbb lehet az MSGEQ7-el, amiről cikk is íródott.
A hozzászólás módosítva: Nov 24, 2016
Kösszii
A hozzászólás módosítva: Nov 24, 2016
Estét!
23LCV512 (64 kByte SRAM) Bekapcsoláskor a RAM terület véletlenszerű adattal "töltődik" fel, ez rendben is van. Ami érdekes, hogy kikapcsolás után 15 percig biztosan megmarad a tartalom ha a próbapanelhez nem érek hozzá. Nyílván nem néztem át a teljes területet, csak az első 150 byte-ot. Az elemes memóriatartás nincs használva, adatlap szerint GND-re kötve a Vbat láb. 20 perc után már van eltérés az eredeti adathoz képest, de nem számottevő, kb. minden huszadik byte változik meg és a probléma itt kezdődik. Az lenne jó, ha minden kikapcsolás után a RAM tartalma törlődne. Hogyan lehet ezt elérni? Próbáltam már minden lábat GND-re/+5V-ra húzni 10 kOhm-mal, kb. semmi használható eredmény. Hogyan tovább?
Ha az a fontos, hogy törlődjön, akkor vagy kikapcsolás előtt vagy bekapcsolás után töröld le ( lehetőségtől, feladattól függően !) ! Ebben mi akadályoz meg ?!
Nem voltam egyérelmű. Biztosra kellene tudnom azt, hogy mikor merült le az elem (vagy kikapcsolt állapotban kivették). Kinevezhetek pl. 20 bájtot, ami csak jelzőbájt, de mi van akkor, ha a lemerült elem miatt csak bizonyos területek változnak meg, a jelzőbájtok pedig megmaradnak?
Idézet: Szerintem ezt egy PIC-es komparátorral tudod figyelni és biztonságos szintnél felszólítod a cserére a felhasználót, mielőtt letörlöd a RAM-ot!„Biztosra kellene tudnom azt, hogy mikor merült le az elem” Idézet: „vagy kikapcsolt állapotban kivették” Kikapcsolásnál törlöd ( kondenzátorral biztosítod az ehhez szükséges energiát ! ) ! Remélem tudtam segíteni !
Nem szeretném törölni az adatokat belőle, csak külön kérésre... Nehéz eset vagyok?
Nem ! Akkor csak külön kérés esetén csináld az előzőeket !
Akkor pedig rakd oda az elemet is, hogy kikapcsolás esetén is megőrizhesd a tartalmat.
Egy lehetséges trükk, hogy amolyan lapokra osztod fel a memóriát, aminek az alapértelmezett értéke 0 bitek, és a pic memóriájában raksz valahova változóba jelző biteket, hogy a lap tartalma érvényes-e. Ha nem, nulla bitek kiolvasását szimulálod a programban, és eleve nem is olvasol a ramból. A háttérben pedig egy állapotgéppel folyamatosan töltöd fel tényleges nullával a bekapcsolás után. Ha már érvényes adatot is írtál a lapra, akkor billented a jelző bitet, és akkor viszont gondoskodnod kell az implicit törléséről is. Kicsi könnyítés, hogy nem a teljes ic-t, hanem csak azt a részét kell promptra törölnöd, ha addigra a háttérben az aszinkron állapotgéped nem tudott végezni vele (amihez szintén használhatsz jelző biteket a pic memóriájában). Kellemes szórakozást
Igazábol arra jutottam, hogy az utolsó 4 kByte-ot használom jelzésre. Amikor kezdi elveszteni az adatot, remélhetőleg a 4096 bájtból lesz egy-kettő ami elbillen, így detektálható a memóriavesztés. Bekapcsoláskor kicsit lassú, de nem életbevágó, hogy pillanatok alatt elinduljon a főprogram.
Nem ismerem az IC belső felépítését, de talán az 1010 1010 könnyebben "sérül", mint a 0000 0000. A hozzászólás módosítva: Nov 26, 2016
Hát nem túlzottam értem, mit akarsz csinálni.
Ha a kikapcsolt állapot eltér az áramtalanított állapottól, akkor ugye az soft-kikapcsolt. A PIC megy, csak mást csinál, mint normálisan. Ha lemerül az elem és újat raknak bele, vagy kiveszik és visszarakják, akkor és csak akkor RESET-tel indul a PIC. Másképpen, ha RESET - ről indul a PIC akkor megszakadt az áramellátás. Nyilván ilyenkor a normál RESET (MCLR) lábat más módon nem szabad stimulálni, de ennek elkerülésére számos más módszer adatik. Ha viszont az a kérdés, hogy sérült-e a RAM-ban lévő információ az elemcsere alatt, akkor erre szerintem csak a különböző ellenőrző összeg képzése és tesztelése a megfelelő.
Nevezzük a kikapcsolt állapotot annak, amikor áramtalanítva van a rendszer. Ekkor az áramkörben nem dolgozik semmi kivéve a RAM, ami elvileg megy elemről. Ha ilyenkor kiveszem az elemet, majd visszarakom, nem biztos, hogy törlődik a teljes RAM terület, hanem csak bizonyos részei. Ennek detektálása lenne a lényeg.
Időközben teszteltem és úgy tűnik, hogy az utolsó 4 kByte (amit másra nem használok) figyelése elég.
Mekkora adatmennyiségről van szó? EERAM nem jöhet szóba?
Elemcsere lenne? Akkor két elem lehetne. Amíg egyiket kiveszed, másik táplál. Vagy nem állandó, csak akkor teszed be a másikat, amíg egyik kint van cserére. Zsebszámológépeknél van így, memóriaelem csere alatt a fő elemek táplálnak.
Minimum 10 kByte adat, de ez csak növekedhet. Egy adatgyűjtőről lenne szó. Jól látom, hogy EERAM-ból nincs ekkora? Nevezett RAM-ban az tetszik a legjobban, hogy ha úgy adódik, egy menetben végig lehet olvasni a teljes területet, nem kell lapváltásokkal vacakolni. Perpillanat jól működik. Ha lesz hozzá türelmem, rápróbálok az FRAM-ra, hátha. Az bírja az esetleges sok újraírást.
Azt figyelni, hogy van-e adatvesztés, én kikerülném, akkor már baj van, ha kiderül, hogy adat veszett. Kimenteném EEprom-ba a statikus ramból. Egy kellően nagy kondi, vagy 1F-os kondi tudná addig táplálni, amíg kiment EEpromba tápmegszűnéskor.
Az sokkal kissebb baj, ha van adatvesztés és ezt észre is veszem. A nagy probléma akkor lenne, ha lenne adatvesztés és azt nem detektálná a kontroller.
10-20 kByte nem fér el EEPROM-ban, ezért is használok külső adattárolót. Lehet, hogy a következő lépés az SD kártya vagy az FRAM lesz. Tesztelem ezt az SRAM-ot, aztán majd elválik.
Checksum a RAM egy dedikált területére? A PIC minden kikapcsolása előtt képezzen egy ellenőrző összeget (ha mazohista vagy, esetleg CRC-t ) a RAM -ban tárolt adatokból. Bekapcsoláskor újra számolni, és ha nem egyezik az újra számolt és a RAM -ban tárolt, akkor sérült az adat. Nem nézem, ha van a PIC -ben EEPROM, inkább ott tárolnám az ellenőrző összeget.
Üdvözletem! Segítséget szeretnék kérni,azzal kapcsolatosan hogy egy frekvencia mérőt szeretnék építeni PIC16F887-el megvalósítva. Találtam is egy kapcsolási rajzot,illetve egy programot viszont ez nem ezzel a PIC-el van megépítve. A kérdésem a következő: ha megépítem a mellékletben látott kapcsolást PIC16F887-el és az ott talált programot használom működni fog-e a frekvencia mérő, vagy esetleg a kódot módosítanom kell-e valahol? A segítséget Előre is nagyon szépen köszönöm!
A két kontroller között elég nagy a szakadék, szinte biztos (99,999 %), hogy módosítás nélkül nem fog működni.
|
Bejelentkezés
Hirdetés |