Fórum témák
» Több friss téma |
Idézet: Igen, lehet. Ha a timer szabadonfutó módban megy, a Capture/Compare csatornákba pedig beírod, hogy hány óraütés múlva adjanak megszakítást, majd megszakításkor a periódusidővel növelt értéket írod beléjük vissza. Az átvitellel nem kell törődni, mivel a timer is ugyanakkor csordul túl (lévén mindegyik 16 bites).„Kérdésem is lenne, a g2452 egy db timerével tudok e 2 különböző frekit létrehozni?” A második cikkem utolsó példájában is van hasonló dolog, csak ott a kitöltés nem 50 %-os (két, független PWM csatornát játszottam, különböző frekvenciával). A te eseted annál egy kicsivel egyszerűbb.
Valóban.
Smithy87: Bocsi a félrevezetésért!! Köszönöm a javítást! Nem tudom, miért hittem, hogy bennevan.
A DHL Global Forwarding szállítja a TI "cargo" szállítmányait Hollandiába. Ez azt jelenti, hogy ebbe sok embernek benne van a rendelése, ami a hollandiai DHL központba érkezik. Innen kerül át a DHL Express-hez, akik majd hozzád szállítják ki.
A gond ott van, hogy a TI nem a te csomagodhoz tartozó tracking number-t adja meg, hanem a cargo-ét. Ez az infó nekem is pár email-be és egy telefonhívásba került, de a rendelésem tracking number-e nem derült ki.
Egy kis érdekesség. (Ne próbáljátok ki!)
Egy analóg + digitális labortápon dolgozom, és teljesen véletlenül (figyelmetlenségből), a mikrovezérlő (g2252) analóg bemenetére, ráengettem a teljes kimenő tápot, 41 voltot, egy 1kohm-os ellenálláson keresztül. Csodák-csodájára, a mikrovezérlőnek semmi baja nem lett, még az analóg bemenet is megy, pedig, jó sokáig rajta volt (kb 5-6 perc), mire észrevettem a hibát, mert közben méregettem a tápot. Azért írtam le, mert nagyon felbosszantott a dolog, mert egy g2553-ast, a multiméter ampermérőjével tettem tönkre. Véletlenül a GND és egy analóg bemenetnek beállított lábra raktam a műszer vezetékeit ampermérő állásban. (Rögtön elszált az a láb, és még egy-két periféria is használhatatlan lett.)
Nem tudja valaki, hogy ccs-ben hogy lehet megadni egy bináris számot? A 0b0001 alakban hibát jelez.
Sziasztok!
Foglalkozott közületek valaki a TI-s USB-s stack-el CCS-ben? Épp egy MSP430F5510-be szeretném belegyömöszölni a CDC demot, de nem akar lefordulni a kód. A hibajelenség a csatolt képen látható. Több ilyen hiba is van, de ebből csak egy látható. Én úgy értelmeztem, hogy nem találja a fájlt, de valójában látja, mert: 1, Az elérési útvonalat többször ellenőriztem. 2, F3-at nyomva a kódsoron meg is nyitja azt. DecebaL-nak: Ezt a kérdést már én is feltettem itt egyszer, de én sem kaptam választ, szóval erre még nem jött rá senki. Amúgy próbáltam rákeresni is, illetve a CCS doksiját is néztem, de sehol semmilyen utalást nem találtam erre.
Mit jelentenek baloldalt a piros X-ek? Nem azt, hogy nincs, vagy nem ott található a fájl? Ha nincs ott, akkor nem csoda, hogy nem tudja betölteni!
Nem, azok azt jelentik, hogy abban a fájlban hibát talált a fordító.
a headerben megírod magadnak.
Keress vissza azt hiszem icserny a múltkor leírta , hogy ő miképpen szokta.
A fent linkelt kóddal próbálom a hw-s uartot egy 2553-assal az új launchpadon. Ha a felrajzolt jumper beállítást használom akkor sem megy át a cucc a hyperterminálba.
A 17,18,19-es sorok helyett tedd be ezt:
Most nemnagyon volt időm megnézni, hogy miért nem küldi át a lenti kóddal az "A" betűt, csak beleraktam a ciklust, és nálam megjelentek az "A" betük, a hyerterminálban. De valamiért nálam, csak 4db "A", plusz egy mosolygós jel jelenik meg.
A lapkán úgy csináltad a hw jumperelést ahogy a felfestés mondja? vagyis függőlegesből vízszintesbe fordítva? vagy barkácsoltál a keresztbekötéssel?
Valamint a timer lábakról tude mondani valaki valami hasznosat? arra szeretném hasztnálni,h az egyik lábon kimenetnek állítva 40Khz es PWM et tolok ki rajta. Elvileg van valami compare regisztere. Egy másik lábon meg a viszhang jel billentene. A lényeg a kiadás és a vissza verődés között eltelt idő közötti különbség számítása.
Igen, hw módban vannak a jumperek. A régi LP-nél kell barkácsolni.
A Timer ki/bemenetek, részletesen le vannak írva az adatlapban. Melyik, hol, hogy jön ki/be.
Hát ha meg gebedek sem értem, hogy hogy az Istenkébe lehet programozni ezt a szutykot egyszerűen nem fogom fel az elnevezeséket nem látom át a dolgait. Egy nyamvadt frekvencia ösztást nem tudok beállítani :@
Naaa, csak szépen higgadtan, nyugodtan. Nem kell kapkodni. A kapkodásból, és nem odafigyelésből, még soha semmi jó nem származott!
Megpróbálok egy rövid példát, leírni az adatlap megértéséhez, illetve a Timer perifériához. Tehát: MSP430G2553 = adatlap 5. oldal, lábak elnevezése. Pl. A P1.6-os lábhoz az van írva, hogy "TA0_1, Timer0_A, compare, Out1 output. Eszerint a Timer0_A egyes kimenete. Ha ezt írod be:
akkor egy 50%-os kitöltésű PWM jelet kapsz a P1.6-os kimeneten. Tehát a fenti kis programocskát mindegyik olyan kimenetre be tudod állítani, ami TA0_1-es jelölést kapott, csak a P1DIR-t, és a P1SEL-t kell átállítani. A Timer0_A beállítást, viszont a FUG tartalmazza!! A javaslatom, hogy Icserny fórumtársunk cikkét olvasd át, mert Ő sokkal jobban le tudta írni. Ui. Ha esetleg valaki hibát látna a fentiekben, kérem javítson ki!
Nos sikerült megoldanom a problémát, bár érteni nem teljesen értem. Beimportáltam egy gyári mintapéldát, ami gond nélkül lefordult. Ennél megnéztem, hogy melyek azok a mappák, melyek a fordítónál be vannak állítva, mint "includolási" mappák és ezeket beírkáltam az én projektem includolási beállításai közé. Igazából itt is azok a mappák szerepeltek, melyeket én lokálisan megadtam a .c és .h fájlokban az #include direktívákkal. A lényeg, hogy lefordult és sikerült felprogramoznom az MSP430F5510-esemet Launchpad-dal . Összeaggattam hozzá az áramkört. Működni működik, mert felismeri a Windows, de nem az igazi, mert a CDC eszközömet HID-ként ismeri fel, bár egyszer sikerült CDC-nek látnia, de akkor meg a hozzá társított driver-el voltak gondjai. Majd még agyalok rajta, hogy mi baja lehet...
Egyébként a TI-s USB stack szoftver oldalról nagyon jól dokumentált, a stack jól struktúrált (bár ez nem azt jelenti, hogy minden apró részletet értek is benne, de átláthatóbbnak tűnik, mint a Microchip-pé ), illetve van hozzá egy gyári descriptor készítő program is, mellyel könnyedén lehet CDC,HID,MSC és kompozit eszközöket is gyártani. A hardver oldal van egy kissé szellősen dokumentálva, de azt össze lehet szedni. Szóval, ha valakinek kedve támadt USB-zni egy kicsit, akkor csak nosza
Jól gondolom, hogy ez azt csinálja amit én szeretnék? Lesz 2 órajelem egy 8mhz és egy 4Mhz amiből a Timer_A használatával csinálok 40KHz-et 50% os tehát 12.5Us os félperiódussal. Már csak azt kellene megoldanom, hogy 12db ilyen jel generálása után álljon le és várjon. Valamint a capture/compare részből ha valaki tudna felvilágosítani azt meghálálnám. Idézet: „Valamint a capture/compare részből ha valaki tudna felvilágosítani azt meghálálnám.” Az MSP430x2xx Family User's Guide-ban (SLAU144I.PDF), valamint John Davies: MSP430 Microcontroller Basics ("MSP430 mikrovezérlő alapok") c. könyvében mit nem találtál meg?
Általam is érthető egyszerű példát Azt akarom hogy amikor elindul a 12 jelből álló 40KHz-s burst akkor induljon egy számláló és akkor álljon le amikor az echoja vissza ér. De nem jöttem rá, hogy melyik regisztereket kell meg voodoozom.
Timer kérdés:
Launchpad 2553-sal és icserny 2x16-os LCD kijelzövel. Egy NE555 oszcillátor frekvenciáját akartam megmérni (kb 38kHz) Timer capture/interupt segitségével. Az órajelet 12MHz-ra állitottam, beállitottam a Timer-t és a két felfutó él közötti számlálást tettem az LCD-re. 20 mintavételből minden második a jó számláló értéket mutatta (316), de minden második nulla számlálót mutatott (0). Nincs oszcilloszkopom, de az NE555 +5V tápról TTL jelet kellene hogy adjon és egy kis ellenállás osztot is betettem nehogy tulvezerelje a 2553. A Timer interupt vector törli az interupt zászlót igy nem értem miért adja vissza az interuptot rögtön a vezérlés. Van valakinek ötlete, miért nem müködik jól a program. Csatolva a lényege a programnak:
Program indulással kapcsolatos kérdés. Olyat szeretnék, hogy soros porton jön egy jel mondjuk egy pc-s progin lévő gomb megnyomása. És ennek hatására kell elinduljon a mikrovezérlőn a program. Ezt hogy a legegyszerűbb megoldani?
A mikrovezérlőn futó program normális körülmények között a tápfeszültség bekapcsolásakor már elindul.
Ha jól értem a szándékodat, akkor a főprogramnak induláskor egy karakter beérkezésére kellene várakoznia, s annak beérkezésekor végrehajtani az az eljárást, vagy programágat, ami a PC-s gomblenyomáshoz tartozik.
Igen !
Közben ki kísérleteztem, hogy amint táp-fesz kerül rá elindul a program. Gyakorlatilag a főprogramnak kell indulni a karakter beérkezése után. Jól gondolom, hogy az UART_init után a mainbe ha teszek egy hurkot ami a beérkező karakterre vár az működőképes megoldás? Idézet: Igen, erre gondoltam. „az UART_init után a mainbe ha teszek egy hurkot ami a beérkező karakterre vár az működőképes megoldás?”
Sziasztok!
Ismét elakadtam kicsit.
Szeretném azt csinálni a fenti programmal, hogy ha be van nyomva a gomb, akkor folyamatosan világítson a két led, egyébként felváltva. Az if feltétel működik, tehát ha a feltételnek (!(P1IN & BIT3))-at írok, akkor felváltva villog, ha az van, ami most, akkor folyamatosan. De valahogy menet közben nem akar váltani. Azt is megköszönném, ha elmagyarázza valaki, hogy a feltétel pontosan mit jelent. P1IN és BIT3 ? Eddig nem bírtam értelmezni. Miért nem elég csak a bit3-at figyelni? Miért kell össze ÉS-elni P1IN-nel? köszi: uli
(!(P1IN&BIT3))
csak annyit jelent hogy ha nem 1 akkor teljesül ergo nincsen lenyomva ha le van nyomva akkor else. Ha jól emlékszem. ezzel vizsgálod hogy az adott port bemenetén azt a láb magas avgy alacsony. Azért kell az in mert lehetne out is. és te bemenetet akarsz vizsgálni.+ ha nincsen bementre állítva és te figyeled a lábat attol még működhet.
Valami hasonlót akartam össze hozni kísérletezés címszóval én is de nekem sem működött folyamatában. az okára azóta sem jöttem rá.
Köszi! Már csak azt nem értem, a program miért nem működik
Átírtam kicsit, IF helyett While-t használtam. Ez most azt műveli, hogy az utolsó pár sor folyamatosan ismétlődik, viszont egyáltalán nem érdekli, hogy a gombot nyomom-e vagy sem, így nem lép be a másik while ciklusba. Lényeges, hogy P1 kimeneteit és bemeneteit milyen sorrendben deklarálom?
az egy dolog h nyomode de a felhuzó ellenálást bekapcsoltad és az egyébb dologkat amit kell.
|
Bejelentkezés
Hirdetés |