Fórum témák
» Több friss téma |
Szeretném kihasználni az MSP430 16-bites lehetőségét, ezért lenne egy alapfoku kérdésem.
Hogy tudok két bájtból egy szót alkotni az inicializáláskor? Tehát, ha van például két cím bájtom: char Read_AddrH = 0x00 és char Read_AddrL = 0x00 , akkor automatikusan a int Read_Addr = 0x0000 (16 bites) ezekből fog állni, vagy kell valami definíciót írnom? Sajnos már nagyon régen tanultam ilyesmit. (Jó itt az "int" jelzés?)
Tiszteletem!
![]() Leginkább icserny -hez szól a kérdésem, miszerint: Meg valósítható-e az, hogy egy álomba ringatott (standby mod) mikrovezérlőt felkeltve, a nyomógombot nyomva új (esetemben) effekt-et választunk/melyek addig ismétlődnek, míg nem választunk újat/ és miután megvolt a 3-4 effekt, a gomb újbóli megnyomásakor a mikrovezérlő újra álomba merül? Remélem érthetően írtam le. előre is köszi a válaszokat. Idézet: Hát persze, csak ki kell adni a megfelelő helyen a megfelelő __low_power_mode_x(); parancsot (ahol x = 0, 1, 2, 3, vagy 4)! A megszakításban meg __low_power_mode_off_on_exit(); kell. „Megvalósítható-e az, hogy egy álomba ringatott (standby mod) mikrovezérlőt felkeltve, a nyomógombot nyomva új (esetemben) effekt-et választunk/melyek addig ismétlődnek, míg nem választunk újat/ és miután megvolt a 3-4 effekt, a gomb újbóli megnyomásakor a mikrovezérlő újra álomba merül?”
azt hiszem értem. Azért, ha szépen megkérlek leírsz egy példát amelyben mondjuk a 2 efekt: a 2led egyszerre villog majd gombnyomás után felváltva majd gombnyomás utá megy aludni?
Szia!
Köszönöm! Végül nem lett rá szükség, kihasználtam hogy az adc "csak" 10bites... Készítettem egy egyszerű szervó tesztert, pár példából összeollózva. (mellékeltem a programot) A szervó jelkábelt a p1,2-re kell kötni, én a tápot az usb + és - lábára kötöttem. az 5kohm os potméter 2 szélső lábát a chip melletti ucc=(vcc) és gnd re kell kötni(egyiket, másikat) és a középső lábát a p1,1re. A két kis led a lapon az ellenőrzést szolgálja. A PWM-et a legegyszerűbb módon állítottam elő, a beépített hardware -el. Ilyen szervók vezérlése lehetséges ezzel a programmal: Link
lemaradt...:
az újabb szervók ilyen jeleket igényelnek: link
Igen, ezt
![]() ![]()
Nos most végképpen elveszítettem a fonalat
![]() while((BIT1 & P1IN) && (BIT2 & P1IN)) és a papír forma ellenére "vagy" feltételt produkál! Ezek után átírtam ténylegesen "vagy" feltételre while((BIT1 & P1IN) || (BIT2 & B1IN)) és ez produkálta az és feltételt. Ilyenkor mi van??Most hogy már kezdeném érteni a lényeget, teljesen összezavar. ![]()
Én már nem tudom követni, hogy mit is akarsz csinálni, de feltehetőleg a de Morgan azonosságok adnak magyarázatot a kérdésedre. A nyomógombok ugyanis fordított logika szerint vannak bekötve, s úgy tűnik, hogy a while ciklusodnál is az ellentett eseményhez rendeltél feltételvizsgálatot. Bővebben: Link
![]() Idézet: A Launchpad II. cikkem 4_2. programpéldája (p1_3_change_state) írható át legegyszerűbben. Csak a végét mutatom be, mert az elejéhez hozzá sem nyúltam:„Azért, ha szépen megkérlek leírsz egy példát amelyben mondjuk a 2 efekt: a 2led egyszerre villog majd gombnyomás után felváltva majd gombnyomás utá megy aludni?”
Konkrétan nem akarok semmit csinálni, csak a megértéshez gondoltam kipróbálok minden logikai műveletet. Az a rész nem volt tiszta nekem ,hogy a függvény feltételéhez hogyan tudunk több feltételt is felcsatolni.De hála neked már tudom!
![]() ![]() ![]()
Az előző kérdésemre találtam némi választ. Az "msp430g2231.h" fájlban az USISR word két bájtból áll: USISRL és USISRH. Tehát valamit strukturálni kell, csak még nem értem kristálytisztán, hogyan. Ha ugyanezt megcsinálom a saját bájtjaimra, az jó megoldás?
icserny, meglátásod szerint jó úton járok? Szeretnék egy képkonvertáló programot írni, hogy a memóriába, amiből a Nokia LCD-re megy a kép, legalább két kép is beférjen. Jelenleg 24 bites kép van a 24LC512-ben, amit 12 bitesre szeretnék konvertálni. A cím 2 bájtos, amit csak bájtonként lehet elküldeni, de a műveletekhez 16 bites szó kell (a két bájt együtt). Ezért kellene a cím 2x8 és 1x16 bites alakban is.
Az IAR C fordító referencia kézikönyvből az "ANONYMOUS STRUCTS AND UNIONS" (a PDF változatban a 129. oldalon) c. rész foglalkozik ilyesmivel.
Az union segítségével lehet többféle struktúrával definiált változókat összefogni, s ha egy 16 bites változót akarsz felszabdalni, akkor a szeleteket (bájtokat) nyilvánvalóan struktúraként vagy tömbként kell szervezni. A névtelen unió és struktúra használata lehetővé teszi, hogy nem kelljen összetett címzést használni. Az alábbiakban egy bugyuta példát mutatok be, amelyben a my_word nevű változó két fele lo_byte és hi_byte neven érhető el.
Nagyon köszönöm, pont erre volt szükségem!
![]() Érdekes az a két pontosvessző, ezek szerint az union és a struct után is kell?
Változások az újabb kiadású Launchpad kártyáknál
Itt azt írják, hogy 1. az újabb kiadású Launchpad kártyákat már nagyobb tudású és lábszámú mikrovezérlőkkel szállítják (MSP430G2452 és MSP430G2553). 2. A tüskesor kétoldalt gyárilag bele van forrasztva a kártyába 3. Az RX/TX jumperek elfordítva is bedughatók, mert a hardveres soros porti kezelés esetén nem jó lábakra mennek ezek a vezetékek (fel kell cserélni). Erre az utóbbira azok is nagyon ügyeljenek, akik a régi kiadású Launchpadhoz utólag szereztek be MSP430G2553 mikrovezérlőt! További információ: Link
Kár ,hogy pont ezt a fajta tüskesort tették bele. Én hosszas töprengés után pont a párját forrasztottam bele. És ha valaki túl akar lépni a 2 Led ,és az egy nyomógomb adta lehetőségén, egy forrasztás nélküli próba panelen praktikusabb a másik.Még a szobában is el lehet vele legózni, ahová a forrasztót be sem vinném.
![]()
Teljesen igazad van. Én is a hüvelysort forrasztottam be. De ha jobban belegondolsz, nem tart semeddig kikapni a tűskesort és a neked megfelelőt beforrasztani.
Ízlés dolga. Én az utóbbi időben szívesebben használok tüskesort a kártyákon, mert az ilyen csatlakozóval szerelt huzal stabilabb kontaktust ad. A másik vége lehet tüske, vagy ugyanilyen hüvely, amibe bedugok egy tüskét, és máris mehet a dugaszolós próbapanel lyukába.
Én a tüskesort, lefele forrasztottam be, így rá tudom tenni 2db próbapanelre, de tényleg "ízlések és pofonok".
Megnéztem, hogy van-e a TI-nek a LaunchPad-ból raktáron, és "véletlenül" rendeltem egyet. Remélem már az újat küldik. Amúgy az van kiírva, hogy "+shipping", de nem számolnak fel szállítást, kőkemény 985Ft-ot vett le a kártyámról. (A 800ft-hoz képest, jól fel ment az ára, vagy csak az életszínvonal eset? ) ![]()
Majd írd már meg, hogy melyiket küldték!
Köszi
sziasztok!
A farnell nél leárazás van: Bővebben: Link Csak sajnos nem működik a PDF es link... Idézet: „Sorry, the file you were looking for does not exist on this system or is not available to your site. Please check your URL and try again.” Nem tudja valaki hány db hardweres PWM és ADC csatornával rendelkezik a rendszer? Előre is köszönöm! Zoltán
Hónapok óta mondogatom, hogy ilyen kártyát ingyen is lehet kapni, csak regisztrálni kell az Element14 portálon, és be kell küldeni egy projekt elképzelést - magyar nyelven - ebbe a topikba. (A beküldött ötlet próbálja hasznosítani a FRAM memória előnyét!)
A működő linkek pedig itt találhatók: MSP-EXP430FR5739 Experimenter Board User's Guide (SLAU343A.PDF) Az MSP430FR5739 mikrovezérlő "honlapja" - Adatlap (slas639a.pdf) - Errata (slaz078a.pdf) - Family Reference (slau272.pdf) Az adatlap szerint az MSP430FR5739 az alábbi paraméterekkel jellemezhető: FRAM: 16 kB, RAM: 1 kB órajel: max. 24 MHz (8 MHz fölött bonyolódik az élet, mert várakozási ciklusokat kell beiktatni a FRAM műveleteknél) ADC: 12 bemenet és 2 belső csatorna Komparátor_D: 16 csatorna Timer_A: 3 x 3 ch. Timer_B: 3 x 3 ch. eUSCI: 2 x UART/IrDA/SPI + 1x SPI/I2C
Helló!
Van egy problémám az mps430-as programozása közben. Ez alapján a cikk alapján lefordítottam az első programrészt, ahol 8 led egyszerre villog: Bővebben: Link Viszont hiába kötök a kivezetésekre ledet, nem villog, kivéve ha p1.0-ra kötöm rá. Akkor a két beforrasztott leddel együtt villog, ha viszont más portra kötöm rá, akkor semmi. Sajnos az elektronikában még elég kezdő vagyok, lehet hogy rosszul kötöttem be? Arra lennék kíváncsi, hogy pontosan mit hova kell kötni, vagy mi lehet a hiba oka. Üdv: Hayes
A LED katódja a földre legyen kötve, a LED anódja pedig egy áramkorlátozó ellenálláson keresztül valamelyik I/O lábra. Az ellenállás értéke 470 Ohm - 1 kOhm közötti érték legyen.
Ha a LED-et fordítva sikerült bekötni, az sem okoz gondot, csak nem világít.
Szerintem lehet hogy a P1DIR 0XFF helyett 0X01 et írtál...
Szeretnék érdeklődni, hogy az alábbi kódrész helyesen működne-e?
Az állandó értéket szeretném megváltoztatni, de nem kell mindíg, csak bizonyos esetekben.
Először azt tisztázzuk, hogy a #define direktívával definiált makrók az előfeldolgozónak szólnak, hogy fordítás előtt ezek figyelembe vételével egy kicsit "pofozza át" a forráskódot.
Az ertek = ADC10MEM pedig futáskor, végrehajtási időben történő értékadást jelent. Az "ertek" nev itt nem egy számot, vagy jelsorozatot jelent (mint a #define ertek esetében), hanem egy memóriacímet és egy változó típust képvisel, s hivatkozás esetén ennek megfelelő, az adathoz hozzáférő utasításokat generál a fordító. Most akkor mi is a kérdés? |
Bejelentkezés
Hirdetés |