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   72 / 139
(#) szitko válasza icserny hozzászólására (») Szept 7, 2012 /
 
Idézet:
„for ciklus belsejében kellene meghívi a SetAddress() függvényt.”

Nem, a "setAddress" függvény, ha jól értem a programot, csak a kezdő és végcímet adja meg, magyarul, hogy hova rakja a betűt és mennyi pontból álljon. A "writeData(colorHighByte);..." definíció + függvény írja ki a karaktert, vonalat, kört, stb, vagy inkább a pontot.
A definíció meg így néz ki:
  1. #define writeData(data) write(data,  1);
  2.  
  3. A write függvény: Ami csak az SPI vonalra írja ki az adatot.
  4.  
  5. void write(char data, char registerSelect){
  6.      registerSelect ? (SET_DATA) : (SET_COMMAND);
  7.      SELECT;
  8.      UCB0TXBUF = data;
  9.      while (!(IFG2 & UCB0TXIFG));
  10.      DESELECT;
  11. }


Ez a hobbi routert, tetszik nekem is, de inkább az egyik fórumtársunktól vásároltam pár XBEE pro2-öt, azzal szeretnék majd játszani, ha egyszer befejezem azt a sok projektet, ami itt hever az asztalon. /lehet, hogy soha nem jutok el addig/
Nemsokára /remélem/ kapok pár db jdt1.8"-os kijelzőt, egyet szívesen adok, ha a postás egészben hajlandó elvinni, és nem jár úgy, mint DecebaL fórumtársunké.
A hozzászólás módosítva: Szept 7, 2012
(#) szitko válasza szitko hozzászólására (») Szept 7, 2012 /
 
Siker!
Köszönöm a segítséget, rávezetést mindkettőtöknek.
Valóban címzési hiba volt, mert a záró szélességből (xEnd) és a záró hosszúságból (yEnd) is ki kell vonni egyet. Még a "clearScreen" függvény is segített plusz az adatlap.
Így azért már szebb a kép.
(#) putr4 hozzászólása Szept 7, 2012 /
 
Sziasztok!

Érdeklődnék a Stellarissal kapcsolatban, hogy a jelenlegi ár az csak előrendelésre vonatkozik vagy ez lesz a rendes ára is. Jelenleg inkább várnék újabb kiadásra mert elég sok hiányosságról lehet olvasni.
(#) gyengus válasza putr4 hozzászólására (») Szept 7, 2012 /
 
Szia!

A jelenlegi ár akciós előrendelési ár.
Valami promó képen azt olvastam, hogy a végleges ára is 10$ alatt lesz, pontos összeget nem tudok.
(#) Szárnyas válasza szitko hozzászólására (») Szept 7, 2012 /
 
Érdekesen nézett a hibásan megjelenített karakterekkel is, látva a képeket olyan C64 érzés kerített hatalmába - http://intros.c64.org/intros/t/triad-01.png
(#) szitko válasza Szárnyas hozzászólására (») Szept 7, 2012 /
 
Igen, de sajna ez hiba volt benne. Ahogy Icserny írta:
Idézet:
„Nem lehet, hogy most minden pontot ugyanarra a címre küld ki?”

De igen. Ugyanarra küldött ki egy párat. Direkt ilyenre biztos, hogy nem tudnám megcsinálni.
(#) putr4 hozzászólása Szept 8, 2012 /
 
Üdv!

USI-vel próbálok összehozni egy egyszerű spi-s kommunikációt, de sehogy se tudom összehozni a slave-nél a megszakítást.
A family user's guide-ban található egy olyan rész ami leírja, hogy ha beállítom az usi-nél a port funkciókat azzal a port megszakítás lehetősége még megmarad. Hát ez csak a szöveg gondolja így, mert erre példát sehol nem találtam még. Az lett volna a lényeg, hogy az adat küldésekor maga az órajel generált volna megszakítást a slave-nél p1.5-n (sima port interrupt). Így a megszakításban vidáman ki tudnám olvasni a shift regisztert. Persze ha P1IN-t vizsgálom működik, csak hát ez meg nem ér így semmit, mert akkor a cpu-t lefoglalom az állandó bemenet vizsgálgatással.
Ez az egész meg azért lenne jó mert egyirányú a kommunikáció és 2 vezeték elég lenne.

Itt a slave:
  1. int main(void) {
  2.   WDTCTL = WDTPW + WDTHOLD;
  3.   P1DIR=BIT0;
  4.   P1OUT&=~BIT0;
  5.   USICTL0=USIPE7+USIPE5;
  6.   USICTL0&=~USISWRST;
  7.   P1IFG&=~BIT5;          
  8.   P1IE|= BIT5;
  9.   __enable_interrupt();
  10.  while(1){}
  11. }
  12.  
  13.  
  14. #pragma vector=PORT1_VECTOR
  15. __interrupt void Port_1(void) {
  16.   P1OUT ^= BIT0;            
  17.   P1IFG &= ~BIT5;            
  18. }


Ha más portlábakra állítom a megszakítást működik csak azon nem ahol usi van engedélyezve.
Ha nem állítom be usi-t szintén működik a megszakítás.
Ha a while ciklusban figyelem az órajelet: if(P1IN&BIT5){} akkor működik a dolog csak nem megszakítással.
A fugban ezt találtam:
"To activate USI port functionality the corresponding USIPEx bits in the USI control register must be set.
This will select the USI function for the pin and maintains the PxIN and PxIFG functions for the pin as well.
With this feature, the port input levels can be read via the PxIN register by software and the incoming data
stream can generate port interrupts on data transitions. This is useful, for example, to generate a port
interrupt on a START edge."
A hozzászólás módosítva: Szept 8, 2012
(#) icserny válasza putr4 hozzászólására (») Szept 8, 2012 /
 
Majdnem volt egy javaslatom, csak közben rájöttem, hogy az I2C, nem SPI... Na, jó, van másik!

A mikrovezérlő gyári példaprogramjai közül az mspgxxxx_usi_03.c-t nézd meg!
A hozzászólás módosítva: Szept 8, 2012
(#) putr4 válasza icserny hozzászólására (») Szept 8, 2012 /
 
Igen értem, úgy látszik nincs más megoldás. Az nem fér a fejembe, hogy itt van ez a mondat "This is useful, for example, to generate a port interrupt on a START edge" amit akkor nem értek. Teljesen logikusnak tűnt, hogy az órajel első élére a slave interruptal reagál. Még azt is leírja hogy "maintains the PxIN and PxIFG functions for the pin as well" tehát port interrupt és nem usi interrupt. A példában viszont az usi saját interruptja szerepel.
A hozzászólás módosítva: Szept 8, 2012
(#) icserny válasza putr4 hozzászólására (») Szept 8, 2012 /
 
Idézet:
„A példában viszont az usi saját interruptja szerepel.”
Az miért nem jó neked?
(#) putr4 válasza icserny hozzászólására (») Szept 8, 2012 /
 
Mert ez könynebb én pedig naív vagyok és ragaszkodom a saját ötleteimhez, különösen ha nem állok távol az igazságtól.

Mellesleg köszönöm a segítséget, így már működik.
(#) balux33 hozzászólása Szept 8, 2012 /
 
Sziasztok!
Kaptam egy nokia 3410 lcd-jét és sehogy sem tudom feléleszteni mikrokontrollerrel, viszont a telefonba visszarakva tökéletesen működik. De a mikrokontroller egy másik 3410-es lcd-vel tökéletesen működik, mint eddig mindig.
Ezen az lcd-n a vezérlő ic is nagyobb kicsit meg körülötte kivan öntve valami fehér anyaggal, a többi nem ilyen!
A kijelző tuti hogy jó, mert 2 telefonban is próbáltam.
Valami ötletet, hogy mit kéne módosítanom a programomban, hogy működjön ?
(#) szitko válasza balux33 hozzászólására (») Szept 8, 2012 /
 
Tegyél fel egy képet az lcd hátuljáról. Egyébként próbáld meg, hogy a reset lábat 47k-val fixen felhúzod.
(#) DecebaL válasza balux33 hozzászólására (») Szept 8, 2012 /
 
Szerintem a többi 3310 lcd.
(#) szitko válasza szitko hozzászólására (») Szept 9, 2012 /
 
Elnézést, javítok. Rosszul írtam/fejeztem ki magam.
Az LCD reset lábra gondoltam, hogy fixen húzd fel egy 47k-s ellenállással.
(#) balux33 válasza szitko hozzászólására (») Szept 9, 2012 /
 
Már próbáltam a reset lábat felhúzni, nem segített.
Tudok vele kommunikálni mert a Vlcd feszültséget tudom állítgatni programból, ott meg is van a 6-7V. Olyan mintha működne rendesen csak a kijelzés van letiltva.
Biztos hogy 3410-es kijelzője mert rákötve egy 3310-es alaplapjára az alsó két sorban nincs kép, de ennek így is kell lennie.
Csatolok róla egy képet.

DSC00028.jpg
    
(#) szitko válasza balux33 hozzászólására (») Szept 9, 2012 /
 
Mostanában elég sok 3410-es kijelzővel volt dolgom, de azt kell mondjam, ahány darab annyi féle. 80%-ban a reset-el volt baj, azért írtam a felhúzást. A maradék 20% egy része szoftveres hiba, másik része érintkezési hiba, és egyéb elkötés volt. Ha vissza keresel, felraktam a solar hőmérő programot, nekem az abban lévő driverel ment az összes lcd. Igaz abba beleturkáltam, mert eleinte azzal sem ment mindegyik kijelző. Próbáld ki, hátha azzal megy.
(#) balux33 válasza szitko hozzászólására (») Szept 9, 2012 /
 
Hát nekem is volt egy párral dolgom, de eddig még mind működött ezzel a driverel amit használok.
Találtam egy orosz oldalt ahol egy után gyártott kijelzőről van szó és annak a hibáiról, ha jól értelmeztem. http://we.easyelectronics.ru/lcd_gfx/biblioteka-dlya-raboty-s-displ...0.html
Itt ahogy a képeket néztem az enyém teljesen ilyen, de az ott felrakott program alapján sem tudtam initializálni.
De most hagyom ezt a kijelzőt mert nincs most időm vele kínlódni, használok helyette egy 3310-est.
(#) szitko válasza balux33 hozzászólására (») Szept 9, 2012 /
 
Még egy dolog eszembe jutott. A VOUT-ra írt kondi, nálam 100nf. Ha mikro feletti kondit raktam oda, (ahogy sok helyen írják) akkor nálam sem ment mindegyik lcd.
(#) szitko hozzászólása Szept 10, 2012 / 1
 
Sziasztok.
Összedobtam egy hardveres SPI-t használó nokia 5110, vagy akárhány, lcd vezérlést. Azt hiszem jól működik, legalábbis megjelennek a karakterek.
Azért még lehetett volna rajta alakítani, szépíteni kiegészíteni, de ehhez már lusta voltam. Három fajta lcd-vel (ebay-es ~$4-os, 5110-es, 3410-es) próbáltam, mind működött.
Használjátok egészséggel, remélem nálatok is működni fog!

Ja! MSP430G2553-ra van írva.
A hozzászólás módosítva: Szept 10, 2012
(#) icserny hozzászólása Szept 10, 2012 /
 
Angol nyelvű ingyen könyvet küld a Mouser (Texas Instruments: FRAM MCUs for Dummies) azoknak, akik feliratkoznak a honlapjukon. Amíg a készlet tart!

Az MSP-EXP430FR5739 Experimenter Board tulajdonosok bizonyára haszonnal forgathatják majd.
(#) Kovabe válasza icserny hozzászólására (») Szept 10, 2012 /
 
Szia
Egy teljesen kezdönek (angolnyelv hiányában) mennyire ajánlod az MSP430-at??
Flowcode-al küzdök kisebb nagyobb sikerrel de szeretnék továbblépni a programozásban mert "nagy" terveim vannak PWM szabályzó rc vezérléshez, füttésvezérlés stb. Van esetleg valami grafikus program ehez is mint a flowcode??
Tudom nem ide tartozik de itt láttam a linket és nagyon szimpatikus a cucc és felhasználobarátabbnak tünik mint az AVR
Üdv Kovács
u.i. hol tudom megrendelni ha ugy döntök hogy belevágok??
(#) icserny válasza Kovabe hozzászólására (») Szept 11, 2012 /
 
Idézet:
„Egy teljesen kezdőnek (angolnyelv hiányában) mennyire ajánlod az MSP430-at?”
Maximálisan. Néhány hónap alatt fel lehet szedni annyi angol tudást, ami a leírások megértéséhez elég. Közben el lehet kezdeni a magyar leírás tanulmányozását.
Idézet:
„Van esetleg valami grafikus program ehez is mint a flowcode?”
Olyan szerencsére nincs. Van egy periféria-beállító program, de azt sem javaslom. Meg kell tanulni, hogy nincs királyi út! Minden, ami könnyű sikerrel kecsegtet, csak elfedi a lényeget, s a végén többel kötöd be...
Idézet:
„hol tudom megrendelni ha ugy döntök hogy belevágok?”
Legolcsóbban a gyártótól (estore.ti.com/) ahogy ezt az első cikk első oldalán leírtam.
A hozzászólás módosítva: Szept 11, 2012
(#) gyengus válasza icserny hozzászólására (») Szept 11, 2012 /
 
Én már régebben feliratkoztam, nem emlékszem pontosan, mikor.
Semmilyen visszajelzést nem kaptam e-mailben és a könyv se ért ide.
Neked küldték?
(#) icserny válasza gyengus hozzászólására (») Szept 11, 2012 /
 
Én még csak most iratkoztam fel. Ha nem küldik, akkor vagy kifogyott a könyv, vagy bennünket nem tartanak érdemesnek rá (pl. drágának találják a postát...).
(#) szitko válasza icserny hozzászólására (») Szept 11, 2012 /
 
Idézet:
„pl. drágának találják a postát...”

Én már régebben kérdeztem tőlük, hogy egy pár eurós (~20-30) rendelésnél miért kell kiadjak plusz 40 eurót? Miért nem küldik el postán, az olcsóbb. Nem kell nekem, hogy futárszolgálat hozza. Pláne nem 11-12 ezer forintért. Erre azt írták, hogy a Fed... és a U... futárokkal állnak szerződébe, és csak velük küldik el. Na ekkor töröltem a rendelést.
Ezért szerintem egy pár ezer forintos könyvet, nem biztos, hogy megéri nekik elküldeni a kis hazánkba. De remélem nincs igazam, és megkapjuk a könyvet!
(#) szitko hozzászólása Szept 11, 2012 /
 
Miért nem hívja be az IAR, vagy, hogy írjam be neki, hogy behívjon egy másik könyvtárból, egy header fájlt.
Pl:
  1. #include "d:\Msp430_and_all_Msp\Projektek\Modulok\delay_ms\delay_ms.h"

Erre hibát ír.
Vagy mindig másolgassam a projekt könyvtárába a fájlokat?
(#) icserny válasza szitko hozzászólására (») Szept 11, 2012 /
 
Idézet:
„Erre hibát ír.”
Mi a hibajelzés szövege?
Idézet:
„Vagy mindig másolgassam a projekt könyvtárába a fájlokat?”
Szó nincs róla! Én is fordítottam már több könyvtárból összelinkelt projektet. Próbált meg áttenni a C:-re, hátha a D:-től zavarodik meg!
(#) szitko válasza icserny hozzászólására (») Szept 11, 2012 /
 
Köszönöm, megoldódott. Voltam olyan hü...de nagy marha, hogy csak a header fájlt csatoltam. A delay_ms.c fájlt nem csatoltam a projekthez, és ezt kereste.

Másik kérdés. A g2..3 vezérlőben az i2c "repeated start"-ot hogy kell megcsinálni? Símán egy új startparancs kiadással? A 2..2-es sorozatnál már megcsináltam, de az azt hiszem más.

pl:
  1. UCB0CTL1 |= UCTR + UCTXSTT;            // adat küldés, i2c tx, plusz start
  2.      while (!(IFG2 & UCNACKIFG));
  3.      UCB0TXBUF = 0xXY;
  4.      while (!(IFG2 & UCNACKIFG));
  5.      UCB0TXBUF = 0xXY;                    
  6.      while (!(IFG2 & UCNACKIFG));
  7.      UCB0CTL1 |= UCTXSTP;                   // I2C stop
  8.      while (UCB0CTL1 & UCTXSTP);            // Stop kész?
  9.  
  10.      UCB0CTL1 &= ~UCTR;                     // adat fogadás, i2c rx
  11.      UCB0CTL1 |= UCTXNACK + UCTXSTT;        // start plusz NACK

Egy óra ic-t szeretnék feléleszteni (rs5c372a). Az adatlap az írja az olvasásra, hogy "slave cím->adat->restart->fogadás->ACK->adat be->ACK........stop. De nem értem, hogy hogy csináljam meg a re-startot.
(#) Kovabe hozzászólása Szept 11, 2012 /
 
Sziasztok lehet hogy baromság de pl a pic féle c kod-ban átirom a lábkiosztást meg kisebb dolgokar javitok rajta akkor lehetséges hogy elfogadja az is?
Következő: »»   72 / 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