Fórum témák
» Több friss téma |
Be. Ezt a részt egy másik progiból másoltam, ott működött.
Átírtam, köszönöm!
Javult valamit, az első lépésben felváltva villog, utána megint csak a piros, és nem reagál a gombra. Idézet: Az ilyeneket mellőzni kellene, mert a felhúzást lehúzásba kapcsolod át a P1OUT regiszter BIT3 helyiértékű bitjének gondatlanságból elkövetett törlése miatt!„P1OUT =BIT0;” Bit '1'-be állítása: P1OUT |= BITn; Bit '0'-ba állítása: P1OUT &= ~BITn; Bit átbillentése: P1OUT ^= BITn; ahol n = 0 ... 7 lehet.
Helló.Én azt szeretném elérni ebben a "knight rider" programmal hogy a futó led ne elhalványosodjon és a többi világítson hanem hogy mindig 1-led menjen és azzal készítse ezt az effektust.
#include "io430.h" #include "intrinsics.h" const char a[]={0x01,0x03,0x07,0x0E,0x1C,0x38,0x70,0xE0,0xC0,0x80}; char i; void main(void) { WDTCTL = WDTPW + WDTHOLD; //Letiltjuk a watchdog időzítőt P1DIR = 0xFF; //P1 minden bitje legyen digitális kimenet while(1) { for(i=0; i<10; i++) { P1OUT = a[i]; //bitminta kirakása a P1 portra __delay_cycles(50000); //Várakozás kb. 50 ms ideig } i=10; while(i) { //a ciklus addig fut, amíg i!=0 teljesül i--; //ciklusváltozó léptetése P1OUT = a[i]; //bitminta kirakása a P1 portra __delay_cycles(50000); //Várakozás kb. 50 ms ideig } } } Ezt a programot átlehetne írni úgy ahogy nekem kéne? Válaszokat előre is köszönöm!>
Nálad VDD a LED-ek közös pontja? Ha jól értem, hogy a mintaprogrammal majdnem minden LED ég egyszerre...
Ez esetben írd így:
Ha zavar, hogy egynél több (max 3) LED ég, akkor a bitminta legyen:
nem akarok kötekedni , de ha egyszer valami bemenet akkor ott igazából minek is PxOUT-al bajlódni?
Ha már itt tartunk, és IAR-t használsz akkor javaslom: PxDIR_bit.Px = 0 v 1; PxOUT_bit.Px = 0 v 1; PxIN_bit.Px = 0 v 1; PxREN_bit.Px = 0 v 1; es stb amilyen registerek vannak, ha csak 1 lábat szeretnél vezérelni. Mindjárt megnézem a programod nálam egy padon Uli. Idézet: Belső fel/lehúzásnál így lehet beállítani, hogy le vagy fel. „nem akarok kötekedni , de ha egyszer valami bemenet akkor ott igazából minek is PxOUT-al bajlódni?”
Hát én még annyira nem értek hozzá hogy hogyan és hova mit kell beírni azért is kértem a segítséget.Ugyanazokat keressem meg a szövegben és cseréljem ki?
Mielőtt bármit módosítanál, válaszold meg a kérdésem, hogy tisztázzuk: milyen kapcsolással dolgozol!
Üdv!
Láttam valahol egy hasonló fejlesztő kitet mint a launchpad csak F sorozatra. Nem tudna valaki egy linket adni hozzá? mert én nem találom
Ami a Launchpad-hoz hasonló, az FR5xxx sorozat (FRAM). Bővebben: Link
Az MSP430F2013-hoz egy másfajta olcsó KIT-ről tudok: EZ430-F2013
Hát p1.0-1.7-ig vannak a led-ek kirakva (8db).Azok másik ága meg megy a negatív-ra.A reset le van kötve a pozitív ágra egy 15k-s ellenálláson keresztül.Ennyi a kapcsolás.
Akkor nem értem az alábbi mondatodat:
Idézet: Ha a katódok vannak közösítve a földön, akkor csak az(ok) a LED(-ek) világít(anak), ahol '1', azaz magas szint a kimenet. Az általad bemásolt mintapéldában pedig csak 1, 2 vagy max. 3 db LED világít egyszerre.„Én azt szeretném elérni ebben a "knight rider" programmal hogy a futó led ne elhalványosodjon és a többi világítson” Akkor tulajdonképpen mi a kérdésed?
Hello!
Olyan kérdésem lenne, hogy a Capture/compare regiszterek használatánál, Timer_A esetében, a TACCRx regiszter honnan fogja tudni, hogy én most capture vagy compare regiszterként akarom használni? Idézet: „honnan fogja tudni, hogy én most capture vagy compare regiszterként akarom használni?” Onnan, hogy megmondod neki a TACCTLx regiszter segítségével. FUG 374. oldal! TACCTLx -> CAP 0 or 1.
Jól gondolom,hogy a fenti kód az SMCLK beállított 4MHz- éből csinál egy 40Khz- jelet a timer 1 felhasználásával? Aztán ebből egy 12 impulzusos burstöt állít elő. A másik részen pedig a P1 porton ami a vezérlő 3 as lába bemenetnek állítom capture módban és várom, hogy valami jel érkezzen. És ha bejött letárolom a result változóban? Roppant égető lenne ez a program részlet. Amennyiben nem ezt csinálja kérlek segítsetek, elérnem, hogy ezt csinálja.
Nem sok élet van itt mostanában. De lenne egy kérdésem. Ha Sima C nyelven írom a kódot hogy tudok bele tenni asm parancsokat?
Idézet: Többféle módon:„Ha Sima C nyelven írom a kódot hogy tudok bele tenni asm parancsokat?” 1. Inline assembler segítségével
2. Assembly-ben írt függvény meghívásával, amelyet external-ként kell deklarálni:
vagy
Szerintem azért mert sorosan hajt végre a kis barátunk. Tedd a késleltetést a feltétel mögé. Minta a példaprogikban is úgy láttam volna.
Kérdés, vissza kanyarodva az ASM es kérdésemhez. Inline assembler lenne jó nekem, de nem eszi meg a kódot. Panaszkodik a regiszternévre, hogy nem tudja micsoda. Ezt hogy tudom orvosolni?
Hopp kifelejtettem, hogy nem tude valaki valami webshopot vagy boltot ahol lehet 40 kHz es kvarcot venni? kellene órajelforrásnak.
Idézet: „Tedd a késleltetést a feltétel mögé.” Az nem jó. Ha már végrehajtotta az utasítást, "sz++;" minek várjak. Vagy pedig arra gondoltál, hogy a "while(!..." után rakjam a várakozást? Ott is fölösleges, mert onnan csak akkor megy tovább a program, ha magas lesz a bemenet, és szerintem akkor már nincs prell.
Szerintem meg pont ott lesz. Amíg nem nyomod a gombot alacsony a bemenet. Amikor megnyomod magas, és közben számol ha nem késlelteted. Szerintem a while után kell. De próbáld ki 1-1 ctrl c, ctrl v.
Idézet: „Amíg nem nyomod a gombot alacsony a bemenet.” Nem! Pont fordítva. Ha megnézed a programrészletet, láthatod, hogy az "if" feltétel, és a "while" ciklus is, negálva (!) van. A feltételben megvizsgálom a P1.3-at, ami ebben az esetben magas szinten van, tehát ha nem negálnám, akkor teljesülne a feltétel. De mivel a "!" jelell pont az ellenkezőjére állítom, így hát hamis lesz a feltétel, mindaddíg, míg a P1.3 magas szinten van. De közben megoldottam, úgy, hogy a várakozást növeltem 30ms -ra.
Sziasztok!
Van egy MSP430G2553 mikrovezérlőm. Szeretném a kimeneteit bővíteni. Lehet ezeket kaszkádosítani (mondjuk 2 darab MSP4...)? Vagy csak úgy, hogy két külön progi megírásával összehangolom a kettőt? Zsolti
Peldaul a Product search segit kivalasztani a neked megfelelo labszamu, es periferiaju eszkozt. Persze azt is meg lehet csinalni, hogy ha pl 100 I/O kell akkor felraksz 10 uC-t es csinalsz hozzajuk egy halozati protokollt, amin kommunikalnak. Termeszetesen minden egysegnek sajat FW-vel kell rendelkeznie. Persze vannak sokkal egyszerubb megoldasok, pl I2C, SPI bovitok a MCHP valasztekabol, vagy 74HC595 shift regiszter kimenetek bovitesere 3 szal derottal.
Idézet: Egyrészt kell a fizikai kapcsolat (UART, RS-485, SPI, I2C stb), másrészt kell szoftver is, ami értelmesen kommunikál a fizikai csatornán.„Vagy csak úgy, hogy két külön progi megírásával összehangolom a kettőt?” Ha csak a láb kevés, akkor inkább portbővítő, ami olyan, mintha a fenti kommunikációs egységek közül az egyiket már készen kapnád... |
Bejelentkezés
Hirdetés |