Fórum témák
» Több friss téma |
Sziasztok.
Lenne egy csomó kérdésem, de csak szépen sorba teszem fel. Ismét számolás. Egy 24lc512 eepromba szeretnék írni. Az adatlap szerint egy "16" bites, 8 felső, 8 alsó, regiszterrel lehet beállítani, hogy melyik lapra rakja az adatot. Ez az eeprom, ugye 64KB-os, tehát 65536 bájt fér bele. De hány lap van? 512? És akkor egy lapba 128 bájt fér bele? Jól számoltam? Vagy inkább jól értem az adatlapot? Még egy kérdés, hogy lehet a legegyszerűbben megállapítani, hogy megtelt egy lap? +1: Ha törölni szeretném a teljes eepromot, akkor 0x00-val kell feltölteni? A hozzászólás módosítva: Szept 25, 2012
Szia.
A két 8 bites address regiszterrel tudod kijelölni, hogy honnan írjon vagy olvasson. A lapoknak csak akkor van jelentőségük ha egyszerre több bájtot akarsz írni egymás után (max 128-at lehet egy start-stop között) ilyenkor ha jól értelmezem elmenti az adatokat egy belső bufferbe és a stop után kezdi el beírni az eepromba. Igazából ez az eeprom nincs lapokra osztva, mert onnan kezdheted a 128 as lapot ahonnan akarod (az address regiszter szablya meg).
Tényleg ilyen sokára ígérik a stellaris launchpad-ot ?
DecebaL: Áll még az ajánlatod? Mikorra ígérik?
balux33:
Idézet: Az adatlap ennek az ellenkezőjét mondja. Tehát fizikai lap kezdete minden olyan cím, ahol a 16 bites cím utolsó 7 bitje nulla, s page write tranzakcióval nem lehet átlépni a laphatáron Lásd: adatlap 6.2 szakasz).„Igazából ez az eeprom nincs lapokra osztva” szitko: igen, 512 lap van (65536/128). Idézet: Ha pl. bájtonként írsz, akkor új lapnál a cím maradéka = 0, a 128-cal történő osztás esetén. „Még egy kérdés, hogy lehet a legegyszerűbben megállapítani, hogy megtelt egy lap?”
Tényleg így van!
Bocsánat, hogy hülyeséget mondtam, a szürke részt nem olvastam el. Igazából én is mindig bájtonként írtam.
Na most végkép elvesztettem a fonalat.
Tehát ha a "FIGURE 6-2" ábrát nézem, akkor pl. start, address high = 0x00, address low = 0x01, adat bájt 0-127-ig. stop A következő: address high byte = 0x00, address low byte = 0x02, ...stb... ? Programban, valahogy így nézne ki, egy lap törlése:
És a teljes törlésnél, 128 bájtonként egy stopot be kell iktatni?
Én is bájtonként fogom írni, naponta 24 bájt kerül bele.
Már bele is futottam a következő problémába.
Elkezdek írni egy lapot, beleírok pl. 10 bájtot, és kiadom a stop parancsot. Hogy tudom a 11. bájttól folytatni az írás? Hozzáadom az address címhez a 10-et? De akkor a plusz tizedik lapra fog írni. Bocs a sok hülye kérdésért, de sajna nem találok választ ezekre a kérdésekre. Idézet: Nem, dehogy!„start, address high = 0x00, address low = 0x01, adat bájt 0-127-ig. stop” 1. lap: address high = 0x00, address low = 0x01, adat bájt 0-127-ig. 2. lap: address high = 0x00, address low = 0x80, adat bájt 0-127-ig. 3. lap: address high = 0x01, address low = 0x00, adat bájt 0-127-ig. 4. lap: address high = 0x01, address low = 0x80, adat bájt 0-127-ig. Idézet: Igen. „És a teljes törlésnél, 128 bájtonként egy stopot be kell iktatni?”
Köszönöm szépen, akkor az előző kérdésem tárgytalan, mert jól gondoltam, hogy az address regiszter megadásával tudom folytatni az írást.
Köszi még egyszer mindkettőtöknek!
Találtam ezen az oldalon egy jól összeszedett GCC fordítót MSP430-hoz, le is töltöttem ( msp430-gcc4.6.3.exe), és telepítettem. Valamint letöltöttem erről az oldalról az msp430-gdbproxy-1.0.zip segédeszközt is.
Programfordítás: GDBproxy indítás külön ablakban (előtte csatlakoztatni kell a Launchpad kártyát:
(a PATH beállítása mellőzhető, ha a C:\sysGCC\msp430\bin az aktuális könyvtár) GDB indítás az első ablakban:
A GDB promptnál ki kell adni az alábbi parancsokat:
Innen kezdődhet a gdb debugolás (már ha valaki ismeri...).
Sziasztok.
Valamit összekutyultam az eeprom 24lc512 vezérlésemben és ne tudok rájönni, hogy mit. Ebben kérném a segítségeteket. Az olvasási függvény, csak egy bájtot kéne kiolvasson:
Elméletileg minden úgy van ahogy az adatlapban, vagyis: "start->slave add->ACK->add reg H->ACK->add reg L->ACK->start + read->ACK"--> és nem onnan olvas, ahonnan kellene. De ha a teljes olvasási funkciót berakom megszakításba, akkor minden jól megy. Miért? Így írom pl az első lap első bájtját:
Az olvasási rutin:
Megoldottam! Illetve az olvasási funkciót, megszakításban kezelem le.
De volna egy másik problémám. Egy JD-T18-as lcd-re szeretnék kiíratni órát. A probléma csak annyi lenne, hogy a karaktereket (számokat) egymásra írja. Már próbáltam mindent, képernyőtörlést (hülyeség, mert minden eltűnik), üres karakter kiíratni, de nem jött össze. A nokia lcd-nél nem volt ilyen problémám, ott nem írta egymásra a számokat. Van ehhez valami spéci beállítása az lcd-nek? Vagy, hogy lehet ezt a problémát megoldani?
Sziasztok végre megjött a lanchpad amit rendeltem 8 nappal korábban mint igérték. Elsö nekifutásra mit ajánlotok mivel kezdjem a tanulást? Nem tudok programotirni de szeretnék megtanulni.
Üdv Kovács
Egy nagy segitséget kérnék szeretnék épiteni egy rc szabályzót ennek az ic-nek a segitségével. Keresek olyat aki tud segiteni az alapokban hogy miként mérjem az impulzust, vagy a pwm kitöltést hogyan számoljam, stb. Igazábol sémák is jól jönnének hátha össze tudom fésülni. Egy fontos dolog az angol nyelvtudásom hiányos konkrétan nagyon kicsi.
Köszönettel Kovács Gábor
A 3 részes cikk sorozatot elolvastad itt HE-n?
Még nem teljesen de igyekszem illetve az értelmezéssel van bajom szaktudás hiányában.
Viszont egy másik kérdés ami biztos segitene, létezik olyan táblázat ahol az összes utasitás le van irva?
Igazábol nekem C kellene mert több helyen is olvastam olyat hogy assembbly-ben ahány ház annyi szokás révén sokkal több utasitás van felselegesen( több utasitás azonos funkcióval) illetve icserny mintaprogramjai is ha jól tudom C. A másik dolog hogy assembly nyelvet elég kevesen ismerik vagy legalábbis használják.
Többiek talán tudnak jobbat ajánlani, én Kónyának a könyvét tudnám mondani ami magyar és kifejezetten C-vel is foglalkozik, bár PIC-ről van benne szó, de az utasítások ugyanazok. PIC mikrovezérlők programozás C nyelven a címe, ha jól rémlik, nem tudom meg lehet-e szerezni digitálisan.
De talán kezdésnek az Energiával is probálkozhatsz, az talán egyértelműbb, sok mintaprogram van benne
Köszönöm és ha jól emlékszem akkr pont a minap küldözgette valaki valaki másnak az ajánlott PIC mikrovezérlök programozás C nyelven cimü könyv digit formában. Akkor visszakeresem, ezekszerint ezzel kell kezdeni.
Idézet: „A másik dolog hogy assembly nyelvet elég kevesen ismerik vagy legalábbis használják.” Ez azért így nemteljesen igaz. Elég sok ASM program van a neten. A másik, én pl. elég sokat használom a "disassemby" ablakot programozáskor, pláne ha hibát keresek. Az ASM utasításokról, icserny PIC-kwik plus tananyagában olvashatsz, és még sok-sok hasznos dologról. Idézet: A C nyelv megtanulásához ezt a könyvet kell átrágni. Konkrétan az MSP430 mikrovezérlők propgramozását pedig ebből a könyvbe írták le legjobban. Utóbbit, sajnos, angolul, de sem ezt, sem az adatlapot, sem a Family User's Guide-ot nem fogja senki lefordítani nekünk magyarra. Bele kell törődni, hogy valamilyen elemi szinten bele kell tanulni az angolba is. „Igazábol nekem C kellene” A hozzászólás módosítva: Szept 28, 2012
Szia hát a forditás valoban nem jön létre az biztos. Az MSP link nem nyilik meg valamiért
Idézet: Megszűnt a kurzus, vagy a fejére koppintottak a nem egészen hivatalos közzétételért... A Google Books-on is bele lehet tekinteni, illetve keresgélni kell egyéb elérhetőségeket. „Az MSP link nem nyilik meg valamiért”
Ha nem rúgnak seggbe érte, felteszem ide. ~4MB pdf. Hátha kellene másnak is.
A hozzászólás módosítva: Szept 28, 2012
Némi keresgélés után valamelyik egyetemi honlapon mindig meg lehet találni az MSP430 Microcontroller Basics c. könyvet, mert sok helyen tartanak bevezető kurzusokat ennek alapján.
Rájöttem egy régebbi, úgymond hibára.
Régóta szenvedek az I/O portok megszakításból való lekezelésével. A hiba mindig ugyan az. Ha megszakítást kerek bármely bemenetre, a megszakítás kétszer-háromszor, van, hogy többször is lefut egymás után. Az okára eddig nem jöttem rá, sőt még régebben fel is vetettem itt ezt a kérdést, de nem sikerült megoldani. Most is csak félig értem a megoldást, de működik. Tehát, ha csak simán beállítok egy lábat bemenetnek, megadom neki, hogy megszakítást csináljon mondjuk a felfutó élre, akkor a megszakításban lévő parancsok többször lefutnak egymás után, hiába van törölve a flag. pl:
Ez így rossz! Legalábbis én ezt tapaszalom. De ha bekapcsoljuk a fel/lehúzó ellenállást, minden működik rendesen, és ahogy kell, csak egyszer fut le a megszakítás. Amit viszont nem teljesen értek, hogy próbáltam külső felhúzással is, de azzal nem működött. Vajon miért nem?
Valaki el tudná mondani hogy mi értelme van a signed char-nak? Ha karaktert akarok deklarálni, hogy lehet azt negatívan értelmezni? Az megvan, hogy 1 bájt méretű, de az ASCII elfér 7 biten is.
A C gyengén típusos, így megengedi, hogy a char-t ne karakterként, hanem számként értelmezd. Jól jön, ha [-128;127] elegendő és nem akarsz felesleges helyet foglalni.
|
Bejelentkezés
Hirdetés |