Fórum témák
» Több friss téma |
Igen, ezt tudom.
Nekem egyszerűbb volt binárisan
Köszi, de azt hiszem félreértettél. A bináris értékadás alatt én valami ilyesmire gondoltam: unsigned char chValt=0b01001001;
Amúgy az, hogy a regiszterek nincsenek union-okként definiálva eléggé megnehezítik a programozást számomra. Microchip-éknél hozzászoktam ehhez, most meg mindent bájtokon végzett logikai műveletekkel kellene kikeverni...
Idézet: Az IAR-ban ez nem gond, ott eleve vannak uniók. Nekem az nem tetszik, hogy a regisztereken belül minden egybitesként van definiálva. Ezen azonban lehet segíteni egy kis barkácsolással!„Amúgy az, hogy a regiszterek nincsenek union-okként definiálva eléggé megnehezítik a programozást számomra.” Az alábbi mintapéldában azt mutatom meg, hogy az IO430g2231.h állományban a BCSCTL3 regiszter bitcsoportjait hogy definiálhatjuk "Microchip stílusban".
A fenti kiegészítés után ilyen értékadásokat is írhatunk (csak szinktaktikai példának írom, ne keressünk benne értelmet!):
köszi szépen! tökéletesen működik... annyit még szeretnék kérdezni, hogy akkor az rx változóba íródik amit kap és UCA0TXBUF-el kell küldeni?
Igen. A bejövő adatot (UCA0RXBUF) bemásoljuk az "rx" változóba, engedélyezzük a TX megszakítást, és a TX bufferbe másoljuk az "rx" változó tartalmát.(UCA0TXBUF = rx Mivel nem tiltjuk le a TX megszakítást, ezért folyamatosan küldi az "rx" tartralmát, de ha beilleszted ezt a sort (IE2 &= ~UCA0TXIE;) a TX megszakítás végére, akkor csak egyszer küldi el az adatot, és vár a következő adatra.
Az alábbi szoftveres reset, egyenértékű a hardveres resetel?
Valamiért, olyan mintha nem állítaná alapba a változókat.
Köszönöm szépen! Ez hasznos volt. Gondolkodtam már ilyesmiben, csak nem tudtam, hogy hogyan lehet a memóriacímeket megadni.
Kicsit tesztelgettem a szoftveres resetet, és arra jutottam, hogy majdnem mindent alaphelyzetbe állít. Viszont ha jól értelmezem, akkor ez a helyes WDT reset beállítás:
A problémám az vele, hogy ahol alkalmazom, a mikrovezérlő órajele valamiért megbolondul. A vezérlőben 3.358MHz -re van beállítva a DCO, és az SMCLK is. Mikor elindul a program, minden rendben megy, jók az időzítések, a ciklusidők stb..., úgy ahogy beállítottam. De ha megkapja a parancsot a SW resetre, minden felborul. A vezérlő 5-6MHz körül kezd járni, egész addíg míg ki nem kapcsolom. Az újraindítás után ismét minden a régi. Ha valakit tudna segíteni, hogy hogyan kell normálisan, szoftveresen újraíndítani egy g2553-ast, megköszönném. (sajnos a hw reset itt nem megoldható)
Újrainduláskor különbségek vannak a POR és a PUC reset között. A Family User Guide a ez egyes regiszterek ismertetésénél leírja, hogy melyikkel mi történik POR illetve PUC esetén. Ha jól értelek, neked azokat az alapértelmezett beállításokat kellene szoftveresen "pótolni", amelyek csak POR esetén történnek meg.
Minden POR egyben PUC is, de nem minden PUC jár együtt POR-ral - akik még emlékeznek Rózsa Gyuri telefonos műsoraira (Vitray már említeni sem merem!), azok értik...
A Telefere c. műsorra még emlékszem.
Tulajdoképpen igen. De szerintem elvetem a WDT reset megoldást, mert elég bonyolultnak tűnik. Még az a megoldás is jó lenne, ha a reset helyett abbahagyná a végtelenciklust a program. Talán egy kis átszervezéssel megoldható lenne az újrakezdés, csak elég össze-vissza felépítésű a programom.
Hi everyone
Segítséget szeretnék kérni olyan kollégától aki linux alol nyomja a kódolást. Adott egy eeepc ami már szinte semmire nem jo de programozni igen. Kerestem a neten 10.04es ubuntus mspgcc leírást fel is tettem , de valahogy nem akarja az igazságot. lehetséges , hogy mások a header fájlok mint pl IAR alatt? Nagyon jo lenne ha sikerülne működésre bírnom mert az UNIDEB-en unalmas időmben tudnék ezzel foglalkozni Így aki jártas benne annak a segítségét elfogadnám(de ha tud nekem valaki teljesen új linux kernel forgatásban segíteni az még jobb lenne, a mostani eeepc-s linux elég "lomha" sok a feles )
Sziasztok,
szeretnék csinálni egy számlálót, ami egy adott időegység alatt beérkező impulzusokat számolja, majd kiírja LCD-re és újraindul. A leírásokban arra találtam példákat, mikor az idő letelte után végez el valamilyen feladatot a mc, nekem viszont az időzítés alatt kell számoltatnom. Melyik időzítőt kell használnom?
Használd a Timer "capture" modulját a jel számolására, és egy másik Timer-t az idő mérésére.
Kell két TIMER: az egyik számláló üzemmódban dolgozik és egy külső lábon lévő impulzusokat számol, a másik időzítőként méri az időt. Ha az idő lejár, akkor kiolvasod a számlálót, nullázod és kezded elölről, miközben a kapott adatokat feldolgozod és kiírod ( ez a feladat már feltételezi a megszakítás ismeretét a megfelelő működéshez! ) !
Steve
Helló!
Megpróbálok segíteni, bár elég kezdő vagyok linuxból, elektronikát meg sosem tanultam, de olvastam icserny cikkét, így belekezdem... Csatoltam egy msp.txt fájlt, amiben benne vannak a csomagok, amiket feltettem, én archbang linuxot használok, lehet meg kellene próbálnod az eeepc-re, mert elég gyors, felesleges sallang nélkül! Ha gcc-t használsz sok mindent át kell írni: - interrupt pl: interrupt (TIMERA0_VECTOR) ccr0_isr(void) - lpm3 mód: __bis_SR_register(LPM3_bits+GIE) - felébresztés lpm3-ból: __bic_SR_register_on_exit(LPM3_bits) - nincs delay, helyette neked kell függvényt csinálni rá Átírtam icserny cikkében az első lcd vezérlő programot, utólagos engedelmével csatolom azt is, kiindulásnak talán jó lesz. Nem tudom mennyire vagy kezdő (én nagyon), szóval tettem bele egy Makefile-t is, ennek segítségével csak annyi a dolgod, hogy rádugod az usb-re a launchpadot, és kiadod a "make install" parancsot.
Sziasztok.
Egy C-s kérdésem lenne, amire nem igazán találtam választ.
A kérdésem az lenne, hogy annál a feltételnél ahol nincs kapcsos zárójel, ott mindíg csak a következő sor tartozik a feltételhez? És miért?
Ha nincs zárójel, akkor csak a következő utasítás tartozik hozzá. Nem feltétlenül "a következő sor" (lehet ugyanabban is, s lehet több sor is), hanem a következő pontosvesszőig.
Értem, és köszönöm. Nem volt világos számomra.
Sziasztok,
Valaki aki tervezett már nyákot msp430hoz, megmondja nekem, hogy ezt mivel tette? Eagle? Köszönöm
Szerintem nyákot bármilyen nyáktervezővel tudsz csinálni. Én speciel Proteus-al készítem a nyákokat, de a Fritzing-el is készítettem már nyákot G2553-hoz.
A ti.com-ról le lehet tölteni eagle libraryt.
Szeretnék egy g2553-ast, a céláramkörben debuggolni IAR alól, de nem akar menni. A vezetékek: GND-GND, RST-RST, TEST-TEST. (rövid, nagyon rövid) A céláramkörben az RST fel van húzva VCC-re, (3.3V, 47k). Az IAR folyamatosan azt írja, hogy nem találja a vezérlőt. Mit kellene még beállítano? Vagy mit nem csinálok jól?
Ebben a formában működik nálam is, de ha berakom a vezérlőt a helyére, ott nem megy a debug. Pedig pont ezért csináltam kivezetést az RST, TEST, GND, lábaknak. Én az RST felhúzóell. re gyanakszom, de mivel már a 3. g2553-ast küldöm át a túlvilágra, nem merek össze-vissza kókányolni.
Idézet: Én tápfeszültséget is adnék neki! „GND-GND, RST-RST, TEST-TEST”
Kap. A céláramkörtől 3.3V-ot, VCC jumper helyén. Ahogy a képen.
Bővebben: Link
nézd meg a linket Launchpad eagle vázlata. lehet a kapcsolásban van valami.ha ez sem megy akkor i donno.
Kivettem az RST felhúzást, de így se megy. Nem értem mit csinálok rosszul.
|
Bejelentkezés
Hirdetés |