Fórum témák
» Több friss téma |
Sziasztok!
Gondoltam megosztom veletek. Egy 430-as 8X8X8 LED kocka shiftregiszteres vezérléssel. Ki mit épített topic. A hozzászólás módosítva: Feb 14, 2016
Sziasztok.
G2452-es capture moduljával próbálkozom. Az ide vágó program részlet:
A P1.1 bemeneten a felfutó éleket számolom. A kódrészlet tökéletesen működik, de csak a P1.1 bemeneten! Próbáltam áttenni a P1.2 CCI1A és a P1.4 CCI2A lábra, de egyszerűen nem tudom beállítani, hogy ott is működjön a számlálás. P1.2: TA0CCTL1, megszakítás TIMER0_A1_VECTOR P1.4: TA0CCTL2, megszakítás TIMER0_A1_VECTOR Valamit kihagyok?
Sziasztok!
LPM-ből ébred a 2553 ha hw uarton adat érkezik?
Megoldódott. Megszakításban switch/case választás, csak nem értem, miért nem lehet ezt kihagyni.
A hozzászólás módosítva: Márc 6, 2016
Igen, csak járjon az az órajel, amiről az UART modul megy.
Idézet: A TIMER_A-hoz két megszakításvektor tartozik, de ezek nem egyformák, a második osztott használatú. A Family Reference írja:„Megszakításban switch/case választás, csak nem értem, miért nem lehet ezt kihagyni.” 12.2.6 Timer_A Interrupts Two interrupt vectors are associated with the 16-bit Timer_A module: • TACCR0 interrupt vector for TACCR0 CCIFG • TAIV interrupt vector for all other CCIFG flags and TAIFG A hozzászólás módosítva: Márc 6, 2016
Van egy rövid függvényem az osztásra, bár a maradékkal nem foglalkozik, ezért nem teljes.(Azt hiszem valamilyen könyvben olvastam róla)
A program futási idejébe melyik a gyorsabb? A függvény, vagy az osztásjel (/)? A CCS v6.01-ben nem tudom hogy lehet megnézni... függ.:
A hozzászólás módosítva: Márc 8, 2016
Idézet: Nem használom a CCS-t, de előtte bekapcsolsz, utána kikapcsolsz egy LED-et és logikai analizátorral vagy szkóppal, PK2-vel megnézed ( megméred !) az időt ! „A CCS v6.01-ben nem tudom hogy lehet megnézni...” A hozzászólás módosítva: Márc 8, 2016
Megtaláltam a disassembly ablakot. Egyértelműen a függvény (bit-tologatás) a gyorsabb.
Sziasztok.
Változó frekvenciát kellene mérnem, de megakadtam. A g2452 capture modulját használom a freki mérésére, egy régebbi programom részletével. Program. A programból csak a freki számítást vettem ki. (megszakítási rész) A g2452 capture beállításai:
A g2452 belső 16MHz-en megy. A frekvencia mérés kHz-es nagyságrendben, viszonylag pontos. A problémám, hogy nekem 1Hz-100Hz között kellene mérjek és sajnos 32Hz alatt már csak fals eredményt kapok. 32Hz-ig pontos a mérés. Hogy tudnék 5Hz-es jelet mérni? Idézet: Két lehetőség van: „Hogy tudnék 5Hz-es jelet mérni?” 1. Csökkenteni kell a számláló órajelének frekvenciáját akár SMCLK 1:8 előosztójának bekapcsolásával (BCSCTL2 DIVS1 és DIVS2 bitek), akár SMCLK helyett ACLK választásával (TACTL írásakor TASSEL_2 helyett TASSEL_1) 2. A másik lehetőség: minden maradjon úgy, ahogy most csinálod, de számláld a TAR számláló regiszter túcsordulásait is, és ahányszor túlcsordult, annyiszor adj hozzá 65536-ot a capture során kapott értékhez. A 32 Hz-es limit onnan jön, hogy a most 2 MHz-re leosztott TAR órajel mellett másodpercenként 30-szor túlcsordul a 16 bites számláló. A 32 Hz periódusideje tehát még épp belefér az első túlcsordulás előtti intervallumba. A hozzászólás módosítva: Márc 15, 2016
Köszi a segítséget.
A Timer órajele direkt 2MHz, mert más is megy róla. A pontossággal még van egy kis gond amit nem értek, de majd kialakul. be=35Hz, mért érték, átlagolás után 35Hz, átlagolás nélkül, 35Hz. be=25Hz, mért érték, 20-21Hz a fentiekkel. be=14Hz, mért=14Hz/14Hz. be=7Hz, mért=6Hz/6HZ. Tudom, hogy nem kell csodákat várjak a belső oszcillátortól és az ahhoz való számolástól, de azt nem értem, hogy egyes értékeknél pontos a mérés, míg másoknál túl nagy eltérés van (25Hz/20Hz). Így oldottam meg:
A hozzászólás módosítva: Márc 15, 2016
Sziasztok!
Letöltöttem ezt. majd kicsomagoltam a C:\Program Files\energia-0101E0017\examples könyvtárba. Amikor futtatom ezt a hibaüzenetet kapom: Valaki segítene, hogy mit kell tenni hogy működjön? Köszönöm!
Szerintem a vázlatfüzetben lévő libraries (nálam c:/Felhasználók/nevem/Documents/Energia/libraries) almappába kellene tenni - legalábbis a régebbi Energia kiadásoknál, meg az Arduino IDE esetében így működik.
Ezen kívül az is lehet, hogy a csomagod nem tartalmazza a ds1307 kezeléséhez szükséges programkönyvtárat, akkor azt külön kell beszerezni. Arduinohoz én inkább az Adafruit kiadású RTClib-et töltöttem le, abban benne van háromféle RTC modul kezelése is.
Letöltöttem az általad megadott címről github.com/elpaso/rtclib) az rtclib-master.zip csomagot, kibontottam a c:/Users/cserny/Energia/libraries mappába. Az így létrejött rtclib-master almappanevet átneveztem rtclib névre. Ezután annak az examples/ds1307 mintapéldája első pöccre lefordult.
Lényeg az, hogy nem kell hozzá más csomagot letölteni, ha a DS1307, DS1388, PCF8563, BQ32000 RTC-k közül valamelyikkel beéred. (DS3221 támogatást nem látok benne, de ez legyen az én gondom...)
Kicsomagoltam, ahoygyan írtad és nem indul el az energia.
Ha kiveszem a mappából a kicsomagolt könyvtárat elindul. (másik gépen is próbáltam ugyan az) Csatolom a hibaüzenet képét. Valakinek volt már ilyen hibája?
Volt, igen, az Energia újabb változataival. Hasonló okok miatt én megmaradtam a régi 10-es vagy a 12-es Energia kiadásnál.
Lecseréltem 12-re,
most legalább már elindul. A hibaüzenet: A C:\Users\user\Documents\Energia\libraries\ mappában van az RTClib.h Hátha valamit rosszul csináltam: 1. Letöltöttem a 12-es verziót 2. kicsomagoltam C:\programfiles-ba 3. A C:\Users\user\Documents\Energia\libraries\ mappába kicsomagoltam a letöltött zip-et és átneveztem RTClib-re. ??
Lefordult!
Még egyszer végigcsináltam, nem tudom a hiba okát! Köszönöm a segítséget Icserny!
Néha az Energia is olyan, mint Bill Gates autója: ha nem működik, ki kell szállni belőle, és újra be kell ülni.
Az elmúlt időszakban nem igazán volt idő foglalkozni az MSP-s terveimmel, de az eheti hosszú délutános szakomon eldöntöttem, hogy igyekszem befejezni a forrólevegős állomásomat. Elővettem a launchpadot meg a még maradt plusz 2553-omat és nekiálltam a "programozásnak". Két nap után oda jutottam, hogy már azok a funkciók is hibásan működtek, amik a nyáron gond nélkül éles használatban jók voltak. Hirtelen felindulásból lefordítottam az eredeti verziót és beraktam az állomásba a vezérlőt. Így is rossz volt. A kijelzés szellemképes volt bizonyos esetekben, a többlépcsős menü össze vissza működött. Elgondolkodtam, hogy mi is változott nyár eleje óta. Csak az Energiát frissítettem 1.2-ről egészen 1.7-ig. Nosza fordítás a még fennlevő 1.2-vel és a hibák eltűntek. Utána figyeltem meg, hogy ugyanabból a forrásból teljesen eltérő hosszú programot fordít a két verzió. Mindent alapon használtam nem is tudom ,hogy miként lehet-e egyáltalán állítani a fordítási opciókat.
Azt hiszem maradok az 1.2-nél és ezzel fejezem be a "művemet".
Sziasztok.
2553-as Timer A0 problémám van. Port megszakításban beállítom a Timer A0-t felfele számolásra adott értékig (CCR0), ami megy szépen, csak a kezdetekkel van baj. Ahogy kiadom a Timer megszakítás parancsot, számolás nélkül lefut egyszer a Timer megszakítás rutin és nem értem miért. Nem úgy kéne, hogy elszámol CCR0-ig és akkor lesz megszakítás?
Mielőtt engedélyezed a timer megszakítást, töröld a megszakítás flagjét. A CCTL0 |= CCIE; sor előtt.
Köszönöm!
Abban a hitben voltam, hogy alapértelmezetten törölve van, de tévedtem.
Sziasztok, látom itt némelyik fórumtárs nagyon profi a mikrovezérlő terén, lenne egy kérdésem adott egy lipo 4s akku benne egy MSP430 mikrovezérlő, hogy lehetne azt törölni ha másik cellát rakok bele ugyan is megjegyzi a régi cella töltötségét ,állapotát esetleges cella hibákat maga a smart akku panel rendelkezik egy sda, scl portal, ezen keresztül meg lehetne oldani?
A QFN tokos az MSP430? Mert a másik az egy Texasos fuel gauge IC nem mikrokontroller. Vagyis de csak máshogy.
|
Bejelentkezés
Hirdetés |