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   53 / 139
(#) szitko válasza icserny hozzászólására (») Ápr 24, 2012 /
 
De jelen esetben a mikrovezérlő belső kapacításáról beszélünk, nem? (Mert szerintem én ezt keverem-kavarom.)
(#) icserny válasza szitko hozzászólására (») Ápr 24, 2012 /
 
Nem, külső is lehet. Vezeték szórt kapacitása, vagy a nyomógombbal párhuzamosan kötött kondenzátor.
(#) szitko válasza icserny hozzászólására (») Ápr 24, 2012 /
 
Akkor végkép összekeveredtem. Egy dugdosós panelre tettem a vezérlőt és, közvetlenül mellé a gombot, a minimális kapacítás miatt, ami szerintem így egyenlő a nullával. (nincs rajta kondi, csak úgy magában árválkodik a gomb)
Az említett programot futtatva próbálgatom a belső felhúzást, (mintapélda, ..g2xx2_P1_03.c) de még mindíg nem jutottam el a helyes működésig. Pedig már mindenhogy próbáltam. ( A FUG szerint, a Te cikked alapján is, stb...)
Annó szerintem ezért vetettem el a felhúzóellenállás használatát, és amíg látom az smd 0402-es tokozású ellenállást,(és be is tudom forrasztani) inkább azt használom.
Bár néha tényleg jó lenne ha működne, minden nehézség nélkül!

U.i. Egyet viszont nem próbáltam. A mikrovezérlőt kicserélni.
(#) DecebaL válasza szitko hozzászólására (») Ápr 24, 2012 /
 
Én is állandóan kínlódok a felhúzó ellenállásokkal, hol megy hol, nem megy. Azt hittem, hogy bénázok. Mostanában én is áttértem arra, hogy inkább forrasztok be.
(#) szitko válasza DecebaL hozzászólására (») Ápr 24, 2012 /
 
Most csak azért próbáltam meg megint, mert Te kérdeztél ezzel kapcsolatban, és egy jó ok volt, hogy újra működésre bírjam a belső ell.-t. Meg azért egy kicsit idegesítő, hogy van, de mégsincs. De szerintem meg fog oldódni a probléma. (idővel)
(#) gyengus válasza Smithy87 hozzászólására (») Ápr 24, 2012 /
 
Egyszer nekem is a DHL Global Forwardint jelölte szállítónak és mivel a követés szerint Hollandiába vitték a csomagom, elkezdtem levelezni a DHL-el.
Rendesek voltak, elkezdték keresni a csomagot, megkérdezték az amerikai kollégákat is.
Aztán mire kinyomozták, hol a cucc, megérkezett vele a futár
(#) icserny válasza DecebaL hozzászólására (») Ápr 24, 2012 /
 
Megnéztem az új Launchpad-dal (MSP430G2553) a belső felhúzást, s az alábbi kód nekem úgy működik, ahogy kell (az S2 nyomógombbal ki-/bekapcsolható a piros LED).
  1. #include "io430.h"
  2. #include "intrinsics.h"
  3.  
  4. void main(void) {
  5.   WDTCTL = WDTPW + WDTHOLD;       //Letiltjuk a watchdog időzítőt
  6.   P1DIR |= BIT0;                  //P1.0 legyen digitális kimenet
  7.   P1DIR &= ~BIT3;                 //P1.3 legyen digitális bemenet
  8.   P1OUT |= BIT3;                  //Felfelé húzzuk, nem lefelé  
  9.   P1REN |= BIT3;                  //Belső felhúzás engedélyezése
  10.   while(1) {
  11.     while(P1IN & BIT3);           //lenyomásra vár
  12.     P1OUT ^= BIT0;                //LED1 állapotának átbillentése    
  13.     __delay_cycles(20000);        //20 ms pergésmentesítő késleltetés
  14.     while(!(P1IN & BIT3));        //felengedésre vár
  15.     __delay_cycles(20000);        //20 ms pergésmentesítő késleltetés
  16.   }
  17. }


Megnéztem azt is, hogy a P1DIR és P1OUT beállításának sorrendje számít-e, de úgy tűnik, nem számít.

Ellenpróba 1.: P1OUT &= ~BIT3; esetén nem működik a program (mert ez lehúzás).

Ellenpróba 2.: P1REN |= BIT3; kihagyása esetén antennaként működik a P1.3 bemenet, a pillanatnyi zaj szerint "repked" a LED fénye, a 2x20 ms által behatárolt maximális frekvenciával.
(#) uli hozzászólása Ápr 25, 2012 /
 
Sziasztok!
Most ismerkedek a launchpaddal. icserny cikke sokat segít, de vannak olyan alap dolgok amiket nem értek.
1. Nekem másféle vezérlőm van, mint amire a cikk íródott, és pl az első gombot lenyomós program nem úgy működik, ahogy kéne. Nem s2-vel, hanem a reset gombbal csinálja ugyan azt. De ezt majd később.
Ami most foglalkoztat, hogy miért nem működik jól az alábbi program:
  1. #include "io430.h"
  2.  
  3. int main( void )
  4. {
  5.   // Stop watchdog timer to prevent time out reset
  6.   WDTCTL = WDTPW + WDTHOLD;
  7.  
  8.   P1DIR=0xFF;                 //p1 minden lába kimenet
  9.  
  10.   int i=0;                    //i deklarálása
  11.   const char a=0x01;          //a bináris értéke: 1000000
  12.   const char b=0x40;          //b bináris értéke: 0000001
  13.  
  14.   while (1) {
  15.     i++;
  16.     if  (i/2==1) { P1OUT=a;
  17.     }                          //i-t folyamatosan léptetve egyszer a piros egyszer a zöld led világít.
  18.     else { P1OUT=b;
  19.     }
  20.    
  21.   __delay_cycles(250000);
  22.  
  23.   }


Az első két lépés jó, villan a zöld, majd a piros, majd megáll a zöld lednél. Mi lehet a gond?
Köszi:
uli
(#) DecebaL válasza uli hozzászólására (») Ápr 25, 2012 /
 
A program jól működik mert a feltétel szerint (i/2==1) csak akkor fog égni a piros led ha i/2 hányadosa 1 ami csak akkor következik be ha i=2. Egyébként a zöld led világít. Az i értéke meg folyamatosan növekszik míg túl nem csordul.
(#) uli válasza DecebaL hozzászólására (») Ápr 25, 2012 /
 
Jajj, igazad van!!!
Én vagyok a hülye. Úgy akartam, hogyha a maradék 1, akkor legyen így. Itt működik a div parancs?
Köszi
(#) DecebaL válasza uli hozzászólására (») Ápr 25, 2012 /
 
A maradék képzés a mod és C -ben %
(#) SBahadurD hozzászólása Ápr 25, 2012 /
 
Sziasztok!
Az lenne a kérdésem, hogy az MSP430 mikrokontrollerek beépített flash romját lehet használni adatmemóriaként. Vagyis futási időben is módosítható?
Pl. ha szeretnék csinálni egy számkódos zárat, de szeretném, hogy a felhasználó által beírt kódot áramtalanítás után is megőrizze.
A kódot, ami futásidőben lesz beállítva, eltárolhatom a beépített flashben, vagy külső flash tárat kell hozzátennem?
Köszönöm!
(#) icserny válasza SBahadurD hozzászólására (») Ápr 25, 2012 /
 
Van külön adattárolásra kijelölt flash terület. Keress vissza a topikban, volt már róla szó!
(#) Smithy87 válasza szitko hozzászólására (») Ápr 25, 2012 /
 
Idézet:
„Beállítod a Timer-t felfele számolásra a 40kHz-hez:
TACCR0 = 199; // PWM periódus
TACTL = TASSEL_2 + MC_1; // órajel=SMCLK, felfele számolás
TACCTL1 = OUTMOD_7;
TACCR1 = 100; // CCR1 PWM kitöltés ??? 50%, ha ennyi kell!”


Ez alapján a timert használva bármelyik lábra ki tudom tenni az így generált csomagot (10 impulzus)? Vagy van valami külön láb amit használni kell a timer végett? Valamint a kibocsátott impulzusok visszaverődését kell mérnem erre van valami "dedikált" láb? vagy szintén bármelyik használható?
(#) szitko válasza Smithy87 hozzászólására (») Ápr 25, 2012 /
 
Nézd meg az adatlapban, hogy az adott vezérlőben melyik láb tartozik TimerA(B) 0,1, ill.2-höz. Pl. a g2252-ben a TA0.0, a 3-as és a 7-es lábon van kivezetve. (ha jól emlékszem)
Idézet:
„a kibocsátott impulzusok visszaverődését kell mérnem erre van valami "dedikált" láb? vagy szintén bármelyik használható?”

Ha megszakításban figyeled, akkor bármelyik lábat be lehet állítani, pl fel vagy lefutó élre. De egyszerűbb a TimerA(B) CAPTURE funkcióját használni, szintén megszakításban. (vagy megszakítás nélkül) Erről azthiszem írt Icserny a cikkében.
(#) icserny válasza Smithy87 hozzászólására (») Ápr 25, 2012 /
 
Az adatlap 12. táblázata megmondja, hogy melyik PWM kimenet (TA0, TA1, TA2) melyik lábra vezethető ki. Az adatlap végén pedig kiderül, hogy melyik lábnál milyen regiszterbeállításokkal választható ki a kívánt funkció (P1DIR, P1SEL, P1SEL2 stb.)
(#) icserny válasza szitko hozzászólására (») Ápr 25, 2012 /
 
Idézet:
„De egyszerűbb a TimerA(B) CAPTURE funkcióját használni, szintén megszakításban. (vagy megszakítás nélkül) Erről azthiszem írt Icserny a cikkében.”
Sajnos nem, legalábbis nem tudok róla.
(#) Smithy87 hozzászólása Ápr 25, 2012 /
 
Igazából nekem az lenne a legjobb ha lenne valaki Pesten aki ért ezekhez a mikrovezérlőkhöz és lenne rám egy 2 órája Ha magyaráznak roppant gyorsan tanulok ellemben magamtól nem
(#) szitko válasza icserny hozzászólására (») Ápr 25, 2012 /
 
De a Timer-ről írtál, és ott említetted. Lehet, hogy rosszul fogalmaztam. Bocsi érte.
(#) szitko válasza Smithy87 hozzászólására (») Ápr 25, 2012 /
 
Először Én is így gondoltam, de menet közben rájöttem, hogy autódidakta módon jobb. Csak sokat kell olvasni, és türelmesnek kell lenni!
A fórum meg azért van, hogyha valaki tud akkor segít, és mások hibáiból-sikereiből is tudjunk tanulni.
(#) Smithy87 válasza szitko hozzászólására (») Ápr 25, 2012 /
 
Jogos lehet de nekem az idő a szűk keresztmetszet perpill. Későbbiekben valószínűleg bejön az autodidaktizmus.
(#) szitko válasza Smithy87 hozzászólására (») Ápr 25, 2012 /
 
Idézet:
„és lenne rám egy 2 órája”
Ha azt az egy-két órát tanulásra fordítod, már nem is kell tanár. Kicsit lassabb, de a saját stílusod.
(#) Smithy87 hozzászólása Ápr 26, 2012 / 1
 
Kollégák!

Továbbra is fent tartom hogy ha valaki pesten vagy közvetlen vonzás körzetében jártas az MSP430 G család programozásában és utna rám szánni néhány órát speciálasan az én problémámmal foglalkozva azt megköszönném. Nem lennék hálatlan.
(#) szitko hozzászólása Ápr 26, 2012 /
 
Hogy tudnám/lehetene, vezérlőn belül, megoldani, (szoftveresen) hogy a kimenő PWM jel feszültsége, teljes kitöltésnél, ne legyen több, az AD referencia feszültségénél, amit külső alkatrészekkel állítok elő (kb 1,2V).
Vagy egyszerűbb, egy zéner?
(#) icserny válasza szitko hozzászólására (») Ápr 26, 2012 /
 
Ellenállás osztó, vagy műveleti erősítő...
(#) Smithy87 hozzászólása Ápr 26, 2012 /
 
Szerintem a zéner bár még adatlapokat erősen forgatom. Kérdésem is lenne, a g2452 egy db timerével tudok e 2 különböző frekit létrehozni? Mondjuk 9600Hz-t a soros kom hoz és az alkalmazásomhoz szükséges 40Khz-et? A DCO lenne a main 8Mhz-n.
(#) szitko válasza icserny hozzászólására (») Ápr 26, 2012 /
 
Azt elfelejtettem írni, hogy a PWM jelet kisimítom (kondival), azért írtam a zénert. De a műv. erősítő, lehet, hogy jobb megoldás lesz, mert az AD referencia feszültség is változhat, és annak arányában, kéne változzon a PWM max. fesz.
Csak ez egy újjabb külső alkatrész lesz, meg ki is kell találjam a hogyant.

Köszi.
(#) szitko válasza Smithy87 hozzászólására (») Ápr 26, 2012 /
 
Igen, lehet két külön frekit előállítani, de miért nem használod a hardveres UART-ot. Lentebb írtam.
(#) szitko válasza Smithy87 hozzászólására (») Ápr 26, 2012 /
 
Elsőnek próbáld meg ezt. De olvasd el az előzményeket!
(#) icserny válasza szitko hozzászólására (») Ápr 26, 2012 /
 
Idézet:
„miért nem használod a hardveres UART-ot?”
Azért, mert abban nincs.
Következő: »»   53 / 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