Fórum témák

» Több friss téma
Fórum » MSP430 mikrovezérlők
 
Témaindító: gomzito, idő: Ápr 21, 2006
Témakörök:
Lapozás: OK   44 / 139
(#) gyengus válasza colosseum hozzászólására (») Márc 9, 2012 /
 
Igen, ezt tudom.
Nekem egyszerűbb volt binárisan
(#) Atielektro válasza gyengus hozzászólására (») Márc 9, 2012 /
 
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...
(#) icserny válasza Atielektro hozzászólására (») Márc 9, 2012 /
 
Idézet:
„Amúgy az, hogy a regiszterek nincsenek union-okként definiálva eléggé megnehezítik a programozást számomra.”
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!

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".
  1. __no_init volatile union
  2. {
  3.   unsigned char BCSCTL3;   /* Basic Clock System Control 3 */
  4.  
  5.   struct
  6.   {
  7.     unsigned char LFXT1OF         : 1; /* Low/high Frequency Oscillator Fault Flag */
  8.     unsigned char XT2OF           : 1; /* High frequency oscillator 2 fault flag */
  9.     unsigned char XCAP0           : 1; /* XIN/XOUT Cap 0 */
  10.     unsigned char XCAP1           : 1; /* XIN/XOUT Cap 1 */
  11.     unsigned char LFXT1S0         : 1; /* Mode 0 for LFXT1 (XTS = 0) */
  12.     unsigned char LFXT1S1         : 1; /* Mode 1 for LFXT1 (XTS = 0) */
  13.     unsigned char XT2S0           : 1; /* Mode 0 for XT2 */
  14.     unsigned char XT2S1           : 1; /* Mode 1 for XT2 */
  15.   }BCSCTL3_bit;
  16.  
  17. /* ------- Extension by I. Cserny --------------------- */
  18.   struct
  19.   {
  20.     unsigned char LFXT1OF         : 1; /* Low/high Frequency Oscillator Fault Flag */
  21.     unsigned char XT2OF           : 1; /* High frequency oscillator 2 fault flag */
  22.     unsigned char XCAP            : 2; /* XIN/XOUT Capacitors */
  23.     unsigned char LFXT1S          : 2; /* Mode for LFXT1 (XTS = 0) */
  24.     unsigned char XT2S            : 2; /* Mode for XT2 */
  25.   }BCSCTL3_bits;
  26.  
  27. } @ 0x0053;


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!):
  1. BCSCTL3_bits.XCAP = 2;
  2. BCSCTL3_bits.LFXT1S = 1;
(#) bedoweb válasza szitko hozzászólására (») Márc 9, 2012 /
 
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?
(#) szitko válasza bedoweb hozzászólására (») Márc 9, 2012 /
 
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.
(#) szitko hozzászólása Márc 9, 2012 /
 
Az alábbi szoftveres reset, egyenértékű a hardveres resetel?
  1. WDTCTL &= ~WDTHOLD;             // Watchdog engedélyezése
  2.         WDTCTL = WDT_MDLY_0_5;

Valamiért, olyan mintha nem állítaná alapba a változókat.
(#) Atielektro válasza icserny hozzászólására (») Márc 9, 2012 /
 
Köszönöm szépen! Ez hasznos volt. Gondolkodtam már ilyesmiben, csak nem tudtam, hogy hogyan lehet a memóriacímeket megadni.
(#) szitko válasza szitko hozzászólására (») Márc 9, 2012 /
 
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:
  1. WDTCTL &= ~WDTHOLD;             // Watchdog engedélyezése
  2.         WDTCTL = WDT_MRST_0_5;          // Reset 0.5 ms mulva

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ó)
(#) icserny válasza szitko hozzászólására (») Márc 9, 2012 /
 
Ú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...
(#) szitko válasza icserny hozzászólására (») Márc 9, 2012 /
 
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.
(#) colosseum hozzászólása Márc 9, 2012 /
 
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 )
(#) monsun hozzászólása Márc 11, 2012 /
 
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?
(#) szitko válasza monsun hozzászólására (») Márc 11, 2012 /
 
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.
(#) kissi válasza monsun hozzászólására (») Márc 11, 2012 /
 
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
(#) kaco válasza colosseum hozzászólására (») Márc 11, 2012 /
 
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.
(#) colosseum válasza kaco hozzászólására (») Márc 11, 2012 /
 
köszi meglesem
(#) monsun hozzászólása Márc 13, 2012 /
 
szitko & kissi
köszönöm, megpróbálom!
(#) szitko hozzászólása Márc 14, 2012 /
 
Sziasztok.
Egy C-s kérdésem lenne, amire nem igazán találtam választ.
  1. //  1 részlet
  2.     if( hello > 0)
  3.            hello ++;
  4.     hello = valami;
  5. //  2. részlet
  6.     if( hello > 0){
  7.            hello ++;
  8.     }
  9.     hello = valami;

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?
(#) icserny válasza szitko hozzászólására (») Márc 14, 2012 /
 
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.
(#) szitko válasza icserny hozzászólására (») Márc 14, 2012 /
 
Értem, és köszönöm. Nem volt világos számomra.
(#) colosseum hozzászólása Márc 14, 2012 /
 
Sziasztok,

Valaki aki tervezett már nyákot msp430hoz, megmondja nekem, hogy ezt mivel tette?
Eagle?

Köszönöm
(#) szitko válasza colosseum hozzászólására (») Márc 14, 2012 / 1
 
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.
(#) neogeo2 válasza colosseum hozzászólására (») Márc 15, 2012 /
 
A ti.com-ról le lehet tölteni eagle libraryt.
(#) szitko hozzászólása Márc 15, 2012 /
 
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?
(#) colosseum válasza szitko hozzászólására (») Márc 15, 2012 /
 
Bővebben: Link

én innen néztem , még nem próbáltam ki.
(#) szitko válasza colosseum hozzászólására (») Márc 15, 2012 /
 
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.
(#) icserny válasza szitko hozzászólására (») Márc 15, 2012 /
 
Idézet:
„GND-GND, RST-RST, TEST-TEST”
Én tápfeszültséget is adnék neki!
(#) szitko válasza icserny hozzászólására (») Márc 15, 2012 /
 
Kap. A céláramkörtől 3.3V-ot, VCC jumper helyén. Ahogy a képen.

test_deb.jpg
    
(#) colosseum hozzászólása Márc 15, 2012 /
 
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.
(#) szitko válasza colosseum hozzászólására (») Márc 15, 2012 /
 
Kivettem az RST felhúzást, de így se megy. Nem értem mit csinálok rosszul.
Következő: »»   44 / 139
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem