Fórum témák
» Több friss téma |
Még egy kérdés: Az IAR-ban meg lehet valahogy nézni, lépésenkét, hogy mit csinál a program?
Nem a "step over"-re gondolok, hanem pl. hogy egy sorban lévő egyenletet, egyesével hajtson végre. A watch ablakban beírt regiszter változását szeretném látni, nem pedig a végeredményét.
Mivel a CPU nem a C nyelvű programot értelmezi, nem annak a lépéseit hajtja végre mechanikusan, ez így képtelenség. Ott a Disassembly ablak, abban lehet nyomon követni, hogy ténylegesen mit csinál a mikrovezérlő.
Valamilyen oknál fogva, nekem nem nyitotta meg a Disassembly ablakot, és ezért kérdeztem, de egy újratelepítés segített megoldani a problémát. Mostmár legalább "tudom" mit csinálok.
Idézet: „Mostmár legalább "tudom" mit csinálok.” Sőt, azt is tudod, hogy mit csinált a fordító!
Ráadásul, miközben tanulgatom a C-t, a honlapodon is ugrálnom kell, a PICCOLO és a kwik között, mert van egy-két asm utasítás amit nem ismerek.
Sziasztok.
Hogy tudom az IAR-ban lemérni, a két "breakpoint" közt eltelt időt?
A View/Register menüpontra kattintva megnyílik a CPU regisztereit mutató abalk, s abban van ciklusszámláló. Feltételezem, hogy az utasításciklusokat számlálja.
Köszi.
Valami olyasmit kerestem, mint az MPLAB-ban a "StopWatch".
Przez Artek a blogjában közzétett egy SVG formátumú rajzot a Launchpad kártyáról, hogy a Fritzing programban használhassuk.
Sajnos, azt nem írta le, hogy hogyan kell a rajz felhasználásával új alkatrész modult definiálni. Ebben tudna valaki segíteni? Jópofa volna, ha a Fritzing felhasználásával tudnánk megrajzolni a Launchpad projektek kapcsolását!
Bocs, közben találtam egy kész modult. Az .pfpz modul innen tölthető le.
Ilyesmire gondoltál? Régebben használtam ezt a programot, mert legalább volt valami kapcsi félém a terveimről.
Sziasztok!
Beszereztem én is a Launchpadot, most ismerkedek vele icserny cikkén keresztül. Ott tartok vele, hogy mind a nyolc P1 portra ledet kötök és ezeket egyszerre villogtatom. A cikkben az áll, hogy a P1OUT-nak nem kell kezdőértéket adni, mert bekapcsoláskor ez a regiszter is nullázódik, viszont nálam a P1.0-ra és a P1.2-re kötött led ellenütemben villog a többivel. Ha P1OUT-nak kezdőértéket adok, akkor szépen együtt villognak a többivel. A panelen levő P1.0 és P1.6-on levő ledekhez tartozó átkötéseket levettem, és az RxD és TxD átkötéseket is ahogy a cikk elején javasolva van. Miért lehet ez? (Ráadásként magamat is jól megtréfáltam, mert a ledek közé két villogó led is keveredett, amitől még kaotikusabban villogott a ledsor. :wow3: ) Idézet: Akkor is ellenütemben villognak, ha nem a debuggerrel és nem a RESET gombbal indítod a programot, hanem a kábel kihúzása utáni visszadugással?„nálam a P1.0-ra és a P1.2-re kötött led ellenütemben villog a többivel.” A helyezet az, hogy a P1OUT csak Power on Reset-kor ("hidegindítás", azaz bekapcsolás) törlődik, "meleg" Reset esetén a korábbi értéket őrzi. Emiatt valóban bölcsebb a kezdőértéket megadni. Idézet: Mondjuk inkább úgy, hogy kreatívan továbbfejlesztetted a kapcsolást! „a ledek közé két villogó led is keveredett, amitől még kaotikusabban villogott a ledsor”
A "Part/Import..."-nál tudod behozni az "fzpz" fájlokat. Én nyitottam nekik külön könyvtárat, ahova bemásoltam a letöltött modulokat. Amúgy köszi, hogy felfedezted, és megosztottad. Sajnos a Proteus ISIS, amit használok, nem ismeri a G-sorozatot, csak az F-ből egy-kettőt.
Az elfelejtettem írni, hogy ha beolvasta a "LaunchPad"-ot, el kell menteni. Ekkor létrehoz egy új fájlt (ha még nincs) "myparts.fzb" néven, és mindig bennmarad a "Mine" fül alatt.
A napokban kísérleteztem a LED villogtatókkal. A program megértéséhez kicsit átalakítottam a Knight Rider villogót.Nagyon érdekes dolog született.Gondoltam megosztom veletek.A bitmintákat kicsit át kell írni így--> const chair a[ ]={0X00,0X01,0X03,0X07,0X0F,0X1F,0X3F,0X7F,0XFF,0XFD,0XFC,0XF8,0XF0,0XD0,0XC0,0X80}; és még a for függvényekben a 10-eket át kell írni 16-okra mind 2 helyen.Így a villogónk egy shift regiszterre hasonlít. Teleíródik ,majd kiürül.
Az az érdekes, hogy ha kezdőértéket adok a P1OUT-nak, majd debuggerrel indítom el, akkor egyszerre villognak a led-ek. Ha leállítom a debug-ot és újraindítom, akkor továbbra is egyszerre villognak. De ha leállítom és a kábelt kihúzom majd visszadugom, akkor már a két led ellenütemben villog a többivel, innentől kezdve már hiába indítom a debuggerrel, már nem villognak egyszerre, csak ha újraprogramozom a kontrollert.
Ha P1OUT-nak nem adok kezdőértéket, akárhogy is indítom, soha sem fognak egyszerre villogni. Közben megnéztem másik számítógépen is, és ott P1OUT regiszter kezdőérték beállításától függetlenül, mindig egyszerre villognak. Viszont észrevettem, hogy ennél a gépnél a Stop Debugging megnyomása után leáll a program futása, míg a másik gépnél, csak a Disassembly ablak záródik be, a program futása pedig tovább folytatódik és csak a Reset gomg megnyomására áll le, ezzel az üzenettel: Could not determine device state Target execution stopped Az a gyanúm, hogy a sz.gép USB portjával lehet gond, mert a másik gépen tökéletesen működik minden. Idézet: „Mondjuk inkább úgy, hogy kreatívan továbbfejlesztetted a kapcsolást!” Ezt a lépést inkább kihagytam volna, mert ráment nem kevés idő mire rájöttem mi a jelenség oka.
Egyébként ha az IAR-ban Stop Debugging-el leállítom a futást, akkor a céláramkörröl lekapcsolja a tápfeszt?
Itt nincs olyan funkció mint az MPLAB-ban a Set Vdd On/Off?
Nem kapcsolja le. Nálam a debug funkció úgy működik hogy ha elindítom akkor elindul a stopra leállítja a debud funkciót de a program fut tovább. És ennek így is kell működnie ha jól tudom.
A főmenüben az Emulátor címszó alatt látok olyat, hogy Leave Target Running. Sejtésem szerint akkor várható, hogy kilépés után hagyja futni a programot, ha mellette ott van a pipa. De olybá tűnik, hogy ez csupán szükséges, de nem elégséges feltétele a programfutásnak. Kilépés előtt el is kell indítani a programot...
Sziasztok.
A CCSv4-et, hogy lehet rábeszélni a Debug-ra. Letöltöttem, regisztráltam, a programot lefordítja, de nem tudok szimulálni.
Igaz, az egyik gépen be volt pipálva ez a funkció, a másikon nem.
Debug-olni úgy lehet, hogy rákattintasz a kicsi zöld bogárra. Szimulálni pedig tudtommal csak az IAR-ban lehet.
A debug-nál (ha rányomok a bogárra) újra kéri a license fájlt. Beírom neki, hogy hol van és az mondja, hogy nem jó, és kiszáll a programból. Pedig a TI küldte a fájlt.
Szeretném megtudni mekkora terjedelmű lehet a bitminta??Akát több száz hexa számot is beleírhatok?? És ha írok egy programot, honnan tudom, hogy mekkora memóriát használtam fel??Ugye nem csak a végén derül ki, hogy nem fért bele?
Idézet: Ha nem érsz a végére, akkor honnan lehetne tudni, hogy belefér ?! „Ugye nem csak a végén derül ki, hogy nem fért bele?” Steve
Ha az adatlapot fellapozod, abból kiderül, hogy az MSP430G2231 2 kB (2048 bájt) flash memóriával rendelkezik, ezzel lehet gazdálkodni. Ebbe kell, hogy beleférjen a programkód, a konstansok (a bitminta) és a memória végén a megszakítási vektorok.
Fentiek alapján, az egyszerű ledvillogtató programmal akár többszáz egybájtos bitminta is elfér.
Igen ezt értem. Csak az nem tiszta ,hogy mikor írom a programot, honnan tudom mennyi helyet használtam el ez idáig? Mondjuk írnék egy fényeffektus programot.Jelen ismereteim szerint 2 lehetőséget tudok rá.Egy kis program ami villogtatja egy bizonyos logika szerint a led-eket, és ezt megcsinálja mondjuk 10 szer, majd lép a következő program ciklusra, és így tovább.A másik ,hogy egy bitmintával villogtatom.Ennek az a nagy hátránya, hogy a sebességet nem tudom a bitminta közepén módosítani.
Na most mind két esetben a program írása közben honnan tudhatom meg, hogy mennyi helyem van a meglévő memória területéből??Vagy csak a fordítás után ,a lementett file tulajdonságainál láthatom meg? Megjegyezném, hogy nagyon kezdő vagyok a témában. |
Bejelentkezés
Hirdetés |