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   39 / 139
(#) colosseum hozzászólása Feb 20, 2012 /
 
Jah és , hogy meglepjem azokat akik rendelnek.

Már nem 14 hanem 20 lábú vezérlőket küldenek. nekem egy 2553-t és egy 2452-t küldtek.
(#) putr4 válasza colosseum hozzászólására (») Feb 20, 2012 / 1
 
Nane, akkor nem lesz utánpótlás, ha elfüstölöm a 14 lábúakat
Vajon, ha a startkit mellé még rendelek egy-két 2231-et akkor megmarad-e az ingyenes szállítás...
(#) colosseum válasza putr4 hozzászólására (») Feb 20, 2012 /
 
Én sample be kértem 1-2t igaz mind 2553 csak van amelyik akkor lett mint egy gombos tű XD
(#) putr4 válasza colosseum hozzászólására (») Feb 20, 2012 /
 
Lehet amúgy, hogy valaki bekavart a rendszerbe. Itt sokan írnak arról, hogy nem az jött amire számítottak.
(#) colosseum hozzászólása Feb 20, 2012 /
 
Ami nekem jött az 1.3 verzio, lehet ha nem a Ti -tol rendelet meg akkor nem azt fogod kapni, jah igen előre forrasztott pinek is voltak a csomagban:/ csak tüskék nem female
(#) putr4 válasza colosseum hozzászólására (») Feb 20, 2012 /
 
Az fura, mert nekem jó fél éve megvan és 1.4-es rev és 2231 illetve 2211-el jött. Lehet rájöttek, hogy elkéne tüntetni a polcokról a régebbi verziókat cserébe pedig adnak 2 komolyabb ic-t.
(#) colosseum válasza putr4 hozzászólására (») Feb 20, 2012 /
 
Hehe már vak vagyok 2t rendeltem 1,5 mind a 2.
(#) kisedison hozzászólása Feb 21, 2012 /
 
Hello

Kaptam egy MSP430F2002 tip. kontrollert. Érdemes elkezdeni ezen a programozás tanulását? A C-hez és más egyébhez teljesen sík vagyok (mostmég!) Nézegettem még a PIC-eket de (lehet én vagyok hülye) bonyolultabbnak tűnik. Először vanami egyszerűt akarok összedobni pl. egy led bekapcsolása gombnyomásra, ha mégegyszer megnyomom akkor meg ki. Mivel lehet ezt programozni (LauchPad-en kívül)? Látta valami olyat hogy 4-wire JTAG vagy valami ilyesmi. A topicot végigolvastam de nekem magas (MÉG!).Valami olyan programozó amit csak összedrótozok soros v. LPT portra. Az IAR Embedded workbench-et már letöltöttem.

A válaszokat előre is köszönöm.
(#) kaco válasza icserny hozzászólására (») Feb 21, 2012 /
 
Üdv!

Egy kis segítség kellene ebben a hozzászólásban lévő kód megértésében.
A 11. sorban a /+ '0'/ nem teljesen világos. Arra gondolok, hogy ha a szám osztható tízzel, akkor jön be a nulla a képbe, de miért ' ' jelek között?
(#) icserny válasza kaco hozzászólására (») Feb 21, 2012 /
 
Idézet:
„A 11. sorban a /+ '0'/ nem teljesen világos.”
Pedig az a legvilágosabb az egészben! Ha a kiírandó számjegy nulla, akkor ezt a karaktert íratjuk ki. Ha a számjegy értéke nem nulla, hanem például három, akkor a '0' katakter kódja helyett annak hárommal megnövelt értékét, vagyis a '3' karakter kódját küldjük ki.

Azért tesszük aposztrófok közé, mert a C nyelv szintaktikai szabályai szerint így kell jelölni a karakterkonstansokat. Tehát '0' a nulla számjegyet jelenti (ha jól emlékszem az ASCII kódtáblára, ennek tízes számrendszerben 48 a kódja).
(#) icserny válasza kisedison hozzászólására (») Feb 21, 2012 /
 
Az adatlap szerint Launchpaddal (Spy-Bi-Wire) programozható. Van benne ADC, meg egy timer. Az 1 kbájtos programtár és a 128 bájtos RAM azt jelenti, hogy csak minimalista programokra szabad gondolni.
(#) röntgen hozzászólása Feb 21, 2012 /
 
Sziasztok,
Most is él még a kedvező szállítási akció a LaunchPad-ra.
Valaki esetleg a tapasztalatát megoszthatná, ha nem rég rendelt belőle. Köszönöm.
(#) szitko válasza röntgen hozzászólására (») Feb 21, 2012 /
 
Szerintem igen, de próbáld meg s ha hozzáadja a szállítást, vond vissza.
(#) röntgen válasza szitko hozzászólására (») Feb 21, 2012 /
 
Teljesen igazad van, azóta már én is rájöttem, de valóban szállítási díjat nem kérnek. Ha jól értelmezem ezt a Spy-Bi-Wire módot, akkor a Launchpad-al akár más, ezt támogató kontrollert sikeresen programozhatom.
Vagy, rosszul gondolom?
(#) szitko válasza röntgen hozzászólására (») Feb 21, 2012 /
 
Nem jól gondolod. Ha visszaolvasol icseny már leírta párszor, hogy azokat a modelleket lehet vele programozni, amelyik tudja a Spy-Bi-Wire módot. Azthiszem.
(#) kisedison válasza icserny hozzászólására (») Feb 21, 2012 /
 
De tanulni azért lehet rajta? Lauchpadon kivül nem lehet mással?
(#) szitko válasza röntgen hozzászólására (») Feb 21, 2012 /
 
Bocsi egy ',' lemaradt, az előbb, és így más értelme van a mondanivalómnak.
Tehát:
Idézet:
„Vagy, rosszul gondolom?”
Helyesen: Nem, jól gondolod.
Bocsi mégegyszer!
(#) icserny válasza kisedison hozzászólására (») Feb 21, 2012 /
 
Tanulni természetesen lehet rajta, de mivel akarod programozni? Ha Launchpadot veszel erre a célra, akkor már nem nagyon lesz erre a mikrovezérlőre szükséged, mert ahhoz is kapsz két mikrovezérlőt.
(#) colosseum hozzászólása Feb 21, 2012 /
 
Mindjárt keresek egy oldalt ott le van irva hogy a lanc-al F-s kontrollereket is programoznak csak kell hozzá egy kis házi barkács

Icserny ha még nem mondtam volna nagyon jó lettek a cikkek ezek hatására vettem én is padot.
A többivel semmilyen tapasztalatom nincsen még, de sztem nem döntöttem rosszul.

A második részét még nem nyálaztam át.

Icserny tudnál abban segíteni , hogy miképpen kellene beállítani azt hogy a belső hőmérő ne csak egész értéket adjon , hanem mondjuk 23,7C-t is
(#) colosseum hozzászólása Feb 21, 2012 /
 
A link :Bővebben: Link

Itt is találsz valahol:
Bővebben: Link
(#) colosseum hozzászólása Feb 21, 2012 /
 
Ha valaki memória hiányban szenvedne és van otthon neki régi sram-ja

512KBSram
(#) colosseum hozzászólása Feb 22, 2012 /
 
Ha érdekel valakit 3.5" kijelző felé érintő panel szerű cucc az szoljon nekem mert tárgyalgatok a kinaiakkal mivel nem lehet euban kapni csak a távol keleten , lehet küldenének le pár darabot persze nem igyen kb 20$.
Küldejetek privit.Bővebben: Link
(#) icserny válasza colosseum hozzászólására (») Feb 22, 2012 /
 
Idézet:
„miképpen kellene beállítani azt hogy a belső hőmérő ne csak egész értéket adjon , hanem mondjuk 23,7C-t is?”
Ehhez át kell írni a mikrovezérlőn futó programot is, meg a PC-n futó programot is (utóbbihoz telepíteni kell a Processing fejlesztői környzetet).

A gyári demó egykarakteres üzenetet küld. Ha tizedfokos kijelzést akarsz, ez csak egy szűk tartományra lesz elég. A tisztességesebb megoldás az, ha többkarakterese üzenetek közlekednek, de akkor már a Processing lelkivilágában is jobban el kell mélyedni.
(#) szitko válasza colosseum hozzászólására (») Feb 22, 2012 /
 
Nem akarlak elkeseríteni, és rontani az üzleted, de Touch-ot árul a TI.-is. 3.5" ITO Glass Capacitive Touch Sensor BoosterPack from Kentec Electronics Közvetlen a Launchpad-re szerelhető, (nem kell barkácsolni), teljes dokumentáció, stb...
(#) szitko hozzászólása Feb 22, 2012 /
 
Sziasztok.
A bluetooth kisérleteim során, tapasztaltam, hogy az alfanumerikus kijezők, amire írogatok, tartalmazzák a kiterjesztett ASCII kódtáblát. Ezt idáig nem tudtam, és a doksikban sem találtam róla semmit, amiket a kijelzők típusszáma alapján kerestem meg. A kérdésem az lenne, hogy hogyan lehet ezeket a karaktereket előcsalogatni, úgy, hogy közvetlen a "print" utasításba írom, és a CGRAM-ban nem töltöm be a magyar ékezetet.
pl.: print("kérdés"); // nem írja ki, de
print("k ASCII=130 rd ASCII=130 s"); // ???
A példában írt ASCII 130 az 'é' betü. Ha ezt meg lehetne csinálni, akkor fel tudnám használni a CGRAM-ot más egyedi karakterek kiírására, mert a kiterjesztett ASCII kód elég sok ékezetes karaktert tartalmaz.
(#) icserny válasza szitko hozzászólására (») Feb 22, 2012 /
 
Nem az LCD modul adatlapját kell nézni, hanem ez LCD modul vezérlőjánek az adatlapját. Például HD44780.

Kódtábla kiíratást pl. így lehet csinálni:
  1. lcd_write(0x01,0,1,1);          // képernyőtörlés    
  2. ch = 0x00;
  3. while(1) {
  4.   lcd_write(0x80,0,1,1);        // kurzor az első sor elejére
  5.   for(i=0; i<16; i++) {
  6.      lcd_write(ch,1,1,1);
  7.      ch++;
  8.   }
  9.   lcd_write(0xC0,0,1,1);        // kurzor a második sor elejére
  10.   for(i=0; i<16; i++) {
  11.      lcd_write(ch,1,1,1);
  12.      ch++;
  13.   }
  14.   while(SW1);
  15.   delay_ms(20);             // 20 ms várakozás      
  16.   while(!SW1);
  17.   delay_ms(240);             // 20 ms várakozás
  18. }


Bocs, hogy nem fejtek ki minden részletet, de talán követhető a gondolatmenet! A lényeg az, hogy minden gombnyomással újabb 32 karaktert íratunk ki. A ch változó célszerüen uint8_t típus legyen, akkor automatikusan "körbefordul" a kódtábla végén!
(#) szitko válasza icserny hozzászólására (») Feb 22, 2012 /
 
Ez idáig világos. Mondjuk az első 32 karakter fölösleges, mert a kódtábla alapján azok csak funkciók. (Escape, Enter, stb...) Legalábbis ha jól emlékszem! (de majd keresek egy kódtáblát). Mindenesetre átbogarászom, amit linkeltél, hátha okosabb leszek.
Igazából lehet, hogy belekeveredtem a számítógép, és a mikrovezérlő programozásába, mert azt nem értem, hogy ha, (a Te példáddal élve)
  1. ch = 0x82;       // dec. =130  ASCII = é
  2. lcd_write(ch,1,1,1);   // kiírja az é betüt.
így kiírja az 'é' betüt, akkor a bill.-ről beírt 'é'-t
  1. lcd_puts("ééé");    // miért nem?

miért nem, hisz megegyezik az ASCII kódjuk, vagy mégsem?
(#) szitko válasza szitko hozzászólására (») Feb 22, 2012 /
 
Belenéztem az adatlapba, és kiírattam a karaktereket 0-255-ig, és így már minden világos.
Köszönöm.
(#) colosseum válasza szitko hozzászólására (») Feb 22, 2012 /
 
Pont ezt linkeltem be, de ha jobban megnézed csak element14-től lehet rendelni, viszont csak a szingapuri központból ahonnan csak Kina, Taiwan , etc helyekre lehet rendelni.
Én is TI-s Touch Pad KIt-re gondolok, nem másra.Ők a gyártók velük beszélek közvetlenül.

Ezért írtam ha valaki szeretne ilyet akkor szóljon, mert rajta vagyok az ügyön.

Más:
Icserny köszönöm a válaszod, lehet nem jól írtam le h mit akarok Van egy LCD kijelzőm amire kiíratom a hőmérsékletet , de csak egész számként megy, ezt szeretném mondjuk 2 tizedesig vagy egyig növelni.
Isten ments az msp430->PC kommunikációtol.
Forrás:



  1. #include "io430.h"
  2.     #include "stdint.h"
  3.     #include "intrinsics.h"
  4.      
  5.      
  6.     /* LCD port és vezérlo" bitek megadása */
  7.     #define LCD_PORT     P1OUT
  8.     #define LCD_PORT_DIR P1DIR
  9.     #define LCD_MASK     BIT7+BIT6+BIT5+BIT4
  10.     #define LCD_RS       P2OUT_bit.P6
  11.     #define LCD_RS_DIR   P2DIR_bit.P6
  12.     #define LCD_E         P2OUT_bit.P7
  13.     #define LCD_E_DIR    P2DIR_bit.P7
  14.      
  15.      
  16.     /**-----------------------------------------------
  17.     * Inline függvény, amely egy regiszter valamelyik
  18.     * bitcsoportját atomi mu"velettel módosítja
  19.     *-----------------------------------------------
  20.     * param reg a módosítandó regiszter neve
  21.     * param val a beírandó érték (helyiérték-helyesen!)
  22.     * param mask a módosítandó bitcsoportot kijelölo" maszk
  23.     */
  24.     #define ChangeBits(reg,val,mask) reg^=((reg^val)&mask)
  25.      
  26.     /**----------------------------------------------
  27.     *   Késlelteto" eljárás (1 - 65535 ms)
  28.     *-----------------------------------------------
  29.     * param delay a késleltetés ms egységben megadva
  30.     */
  31.     void delay_ms(uint16_t delay) {
  32.              uint16_t i;
  33.              for(i=0; i<delay; i++) {
  34.                __delay_cycles(1000);
  35.              }
  36.     }
  37.      
  38.     /**----------------------------------------------
  39.     *   LCD Enable bemenet pulzálása
  40.     *-----------------------------------------------
  41.     */
  42.     void lcd_toggle_E() {
  43.              LCD_E = 1;
  44.                __delay_cycles(500);
  45.              LCD_E = 0;
  46.                __delay_cycles(500);
  47.     }
  48.      
  49.     /**----------------------------------------------
  50.             *   Egy bájt kiküldése az LCD vezérlo"jének
  51.             *-----------------------------------------------
  52.             * param val a kiírandó érték
  53.             * param cmd regiszterválasztó bit (0: parancs, 1: adat)
  54.             */
  55.     void lcd_write(uint8_t val, uint8_t cmd) {
  56.              LCD_RS = cmd;
  57.              ChangeBits(LCD_PORT,(val&0xF0),LCD_MASK);
  58.              lcd_toggle_E();
  59.              ChangeBits(LCD_PORT,((val&0x0F)<<4),LCD_MASK);
  60.              lcd_toggle_E();
  61.              __delay_cycles(1000);
  62.     }
  63.      
  64.     /*-----------------------------------------------
  65.     *   LCD kijelzo" inicializálása
  66.     *-----------------------------------------------
  67.     */
  68.     void lcd_init (void){
  69.     //-- Az LCD port inicializálása
  70.              ChangeBits(LCD_PORT,0x00,LCD_MASK);
  71.              ChangeBits(LCD_PORT_DIR,LCD_MASK,LCD_MASK);
  72.              P2SEL = 0;
  73.              LCD_RS = 0;
  74.              LCD_RS_DIR = 1;
  75.              LCD_E = 0;
  76.              LCD_E_DIR = 1;
  77.              delay_ms(100);                      //40ms várakozás bekapcsolás után
  78.     //-- Az LCD vezérlo"jének inicializálása:
  79.     //-- 1. szoftveres LCD reset: 0x30 (8-bites mód) kiírása háromszor
  80.     //-- 2. 4-bites üzemmód beállítása
  81.     //-- 3. Képernyo"törlés, kurzor kikapcsolása
  82.              ChangeBits(LCD_PORT,0x30,LCD_MASK);
  83.              lcd_toggle_E ();
  84.              delay_ms(5);                        //várjunk legalább 4.1ms-ot
  85.              lcd_toggle_E ();
  86.              __delay_cycles(100);                //várjunk legalább 100us-ot
  87.              lcd_toggle_E ();
  88.              __delay_cycles(40);                 //várjunk legalább 37us-ot
  89.              ChangeBits(LCD_PORT,0x20,LCD_MASK); //0x20 = 4-bites üzemmód
  90.              lcd_toggle_E ();
  91.              delay_ms(5);                        //várjunk legalább 4.1ms-ot
  92.     //-- Innen kezdve minden bájtot két félbájtként kell kiírni! ------
  93.              lcd_write(0x28,0);                  // display mód beállítás
  94.              delay_ms(5);                        //várjunk legalább 4.1ms-ot
  95.              lcd_write(0x08,0);                  // display letiltás
  96.              lcd_write(0x01,0);                  // képernyo"törlés
  97.              lcd_write(0x0C,0);                  // display be, cursor, és villogás ki
  98.     }
  99.      
  100.     /**----------------------------------------------
  101.     *  Karakterfüzér kiírása az LCD-re
  102.     *-----------------------------------------------
  103.     * param p_str karakterfüzér mutató (nullával lezárt stringre mutat)
  104.     */
  105.     void lcd_puts(char* p_str) {
  106.              char c;
  107.              while ((c=*p_str)) {
  108.                  lcd_write(c,1);
  109.                  p_str++;
  110.              }
  111.     }
  112.      
  113.     void outdec(long data, unsigned int ndigits) {
  114.     static char sign, s[12];
  115.     unsigned int i;
  116.             i=0; sign='+';
  117.             if(data<0) { sign='-'; data = -data;}
  118.             do {
  119.                     s[i]=data%10 + '0';
  120.                     data=data/10;
  121.                     i++;
  122.                     if(i==ndigits) {s[i]='.'; i++;}
  123.             } while(data>0);
  124.             lcd_write(sign,1);
  125.             do{
  126.                     lcd_write(s[--i],1);
  127.             } while(i);
  128.     }
  129.  
  130. long temp;
  131. long IntDegC;
  132.     int main(void) {
  133.              WDTCTL = WDTPW + WDTHOLD;           //watchdog letiltása
  134.  
  135.              ADC10CTL1 = INCH_10 + ADC10DIV_3;         // Temp Sensor ADC10CLK/4
  136.              ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE;
  137.              __enable_interrupt();                     // Enable interrupts.
  138.              TACCR0 = 30;                              // Delay to allow Ref to settle
  139.              TACCTL0 |= CCIE;                          // Compare-mode interrupt.
  140.              TACTL = TASSEL_2 | MC_1;                  // TACLK = SMCLK, Up mode.
  141.              LPM0;                                     // Wait for delay.
  142.              TACCTL0 &= ~CCIE;                         // Disable timer Interrupt
  143.              __disable_interrupt();
  144.                                          
  145.              P1DIR |= BIT0;
  146.              P2DIR |= BIT5;
  147.              P2OUT_bit.P5 = 1;               //Mivel az Lcd kijelzőn van egy pnp így magasra állítom
  148.              lcd_init();
  149.              lcd_puts("  En szobam  ");
  150.              lcd_write(0xC0,0);                  //A második sor elejére lép
  151.              lcd_puts("Temp : ");
  152.              lcd_puts("+1  ");
  153.              lcd_write(0xDF,1);
  154.              lcd_puts("C");
  155.              while(1){
  156.                 ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start
  157.               __bis_SR_register(CPUOFF + GIE);
  158.               temp = ADC10MEM;
  159.               IntDegC = ((temp - 673) * 423) / 1024;
  160.              lcd_write(0xC7,0);
  161.              outdec(IntDegC,0);
  162.              P1OUT ^= BIT0;
  163.              delay_ms(1000);
  164.              }
  165.              
  166.     }
  167. // ADC10 interrupt service routine
  168. #pragma vector=ADC10_VECTOR
  169. __interrupt void ADC10_ISR (void)
  170. {
  171.   __bic_SR_register_on_exit(CPUOFF);        // Clear CPUOFF bit from 0(SR)
  172. }
  173.  
  174. #pragma vector=TIMER0_A0_VECTOR
  175. __interrupt void ta0_isr(void)
  176. {
  177.   TACTL = 0;
  178.   LPM0_EXIT;                                // Exit LPM0 on return
  179. }


Egyelőre még csak ilyen ctrl+c/v de már írom a header fájlt az LCD-mhez minden féle opcióval.
(#) szitko válasza colosseum hozzászólására (») Feb 22, 2012 /
 
Bocsi azt nem figyeltem amit linkeltél, mert valami vacakol a gépemben, és csak egy üres honlapot hoz be a linker kattintva.
Következő: »»   39 / 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