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   121 / 139
(#) icserny válasza hotau hozzászólására (») Jan 11, 2014 /
 
  1. P1REN |=  0x08;                  // Enable Port 1 P1.3 (push button) pull-up

P1REN BIT3 beállítása után P1OUT megfelelő bitjét is 1-be kell állítani, különben lefelé húzás lesz, nem pedig felhúzás.
  1. P1OUT |= BIT3;


Egyébként ezen az oldalon az 1_ledswitch program módosítása pont erről szól.


Megjegyzés: olvashatóbb lenne a programod, ha a 0x08, 0x40 és hasonlók helyett BIT3-at, BIT6-ot és hasonlókat írnál!
A hozzászólás módosítva: Jan 11, 2014
(#) Erick hozzászólása Jan 13, 2014 /
 
Sziasztok!

Azt szeretném kérdezni, hogy ha egy autó sebességjelét szeretném egy g2553-al feldolgozni, akkor hogyan köthetem azt az egyik lábára? Optocsatoló után egyből, vagy kell még rá esetleg szűrőkondenzátor, vagy egyebek? Mi az ajánlott technika?

Köszönöm a választ!
(#) icserny válasza Erick hozzászólására (») Jan 14, 2014 /
 
Optocsatoló után nincs mit szűrni. Előtte, a LED meghajtásánál kell ügyelni, ha szükséges formázni.
(#) Erick válasza icserny hozzászólására (») Jan 14, 2014 /
 
A sebességjeladó elméletben testet kapcsolgat, egy négyszögjel a kimenete. Akkor ezzel kell valamit csinálni?
(#) icserny válasza Erick hozzászólására (») Jan 14, 2014 /
 
A test kapcsolgatástól nem fog világítani a LED, tehát van ott más is, pl. tápfeszültség. A kapcsoló (vagy mi a jeladó?) pereghet, az áramkör zajt szedhet fel, tehát biztosan van mit csinálni, de ez már nem ennek a topiknak a témájába vág.
(#) Erick válasza icserny hozzászólására (») Jan 14, 2014 /
 
Hát úgy gondoltam, hogy a jeladót az optoled negatívjára viszem, a led pozitívját meg előtét ellenállással a pozitív tápra. Így már kellene neki világítani. Melyik topikban tudnék kérdezni ezzel kapcsolatban?
(#) szitko hozzászólása Jan 22, 2014 /
 
Sziasztok!
Kettő Launchpad és egy PC között szeretnék, bluetooth-on kapcsolatot létrehozni hc-05-ös modulokkal. A LP és PC között működik a kapcsolat, azzal nincs bajom, viszont nem tudom, hogy oldjam meg a két LP közötti kapcsolatot ezekkel a modulokkal.
Tehát, két Launchpad (g2553) plusz két hc-05 bluetooth, hogy lehet megoldani a kettő közötti kommunikációt? Meg lehet egyáltalán? Vagy egyszerűbb ha a PC-n keresztül oldom meg?
(#) icserny hozzászólása Jan 31, 2014 /
 
Szoftveres I2C kezelésre (csak master módot támogat!) találtam könyvtárat az Energiához ebben a topikban. Több napi szenvedés után sikerült használhatóvá is tenni (egy nagyon trükkösen megbúvó indexelési hiba volt benne). A javított kódot mellékelem.

Egy mintapélda a használatára (TCN75 hőmérő kiolvasása):

  1. #include "SoftwareWire.h"            // Software I2C library
  2. #define tc75_addr 0x48
  3. //I2C pin definitions conforming the Booster Pack Pinot Standard
  4. #define SCL_PIN 9                    // I2C bus clock line
  5. #define SDA_PIN 10                   // I2C bus data line
  6. SoftwareWire Wire(SDA_PIN, SCL_PIN); // Instantiate SW I2C channel
  7.  
  8. uint16_t tc75_read(void) {
  9.   Wire.beginTransmission(tc75_addr); // Start I2C transaction
  10.   Wire.write(0);                     // Address of the TEMP register
  11.   Wire.endTransmission();            // Set reg and stop writing
  12.   Wire.requestFrom(tc75_addr, 2);    // Read 2 bytes from the preset register
  13.   return (Wire.read() << 8 | Wire.read());
  14. }    
  15.  
  16. void setup() {
  17.   Serial.begin(9600);
  18.   Wire.begin();                    
  19. }
  20.  
  21. void loop() {
  22.     delay(2000);
  23.     float temp = tc75_read();         // Read temperature in 1/256 C degrees
  24.     Serial.print("Temperature: ");
  25.     Serial.print(temp/256,1);         // Print result with 1 decimal
  26.     Serial.println(" C");      
  27. }
(#) icserny hozzászólása Jan 31, 2014 / 1
 
Nem tudom, hogy volt-e már róla szó, de ha nem, akkor hasznos info:
Thoms Fishl programja segítségével a Stellaris Launchpad kártyát használhatjuk logikai analizátorként. Nem egy nagy durranás, de alkalmanként hasznos segítség.

Jellemzők:
- 10 MHz mintavételi frekvencia (a firmware módosítása nélkül nem változtatható)
- 16 kB mintavevő buffer (ami a RAM-ban elfér...)
- 8 csatornás bemenet (PORTB[0..7])
- Nem kell kiegészítő hardver
- Triggerelési funkció egyelőre nincs, az első jelszintváltozás a 8 bemenet bármelyikén indítja a mintavételezést

Figyelem: a PB0 és PB1 bemenetek nem tolerálnak 3,6 V-nál magasabb jelszintet. A többi csatorna 5 V toleráns.

A PC oldali megjelenítéshez és protokol analízisre a Logic Sniffer Java kliens használható.

Mai I2C szenvedésem eredménye, ami igazolta számomra, hogy hardveresen rendben van a jel, tehát programhibát kell keresni, a mellékelt ábrán látható.

LA_full.png
    
(#) icserny hozzászólása Feb 1, 2014 /
 
Íme, a breadboard-barát Launchpad kártya. Előtérben a BMP180 szenzor, szoftveres I2C-vel hajtva (a végeredményben már a magasságra korrigált nyomás került kiíratásra).
A hozzászólás módosítva: Feb 1, 2014
(#) szitko válasza icserny hozzászólására (») Feb 2, 2014 /
 
Idézet:
„breadboard-barát Launchpad”

Ez jó, pláne a befőttes gumis felfogatás! Én kétoldalas ragasztóval oldottam meg...

Ha szoftveres I2C-t használok, akkor is számít a master és a slave közötti távolság? Persze, tudom, nem lehet a végtelenségig növelni, csak az érdekelne, hogy távolabb lehet-e a két eszköz, mint a hardveres I2C-nél.
(#) icserny válasza szitko hozzászólására (») Feb 2, 2014 /
 
A befőttes gumi előnye, hogy könnyen levehető.

A szoftveres I2C esetén ne felejtsük el, hogy a drót másik végén a szenzor továbbra is ugyanúgy ("hardveresen") működik, tehát a korlátok itt is megvannak.

Ha a drót mindkét végén szoftveres vezérlés lenne, akkor lehetne manipulálni a mintavételezés (órajel felfutáshoz képesti) megkésleltetésével, hogy a nagy kapacitások okozta lassú jelfelfutás ne zavarjon. De az már egy másik kommunikációs szabvány lenne...
(#) martonroli hozzászólása Feb 2, 2014 /
 
Üdv!
Azt szeretném megcsinálni hogy MSP430g2-re van kötve egy poti, serial-ban ki is irja az adatokat de csak 1000 és 1024 között, hogyan lehetne megoldani hogy 0-1024 között irja ki?Illetve hogyan lehetne azt hogy a feszültséget is irja, szóval a poti tekerésére hogyan változik a feszültség.Energia könyvtárban nemigazán találtam rá megoldást.
  1. void setup() {
  2.   Serial.begin(9600);
  3. }
  4. void loop() {
  5.   int sensorValue = analogRead(A3);
  6.   Serial.println(sensorValue);
  7.   delay(300);
  8. }
(#) icserny válasza martonroli hozzászólására (») Feb 2, 2014 /
 
Idézet:
„Illetve hogyan lehetne azt hogy a feszültséget is irja, szóval a poti tekerésére hogyan változik a feszültség.”

Itt írtam le (a lap alján az utolsó példa). Ellenőrizd a bekötést is! (Erős a gyanúm, hogy mégsem a csúszkát kötötted be az A3 bemenetre)
A hozzászólás módosítva: Feb 2, 2014
(#) martonroli válasza icserny hozzászólására (») Feb 2, 2014 /
 
Köszönöm ezzel már működik!Valószinüleg rossz helyre kötöttem mert felső vcc és gnd-re volt.
Viszont a feszültséget csak 3,449-ig állitja, ez arra enged következtetni hogy kevés az ellenállása a potinak?
(#) icserny válasza martonroli hozzászólására (») Feb 2, 2014 /
 
Idézet:
„felső vcc és gnd-re volt.”
Az mindegy. Szerintem az első kísérletnél a potméter felső végét és a csúszkát cserélhetted fel.

Nem tudom, hogy mennyi a potméter ellenállása, de 1 kOhm és 20 kOhm közötti érték meg kell, hogy feleljen. Az, hogy nem megy fel teljesen a megadott névleges feszültségig (ami vagy annyi, vagy nem annyi...) attól lehet, hogy a mechanikus ütköző nem engedi nekiütközni a felső vég fémes kontaktusának. Én nem izgatnám magam emiatt emiatt. Nézd meg inkább, hogy mi van, ha direktben a VCC pontot kötöd A3-ra!
(#) szitko válasza icserny hozzászólására (») Feb 2, 2014 /
 
Á... A másik oldali hardveres I2C, ki is ment a fejemből!
Mostanában elég szétszórt vagyok.... Előbb cselekszem, aztán gondolkodom....
Köszi!
(#) martonroli válasza icserny hozzászólására (») Feb 2, 2014 /
 
Bocsánat rosszul fogalmaztam, poti tekerésére 3,449 és 3,5 közötti értéket kapok ebből gondolom hogy nem elég nagy az ellenállása.
(#) kisedison válasza martonroli hozzászólására (») Feb 2, 2014 /
 
Így kösd be a potit.

igy.JPG
    
(#) G-man hozzászólása Feb 3, 2014 /
 
Sziasztok!
MSP430 segítségével szeretném megoldani a következő feladatot:

Egy bejövő jel hatására az egyik kimeneten egy LED fényerejét szeretném szabályozni. Úgy képzeltem el, hogy lenne 3 féle bejövő jel és ezek 1-1 külön bemenetre érkeznének. Ezeknek a hatására 3 különböző fényerősség "keletkezne" egy LED-en attól függően, hogy melyik bemeneten jelent meg bejövő jel.
Tehát mondjuk ha az MSP-m egyik bemenetére jel érkezik, akkor mondjuk teljes fénnyel világít a led, ha a másik bemenetére érkezik jel, akkor közepes fénnyel világít, ha a harmadik bemenetre érkezik jel, akkor pedig mondjuk alig világít.

Megoldható ez egyáltalán MSP-vel?
(#) martonroli válasza kisedison hozzászólására (») Feb 3, 2014 /
 
Sikerült megoldanom 5 lábú potival, 1. és 5. láb a vcc, gnd 2. láb pedig a jel, igy tökéletesen működik 0-3,5v között tudom állitani.
A hozzászólás módosítva: Feb 3, 2014
(#) kisedison válasza martonroli hozzászólására (») Feb 4, 2014 /
 
Csak puszta kíváncsiságból, a másik 2 láb micsoda?
(#) martonroli válasza kisedison hozzászólására (») Feb 4, 2014 /
 
Azok semmire sincsenek rákötve,csak úgy vannak.
(#) martonroli hozzászólása Feb 4, 2014 /
 
Hogy lehet azt megcsinálni hogy serial-ba mondjuk be irom hogy start és akkor elkezdi az adott feladatot pl.: feszültséget ki irná, ha be irom hogy stop akkor pedig abbahagyja.
Előtte átböngésztem az energia könyvtárat de nemigazán tudtam rájönni hogy hogyan lehetne.
(#) icserny válasza martonroli hozzászólására (») Feb 4, 2014 /
 
Sok értelme nincs annak, hogy a mikrovezérlőben tiltsd le a kiíratás. Naplózáshoz én a Hyperterminálban szoktam indítani vagy leállítani a fájlba írást. Ha zavar a kiírás, akkor fordulj el, vagy zárd be a terminál ablakot!

A kérdezett funkciót csak nagyon bonyolultan, kvázi multitaszkos formában (mert nem tudod, hogy mikor jön az adat a soros vonalon!) lehetne megvalósítani, a Serial objektum Stream osztályból örökölt metódusai segítségével.
(#) martonroli válasza icserny hozzászólására (») Feb 4, 2014 /
 
És ha mondjuk 10 féle adat van de én most éppen csak a 4. 5. 6. adatra vagyok kiváncsi akkor nagyban meg könnyitené a dolgom ha csak be irnám hogy 4. 5. 6. .Persze ez csak a példa kedvéért, inkább csak az érdekel hogy hogyan is lehetne megoldani.Nem gondoltam hogy ez ennyire bonyolult, azt hittem csak megadok valamilyen if függvényt hogyha bevan irva hogy 4. akkor 4. adatot irja ki.
(#) icserny válasza martonroli hozzászólására (») Feb 4, 2014 /
 
A legegyszerűbb az egyetlen karakterrel történő vezérlés. Ekkor is ellenőrizni kell, hogy érkezett-e karakter, azt beolvasod és utána jöhet a vizsgálat (if, switch, stb).

Többkarakteres parancsot, vagy adatot karakterenként beolvasni, összerakni, értelmezni nagyon macerás, pláne, ha közben a program alaptevékenységét nem lehet félbeszakítani egy blokkoló várakozással (ami a világ végéig sem enegedi tovább a programot, amíg a felhasználó nem kegyeskedik leütni az Enter-t, vagy megnyomni a Send gombot).
(#) martonroli hozzászólása Feb 4, 2014 /
 
De nem értem hogy azt miért nem lehet hogy ha x=start akkor elkezdi ki irni 4. adatot.
Ezt leprogramozni csak nem lehet annyira bonyolult.
(#) icserny válasza martonroli hozzászólására (») Feb 4, 2014 /
 
Mi az, hogy x=start?
A nehézség pedig az, hogy a soros kommunikáció karakterenként történik.
(#) martonroli válasza icserny hozzászólására (») Feb 4, 2014 /
 
Úgy értettem hogy az ahova lehet irni serial-nal, szóval ha oda start van be irva akkor úgy, de mindegy is ha nem lehet megcsinálni.Azért köszönöm a választ!
Következő: »»   121 / 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