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   115 / 139
(#) röntgen hozzászólása Nov 17, 2013 /
 
Szaisztok,

Szeretnék a 430h.com oldalon regisztrálni, de nem jön össze az istennek sem. Van egy kérdés amire bármit válaszolok sem akarja elfogadni. Aki regisztrált, segítene nekem megértetni, hogy hogy kell?
Bocs a bénázásért....

köszönöm
(#) szitko válasza röntgen hozzászólására (») Nov 17, 2013 /
 
Nem emlékszem, hogy anno amikor regisztráltam, volt-e bármilyen kérdés ami a reg.-hez kapcsolódott volna. Milyen kérdés?
(#) röntgen válasza szitko hozzászólására (») Nov 17, 2013 /
 
Nos ez lenne.....

kérdés.JPG
    
(#) icserny válasza röntgen hozzászólására (») Nov 17, 2013 /
 
(#) röntgen válasza icserny hozzászólására (») Nov 17, 2013 /
 
És műkszik......
Köszönöm Gábor, ez hihetetlen milyen bal...sz vagyok.Üdv.
(#) röntgen válasza icserny hozzászólására (») Nov 17, 2013 /
 
Vagyis István.........bocs.
(#) röntgen válasza (Felhasználó 15355) hozzászólására (») Nov 17, 2013 /
 
Most nem ittam még, egyszerűen csak keverem őket, mert ők azok ketten akik a legtöbb hozzászólást teszik az MSP430 topicban. Inkább csendes résztvevő vagyok itt, de azért képben vagyok...
(#) szitko válasza röntgen hozzászólására (») Nov 17, 2013 /
 
Ezek szerint sikerült. Szerintem jobb ez a fajta spam ellenőrzés, mint az eltorzított krix-kraxok...

Más!
Feltelepítettem az IAR 5.52-es 30 napos verzióját a g2955 miatt. Azért az 5.52-est, mert régebben ezt a 30 napos verziót töltöttem le az IAR-tól, de nem foglalkoztam vele.
Olyan hibába ütköztem, hogy ha futtatom a megírt programot debug módba, tehát nem soronként léptetem, akkor a stop gombra nyomva leáll az egész IAR program.
Mitől lehet ez? Próbálta más típusokkal is, de mindig ez történik, még az f5529LP-vel is.
(#) szitko hozzászólása Nov 19, 2013 /
 
Sziasztok.
Még egy IAR kérdés.
Hosszas szenvedés után sikerült egy led villogtató progit betöltenem az f5529LP-be Energiával. Állandóan a programozóval volt baja, és miután rányomtam az "update programmer"-re hibával kiszállt. Kb. a tizedik update után egyszer csak jó lett, és sikerült betölteni a programom, ami működik is.
Az IAR-al, viszont nem sikerül életre keltenem az f5529lp-t. Kiválasztom a mikrovezérlőt, és onnantól megállt a tudományom. Milyen programozót kell telepítenem? Van az IAR+f5529LP-hez valahol leírás, mert én nem találtam túl sok mindent, csak annyit, hogy 5.5-nél nagyobb verzió kell, ami teljesül is.
(#) DecebaL válasza szitko hozzászólására (») Nov 20, 2013 /
 
Pechemre első próbálkozáskor rányomtam az update és közben az asszony egyik háztartási gépe lecsapta az automatát.
A windows nem ismeri fel csak com portként, most rendeltem másikat.
(#) szitko válasza DecebaL hozzászólására (») Nov 20, 2013 /
 
Ne add fel!
Kicsit keresgettem, olvasgattam, és másnál is jelentkeztek ezek a problémák! Tehát nem egyedi eset.
Külföldi honlapon olvasva, többen azt ajánlották/írták, hogy 3x 4x-er meg kell ismételni az "update..." folyamatot.
Letöltöttem a CCS v5.5.x.sok-sok 0.valamennyit. 90-en napos próba verzióval, egy egszerű led villogtató programot, ahol a P1.0 és a P4.7-es led, sikerült betöltenem, de a debug futtatásakor kiírta, hogy nem ismeri az MSP430f5529-et. Attól függetlenül működik a program és a debug.
Most az IAR-al is áttörést értem el. Nekem az IAR... for MSP430 v5.50.2-es verzió van fenn, és olvasataim szerint ez is tudja kezelni az f5529lp-t, de sajnos nem így van. Felraktam az 5.516-os verziót, ami szintén nem kezeli az új LP-t. Az 5.60.3-as (legújabb) verzióval, viszont már szépen, hibamentesen működik minden. Összegezve a dolgokat, most van a gépemen kb 5 verziójú IAR, és 4 különböző CCS. Mindez egy "új" LaunchPad miatt.
De azért szép ez a programozásos játék...
(#) kisedison hozzászólása Nov 20, 2013 /
 
Üdv Mindenkinek!
Újabb gödörbe estem. Tehát, beolvasok ADC-vel 4 potméter állást, majd ezeket elküldöm soros porton mondjuk ilyen formában: "x512 y512 a512 b512" vagy csak a 4 értéket egymás után "128 256 512 768". Hogyan lehetne megoldani a vevő oldalon hogy felbontsa az adatot külön a 4 értékre, amit utána szépen külön külön fel lehessen használni? Rádiós átvitel miatt szükséges ez.

u.i: Energiát használok, tanulom.
(#) szitko válasza kisedison hozzászólására (») Nov 21, 2013 /
 
A vevő oldalon össze kell rakni a kapott értékeket.
Tehát, az UART küldés bájtonként történik, nem ismerem az Energia soros függvényét!, ami annyit jelent, hogy a 4 érték egyenlő 8 bájttal. Gondolom ezt az átalakítást, word -> two byte, az Energia elintézi helyetted, valahogy így:
  1. char L_byte = ADCvalue;
  2. char H_byte = ADCvalue >> 8;
  3. Serial.write(H_byte);
  4. Serial.write(L_byte);

Fogadásnál viszont vissza kell alakítani "word"-re, hogy az eredeti értéket kapd meg, valahogy így:
  1. unsigned int ADCvalu = H_byte << 8 | L_byte;

Nem tudom, hogy mivel fogadod az értékeket, de egyszerűbb megoldás, ha rögtön egy tömbbe jön be mind a 8 bájt, és a fogadás végeztével, csak össze kell rakni az értékeket.
  1. unsigned int ADCvalue_1 = serialbuffer[0] << 8 | serialbuffer[1];
  2. ...
(#) Fizikus válasza kisedison hozzászólására (») Nov 21, 2013 /
 
En Processing-et hasznaltam. Abban a trim paranccsal szet tudod valasztani a vesszovel elvalasztott bejovo adatokat:
Processing pelda
(#) szitko válasza Fizikus hozzászólására (») Nov 21, 2013 /
 
Erről (processing) rögtön lenne is egy kérdésem.
Fogadni szeretnék X mennyiségű (nem ismert) bájtot mait egy bufferben tárolok feldolgozásig. Jelenleg így néz ki:
  1. void serialEvent(Serial port) {
  2.   int inByte = port.read();
  3.   serialBuffer[serialCount] = inByte;
  4.   serialCount++;
  5. }

A küldés folyamatos, 115200 baud.
A kérdésem az lenne, hogy jelen esetben a két bájt érkezése között mit csinál a processing? Fut tovább az eredeti program?
(#) Fizikus válasza szitko hozzászólására (») Nov 21, 2013 /
 
Gondolom fut tovabb. En ugy csinaltam, hogy a Processing kuld egy utasitast az AVR-nek, amire az elvegezte a merest es utana visszakuldte az eredmenyeket. Igy szinkronizaltam a merest es kijelzest, elkerulve azt hogy az adatok csak jonnek folyamatosan, a Processing-et meg leterheli a bajovo adatok feldolgozasa.
(#) szitko válasza Fizikus hozzászólására (») Nov 21, 2013 /
 
Az én esetem is hasonló. Processing küldi a jelet, MSP fogadja és elkezdi küldeni az adatokat. De az MSP által folyamatosan küldött adat X mennyiségű, de nem nagyobb ~38400 bájtnál. Most csináltam egy várakozó ciklust, de nem tudom mire kéne várjon, ha ismeretlen a fogadott bájtok mennyisége. Próbáltam azt is, hogy a folyamatos küldés után, elküldök egy string-et pl. "ok\r\n", de ez sem vált be.

Mivel már hajnalodik nem vagy teljesen magamnál...
Az előző kérdésemet félreértetted, vagy szokásomhoz híven én fogalmaztam rosszul. Én úgy értem, hogy két bájt érkezése között mit csinál a processing. Tehát amikor kiszáll a serialEvent(Serial port)... függvényből.
A hozzászólás módosítva: Nov 21, 2013
(#) icserny válasza Fizikus hozzászólására (») Nov 21, 2013 /
 
Idézet:
„En Processing-et hasznaltam. Abban a trim paranccsal szet tudod valasztani a vesszovel elvalasztott bejovo adatokat”
Csak pontosítok: a split() függvénnyel lehet szétszedni, előtte pedig célszerű a trim() függvénnyel kitakarítani a sor elején és végén levő fölösleges szóköz és sorvége karaktereket.
A hozzászólás módosítva: Nov 21, 2013
(#) icserny válasza szitko hozzászólására (») Nov 21, 2013 /
 
Idézet:
„Én úgy értem, hogy két bájt érkezése között mit csinál a processing. Tehát amikor kiszáll a serialEvent(Serial port)... függvényből.”
Gondolom, visszatér a főprogramhoz, s kergeti a draw()-ban leírtakat.
(#) szitko válasza icserny hozzászólására (») Nov 21, 2013 /
 
Épp ez az amit nem szeretnék addig, amíg az összes adat be nem érkezik. Gondoltam arra is, hogy menet közben feldolgozom az adatokat, de ahhoz meg túl kevés az idő, és összekeverednek az adatok. Na mindegy...
Most, hogy sikerült felélesztenem az f5529-est, egyszerűbb lesz úgy megoldanom, hogy az adatok elsőnek a flash-ben tárolódnak, mert ebben a típusban már van elég hely, és csak később kerülnek elküldésre.
(#) icserny válasza szitko hozzászólására (») Nov 21, 2013 /
 
Nálam soronként jönnek az adatok, s nem engedem tovább, amíg egy sor be nem jött:
  1. import processing.serial.*;
  2. Serial Dev_Board;
  3.  
  4. void setup() {
  5.   Dev_Board = new Serial(this, Serial.list()[0], 9600);
  6.   ...
  7. }
  8.  
  9. void draw() {
  10.  
  11.  while (Dev_Board.available() > 0)
  12.  {
  13.    myString = Dev_Board.readStringUntil(lf);
  14.    if (myString != null) {
  15.      String[] myData = split(myString," ");
  16.      MS_Byte=float(myData[0]);  // Converts and prints float
  17.      LS_Byte=float(myData[1]);  // Converts and prints float
  18.    }
  19.     // ... adatok feldolgozása
  20. }

Tehát ha van beérkezett karakter, akkor megvárjuk a sor végéig (van idő!), majd a sort feldolgozzuk. Az "lf" az "új sor" karaktert jelenti.

Azt most ne firtassuk, hogy a bájt nevű változók hogyan lettek float típusúak, mert hosszú történet (egy kész programot módosítottam DHT11 szenzorról DHT22-re, s az utóbbi tizedeseket is szolgáltat).
A hozzászólás módosítva: Nov 21, 2013
(#) kisedison válasza szitko hozzászólására (») Nov 21, 2013 /
 
Köszönöm mindenkinek az ötleteket, segítséget. Megpróbálok alkotni valamit, aztán majd írok ha van valami fejlemény.
(#) szitko válasza icserny hozzászólására (») Nov 21, 2013 /
 
Sajnos én nem tudom megcsinálni, hogy soronként küldöm az adatokat, mert akkor a fele elvész.
Egy mobiltelefonból kiberhelt kamerát próbálok életre kelteni több-kevesebb sikerrel. A Processing a kép megjelenítésére kell, és mivel elég szűkös memória áll rendelkezésre (g2553), ezért úgy oldottam meg, hogy a kamera adatvonalán érkező adatokat rögtön küldöm a Processsing-nek UART-on. Tudom! Őrültség ilyesmit csinálni, ily kis teljesítményű MCU-val, de számomra egy jó kis játék...
(#) kissi válasza szitko hozzászólására (») Nov 21, 2013 /
 
Nem értem: ha átküldöd az adatokat a PC-nek, akkor miért nem elég a memória ?! A PC oldalon biztos van egy kis puffer ( visszatérhet a "főprogramhoz" a soros kiszolgálása közben! ), a beérkezett adatnak ott a sok memória, a feldolgozással ráérsz a végén... Mit értettem félre ?!
A hozzászólás módosítva: Nov 21, 2013
(#) szitko válasza kissi hozzászólására (») Nov 21, 2013 /
 
A mikrovezérlőben kevés a memória, nem a PC-ben.
Mivel az UART lassú, így is nagyon sok adat elvész, mert a kamera egy teljes képet, elküld egyszerre. A leggyorsabb az lenne ha a MCU-ban tudnám a képet bufferelni, ezért próbálom az f5529-es flash memóriájában ideiglenesen tárolni.

Az egészben az a poén, hogy azt sem tudom milyen kamerával dolgozom. A telefon kapcsi rajza alapján próbáltam kideríteni a típusát, de nem sikerül. Annyit sikerült kiderítenem logikai analizátorral, hogy valószínű valamilyen OV7 | 2xxx típus lehet...
(#) kissi válasza szitko hozzászólására (») Nov 21, 2013 /
 
Erre tippeltem én is !

Idézet:
„Épp ez az amit nem szeretnék addig, amíg az összes adat be nem érkezik. Gondoltam arra is, hogy menet közben feldolgozom az adatokat, de ahhoz meg túl kevés az idő, és összekeverednek az adatok.”


Hát ezt a PC erőforrásainak meg kellene oldania, ha a mikrovezérlő győzi !?

Idézet:
„Most, hogy sikerült felélesztenem az f5529-est, egyszerűbb lesz úgy megoldanom, hogy az adatok elsőnek a flash-ben tárolódnak, mert ebben a típusban már van elég hely, és csak később kerülnek elküldésre.”
Ha innen küldöd, akkor meg már tudhatod, hány adatot fogsz átküldeni!
Ez hány kép lenne? Mozgó ?
(#) szitko válasza kissi hozzászólására (») Nov 21, 2013 /
 
Idézet:
„Ez hány kép lenne? Mozgó ?”

Az első kecsegtető kísérleteimben, ahol a g2553+kamera kombináció volt/van, ott ~39 másodperc egy kép, ami 320x240-es. Tehát 40 másodpercenként lehet egy képet lekérni. Ilyen kis teljesítményű MCU-val esély sincs mozgó képre. Ahhoz már inkább előveszem a Stellaris LP-t, vagy a GR-Sakurát (RX63N).
(#) kissi válasza szitko hozzászólására (») Nov 21, 2013 /
 
Akkor hajrá !
(#) Lucifer válasza szitko hozzászólására (») Nov 21, 2013 /
 
Idézet:
„ezért próbálom az f5529-es flash memóriájában ideiglenesen tárolni.”

Ezt csak én érzem úgy, hogy nem lesz hosszú életű?
(#) szitko válasza Lucifer hozzászólására (») Nov 21, 2013 /
 
Az attól függ mire gondolsz. Ha a flash újraírhatóságára, ami az adatlap szerint 10^5, akkor igen.
De nézd inkább a jó oldalát. Az ember tanul, szórakozik, és élvezi a hobbiját!
Következő: »»   115 / 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