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   95 / 139
(#) szitko válasza szitko hozzászólására (») Jan 30, 2013 /
 
Rájöttem! (hogy mekkora hülyeséget kérdeztem)
(#) röntgen hozzászólása Jan 30, 2013 /
 
Szerintetek, melyik ingyenes C környezet a legjobban használható MSP-re?
A Texas CCS-ét milyennek tartjátok? Ha jól tudom 16K a limit, de egy darabig biztos megfelelő.
(#) moderboy válasza röntgen hozzászólására (») Jan 30, 2013 /
 
Bár most az energiával alkotok, a CCS-t is használtam jópárszor, nekem nem volt vele problémám. Az elején kicsit bonyolultnak tűnik, de egy egyszerű bemutatót kell keresni hozzá, utána minden érthető lesz és menni fog. Szerintem kényelmes, elsőre hamarabb sikerült használni mint az IAR-t.
(#) szitko válasza röntgen hozzászólására (») Jan 30, 2013 /
 
Pontosan erre a kérdésre, szerintem nem lehet válaszolni. "Ízlések és pofonok"....
De egy mondatban, a gyártó által ajánlott fordítók, "talán" megfelelőek. (IAR, CCS)
Az én tapasztalataim:
CCS: A "nagy" gépigénye miatt nem sokat használtam/lom, de a kezelése nem túl bonyolult. Amiért nem vagyok vele kibékülve, az a driver kezelés/nem kezelés.
IAR: A régebbi verziók (>5.40.7) editora elég alapszintű, nagyobb projektekben a kezdők (mint én) könnyen elvesznek benne.
Amiért én ezt használom, az az, amit a CCS-ben nem találok, és fentebb említettem, vagyis a TI driver kezelés. Pontosabban, ha az IAR-ban megnyitok pl 3 projektet, akkor mind a 3 projektnek meg tudom mondani, hogy melyik COM portot használja a debug. Így fejlesztésnél, egy kattintással átléphetek másik projektbe, és nem kell az USB-n cserélgetni a LP-kat. Sajnos a CCS-ben ezt a lehetőséget még nem találtam meg, igaz csak a 4.2-es verzióban kerestem.
Emellett még amit én ismerek (Windows-os), az ENERGIA, nincs debug, és az Eclipse, a driver miatt nem kezeli a soros porti kommunikációt.
(#) röntgen válasza szitko hozzászólására (») Jan 30, 2013 /
 
Köszi az infót, előbb arra gondoltam megpróbálom a CCS-t, az mégis csak a gyártói szoftver.
Hátha megkedvelem.
(#) DecebaL hozzászólása Jan 31, 2013 /
 
Megpróbáltam feltenni a CCS 5.3.00009 de az alábbi hibával leáll. Járt már így valaki?
(#) DecebaL hozzászólása Jan 31, 2013 /
 
A problémám a következő even paritás bittel szeretnék adatot küldeni. Mivel nem ismerem az Assembley-t ezért nem tudom, hogy a stop bit elé hogyan tudnám betenni a pritást. Esetleg valaki tudja a megoldást? A teljes program itt található
Egyszerre több eszközt vezérlek mindegyiknek más az adatsebessége amit menet közben változtatok. Az egyik eszköz (kamera) nem működik csak páros paritással.


  1. ; serial.asm
  2.             .cdecls C, LIST, "msp430g2231.h"
  3.  
  4.             .bss    in_bit_mask, 2      ; Serial in pin
  5.             .bss    out_bit_mask, 2     ; Serial out pin
  6.             .bss    bit_dur, 2          ; Bit duration in cycles
  7.             .bss    half_dur, 2         ; Half bit duration in cycles
  8.                                         ;
  9.             .text                       ;
  10.             .def    serial_setup        ; void serial_setup(unsigned out_mask, unsigned in_mask, unsigned bit_duration);
  11.             .def    putc                ; void putc(unsigned c);
  12.             .def    puts                ; void puts(char *s);
  13.             .def    getc                ; unsigned getc(void);
  14.                                         ;
  15.                                         ;
  16. serial_setup                            ; - Setup serial I/O bitmasks and bit duration (32 minimum)
  17.             mov     R12, &out_bit_mask  ; Save serial output bitmask
  18.             mov     R13, &in_bit_mask   ; Save serial input bitmask
  19.             bis.b   R12, &P1DIR         ; Setup output pin
  20.             bis.b   R12, &P1OUT         ;
  21.             bic.b   R13, &P1DIR         ; Setup input pin
  22.             or      R13, R12            ;
  23.             bic.b   R12, &P1SEL         ; Setup peripheral select
  24.             mov     R14, R12            ;
  25.             sub     #16, R14            ; Adjust count for loop overhead
  26.             rla     R14                 ; Multiply by 2 because NOP is two bytes
  27.             mov     R14, &bit_dur       ; Save bit duration
  28.             sub     #32, R12            ; Adjust count for loop overhead
  29.             mov     R12, &half_dur      ; Save half bit duration
  30.             ret                         ; Return
  31.                                         ;
  32.                                         ; - Send a single char
  33. putc                                    ; Char to tx in R12
  34.                                         ; R12, R13, R14, R15 trashed
  35.             mov     &out_bit_mask, R15  ; Serial output bitmask
  36.             mov     &bit_dur, R14       ; Bit duration
  37.             or      #0x0300, R12        ; Stop bit(s)
  38.             jmp     bit_low             ; Send start bit...
  39.                                         ;
  40. tx_bit      mov     R14, R13            ; Get bit duration
  41. tx_delay    nop                         ; 4 cycle loop
  42.             sub     #8, R13             ;
  43.             jc      tx_delay            ;
  44.             subc    R13, PC             ; 0 to 3 cycle delay
  45.             nop                         ; 3
  46.             nop                         ; 2
  47.             nop                         ; 1
  48.                                         ;
  49.             rra     R12                 ; Get bit to tx, test for zero
  50.             jc      bit_high            ; If high...
  51. bit_low     bic.b   R15, &P1OUT         ; Send zero bit
  52.             jmp     tx_bit              ; Next bit...
  53. bit_high    bis.b   R15, &P1OUT         ; Send one bit
  54.             jnz     tx_bit              ; If tx data is not zero, then there are more bits to send...
  55.                                         ;
  56.             ret                         ; Return when all bits sent        
  57.                                         ;
  58.                                         ;
  59.                                         ; - Send a NULL terminated string
  60. puts                                    ; Tx string using putc
  61.             push    R11                 ;
  62.             mov     R12, R11            ; String pointer in R12, copy to R11
  63. putsloop                                ;
  64.             mov.b   @R11+, R12          ; Get a byte, inc pointer
  65.             tst.b   R12                 ; Test if end of string
  66.             jz      putsx               ; Yes, exit...
  67.             call    #putc               ; Call putc
  68.             jmp     putsloop            ;
  69. putsx       pop     R11                 ;
  70.             ret                         ;
  71.                                         ;
  72. getc                                    ; - Get a char
  73.             mov     &bit_dur, R14       ; Bit duration
  74.             mov     &in_bit_mask, R13   ; Input bitmask
  75.             mov     #0x01FF, R12        ; 9 bits - 8 data + stop
  76.                                         ;
  77. rx_start                                ; Wait for start bit
  78.             mov.b   &P1IN, R15          ; Get serial input          
  79.             and     R13, R15            ; Mask and test bit
  80.             jc      rx_start            ; Wait for low...
  81.                                         ;
  82.             mov     &half_dur, R13      ; Wait for 1/2 bit time
  83.                                         ;
  84. rx_delay    nop                         ; Bit delay
  85.             sub     #8, R13             ;
  86.             jc      rx_delay            ;
  87.             subc    R13, PC             ; 0 to 3 cycle delay
  88.             nop                         ; 3
  89.             nop                         ; 2
  90.             nop                         ; 1
  91.                                         ;
  92.             mov.b   &P1IN, R15          ; Get serial input          
  93.             and     &in_bit_mask, R15   ;
  94.             rrc     R12                 ; Shift in a bit
  95.                                         ;
  96.             mov     R14, R13            ; Setup bit timer
  97.             jc      rx_delay            ; Next bit...
  98.                                         ;
  99.             rla     R12                 ; Move stop bit to carry
  100.             swpb    R12                 ; Move rx byte to lower byte, start bit in msb
  101.             ret                         ; Return with rx char and start bit in R12, stop bit in carry
  102.                                         ;                                      
  103.             .end
(#) szitko válasza DecebaL hozzászólására (») Feb 1, 2013 /
 
Szia!

Ha még nem sikerült!
Ha az "offline" verziót töltötted le, akkor két lehetőséged van:
1: vagy uninstallálod a már fenn lévő CCSv5-ös verziókat, és törlöd a "C:\ti\CCSv5" könyvtárat
2: vagy a telepítés elején választasz másik könyvtárat. pl "c:\CCSv5_3"..........
Továbbá, nálam további hibákat írt ki a telepítő, mindaddig, míg a netet ki nem kapcsoltam!
Miután letiltottam a netet, mindent szépen feltelepített. (Most van a gépemen 3 verziójú CCS. CCSv4.2, CCSv5.2, CCSv5.3 MSP430ware, Stellaris, lehet válogatni.)
(#) DecebaL válasza szitko hozzászólására (») Feb 1, 2013 /
 
Köszi kipróbálom, majd írok
(#) szitko válasza DecebaL hozzászólására (») Feb 1, 2013 /
 
Még egy apróság!

Ha nem távolítod el az előző verziót, akkor az új verzió, a régi beállításait "akarja (ha engeded neki)" használni!
Az 5.3, a GRACE 2.0-ás verzióját telepíti, és a XDCtools 3.24....-es verzióját!
De ezeket be tudod állítani utólag is. (mármint, hogy melyiket használja)
/Window -> Preferences -> Code Composer Studio/ RTSC..../ Vagy valami ilyesmi, a lényeg, hogy a beállításoknál megtalálod.
(#) DecebaL válasza szitko hozzászólására (») Feb 1, 2013 /
 
Köszi sikerült, a java-t is le kellett szednem a gépről mert nem akart felmenni.
(#) szitko válasza DecebaL hozzászólására (») Feb 1, 2013 /
 
Ezért lett volna egyszerűbb, másik könyvtárba telepíteni.

Most egy kicsit el "szórakoztam" vele, és egészen megtetszett, de sajna a gépigénye miatt maradok az IAR-nál.
A hozzászólás módosítva: Feb 1, 2013
(#) szikorapéter hozzászólása Feb 8, 2013 /
 
Helló.Az lenne a problémám hogy ezt a programot szeretném átteni az msp430g2211-es ic-re és hibát ír ki rá.Mivel még kissé kezdő vagyok ezért nem nagyon tudtam leellenőrizni hogy hogy lehet a hiba.(a programot mellékeltem)
  1. //******************************************************************************
  2. //  MSP430F20xx Demo - RGB LED
  3. //
  4. //  Description; RGB LED via P1.0-3, Tactile Button via P2.7
  5. //  ACLK = n/a, MCLK = SMCLK = default DCO
  6. //
  7. //                MSP430F20xx
  8. //             -----------------
  9. //         /|\|              XIN|-
  10. //          | |                 |
  11. //          --|RST          P2.7|-->Button-->Gnd
  12. //            |                 |
  13. //            |             P1.0|-->LED-G
  14. //            |             P1.1|-->LED-B
  15. //            |             P1.2|-->LED-Common
  16. //            |             P1.3|-->LED-R
  17. //
  18. //  CChung
  19. //  Giftware, no license, no warranty
  20. //  July 2010
  21. //  Built with msp430-gcc, flash via mspdebug
  22. //******************************************************************************
  23.  
  24. #include "signal.h"
  25. #include  <msp430x20x3.h>
  26.  
  27. volatile unsigned int clicks=0;
  28. volatile unsigned int ticks=0;
  29. volatile unsigned int outp=0x00;
  30.  
  31. void main(void) {
  32.     WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  33.     P1DIR |= 0x0f;                            // P1.0 output
  34.     CCTL0 = CCIE;                             // CCR0 interrupt enabled
  35.     CCR0 = 100;
  36.     TACTL = TASSEL_2 + MC_1;                  // SMCLK, upmode
  37.  
  38.     P2SEL = 0x00;
  39.     P2REN = 0xc0;
  40.  
  41.     unsigned int rgb=0x00;
  42.     unsigned int button=0;
  43.  
  44.     _BIS_SR(GIE);
  45.     while (1) {
  46.         if (P2IN&0x80) {
  47.             if (button > 5) {        // button released
  48.                 rgb++;
  49.                 outp = ((rgb&0x04)<<1) | rgb&0x03;
  50.             }//if
  51.             button = 0;
  52.         }//if
  53.         else {
  54.             button++;
  55.         }//else
  56.     }//while
  57. }
  58.  
  59. // Timer A0 interrupt service routine
  60. interrupt(TIMERA0_VECTOR) Timer_A(void) {
  61.     clicks++;
  62.     if (clicks&0x03) {
  63.         P1OUT = 0x00;
  64.     }//if
  65.     else {
  66.         unsigned int usep = outp;
  67.         //_________ trying to compsensate for individual color brightness
  68.         if ((usep&0x08)&&!(ticks%3))  usep &= ~0x08;
  69.         if ((usep&0x02)&&!(ticks%9))  usep &= ~0x02;
  70.         if ((usep&0x01)&&!(ticks%5))  usep &= ~0x01;
  71.         P1OUT = usep;
  72.         ticks++;
  73.     }//else
  74. }

Azt írták a weboldalon ahonnét a kódot letöltöttem hogy a g2211-es ic-vel is működik.Esetleg csak hibásak lennének a beállításaim?( IAR Embended Workbench-et használok)
(#) szitko válasza szikorapéter hozzászólására (») Feb 8, 2013 /
 
Szia!

Az MCU header fájla miatt kapod a hibaüzenetet.
  1. #include  <msp430x20x3.h>

Helyett ezt írd be:
  1. #include  <io430.h>
A hozzászólás módosítva: Feb 8, 2013
(#) szikorapéter válasza szitko hozzászólására (») Feb 8, 2013 /
 
Mégtöbb hibát hoz.....Nemtudok rájönni hol a hiba ha így rakom össze a programot ahogy írtad akkor egy rakás file-t nem talál...ha marad az eredeti akkor meg csak ez az egy mondat hibázik:
  1. interrupt(TIMERA0_VECTOR) Timer_A(void) {
(#) szitko válasza szikorapéter hozzászólására (») Feb 8, 2013 /
 
A projektbe beállítottad az MCU típusát?

Az IAR-ban máshogy kell kezelni a megszakítást!
  1. #pragma vector=TIMER0_A0_VECTOR
  2. __interrupt void Timer(void){
  3. ........
(#) szikorapéter válasza szitko hozzászólására (») Feb 8, 2013 /
 
Az MCU típusa be van állítva,és a debugger funkció is kész,de erre a programsorra azt írja hogy "undefined" (meghatározatlan).De már most nem hoz elő szintaxis-ütközési hibát.
(#) szikorapéter válasza szikorapéter hozzászólására (») Feb 8, 2013 /
 
Ezt a programot is az msp430G2211-es ic-re találták ki,ez át is megy de viszont a potméter forgatására nem mennek a ledek,csak az eggyik világít nagyon halványan.Kód róla:
  1. //******************************************************************************
  2. //  MSP430F20xx Demo - RGB LED
  3. //
  4. //  Description; RGB LED via P1.0-3, Tactile Button via P2.7
  5. //  ACLK = n/a, MCLK = SMCLK = default DCO
  6. //
  7. //                MSP430F20xx
  8. //             -----------------
  9. //         /|\|              XIN|-
  10. //          | |                 |
  11. //          --|RST          P2.7|-->Button-->Gnd
  12. //            |                 |
  13. //            |             P1.0|-->LED-G
  14. //            |             P1.1|-->LED-B
  15. //            |             P1.2|-->LED-Common
  16. //            |             P1.3|-->LED-R
  17. //
  18. //  CChung
  19. //  Giftware, no license, no warranty
  20. //  July 2010
  21. //  Built with msp430-gcc, flash via mspdebug
  22. //******************************************************************************
  23.  
  24. #include "signal.h"
  25. #include  <msp430x20x3.h>
  26.  
  27. volatile unsigned int clicks=0;
  28. volatile unsigned int ticks=0;
  29. volatile unsigned int outp=0x00;
  30.  
  31. void main(void) {
  32.     WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  33.     P1DIR |= 0x0f;                            // P1.0 output
  34.     CCTL0 = CCIE;                             // CCR0 interrupt enabled
  35.     CCR0 = 100;
  36.     TACTL = TASSEL_2 + MC_1;                  // SMCLK, upmode
  37.  
  38.     P2SEL = 0x00;
  39.     P2REN = 0xc0;
  40.  
  41.     unsigned int rgb=0x00;
  42.     unsigned int button=0;
  43.  
  44.     _BIS_SR(GIE);
  45.     while (1) {
  46.         if (P2IN&0x80) {
  47.             if (button > 5) {        // button released
  48.                 rgb++;
  49.                 outp = ((rgb&0x04)<<1) | rgb&0x03;
  50.             }//if
  51.             button = 0;
  52.         }//if
  53.         else {
  54.             button++;
  55.         }//else
  56.     }//while
  57. }
  58.  
  59. // Timer A0 interrupt service routine
  60. interrupt(TIMERA0_VECTOR) Timer_A(void) {
  61.     clicks++;
  62.     if (clicks&0x03) {
  63.         P1OUT = 0x00;
  64.     }//if
  65.     else {
  66.         unsigned int usep = outp;
  67.         //_________ trying to compsensate for individual color brightness
  68.         if ((usep&0x08)&&!(ticks%3))  usep &= ~0x08;
  69.         if ((usep&0x02)&&!(ticks%9))  usep &= ~0x02;
  70.         if ((usep&0x01)&&!(ticks%5))  usep &= ~0x01;
  71.         P1OUT = usep;
  72.         ticks++;
  73.     }//else
  74. }
(#) szitko válasza szikorapéter hozzászólására (») Feb 8, 2013 /
 
Nálam lefordítja!
Kipróbáltam mindenféle headre fájlal.

x.txt
    
(#) szikorapéter válasza szitko hozzászólására (») Feb 8, 2013 /
 
Nekem erre most csak összesen ennyi hibát hozott:
Idézet:
„Changed settings forces a full rebuild...
Building configuration: zikha - Debug
Updating build tree...

2 file(s) deleted.
Updating build tree...
main.c
Error[Pe079]: expected a type specifier E:\Program Files\IAR Systems\Embedded Workbench 6.0 Kickstart\430\inc\io430G2211.h 60
Error[Pe260]: explicit type is missing ("int" assumed) E:\Program Files\IAR Systems\Embedded Workbench 6.0 Kickstart\430\inc\io430G2211.h 60
Error[Pe141]: unnamed prototyped parameters not allowed when body is present E:\Program Files\IAR Systems\Embedded Workbench 6.0 Kickstart\430\inc\io430G2211.h 60
Error[Pe130]: expected a "{" E:\Program Files\IAR Systems\Embedded Workbench 6.0 Kickstart\430\inc\io430G2211.h 60
Error[Pe148]: variable "clicks" has already been initialized (at line 27 of "E:\Program Files\IAR Systems\Embedded E:\egyéb\msp 430 projectek\Új\main.c 31
Workbench 6.0 Kickstart\430\inc\io430G2211.h")
Error[Pe148]: variable "ticks" has already been initialized (at line 28 of "E:\Program Files\IAR Systems\Embedded E:\egyéb\msp 430 projectek\Új\main.c 32
Workbench 6.0 Kickstart\430\inc\io430G2211.h")
Error[Pe148]: variable "outp" has already been initialized (at line 29 of "E:\Program Files\IAR Systems\Embedded E:\egyéb\msp 430 projectek\Új\main.c 33
Workbench 6.0 Kickstart\430\inc\io430G2211.h")
Error[Pe247]: function "main" has already been defined (at line 31 of "E:\Program Files\IAR Systems\Embedded E:\egyéb\msp 430 projectek\Új\main.c 35
Workbench 6.0 Kickstart\430\inc\io430G2211.h")
Error while running C/C++ compiler

Total number of errors: 8
Total number of warnings: 0

Összesen ennyi,pedig a beállítások jók.
(#) szitko válasza szikorapéter hozzászólására (») Feb 8, 2013 /
 
Idézet:
„pedig a beállítások jók.”

Ezek szerint valami mégsem jó.
Nézd át a kapcsos zárójeleket!
(#) szikorapéter válasza szitko hozzászólására (») Feb 8, 2013 /
 
Na megoldottam a problémát...megkerestem a program által hiányolt file-t és a nevét átírtam egy létező
  1. <msp430x20x3.h>
-re és így már fut a program rendesen.Köszönöm a segítséget még ilyen későn is.
A hozzászólás módosítva: Feb 8, 2013
(#) szitko válasza szikorapéter hozzászólására (») Feb 9, 2013 /
 
Nekem még korán van.
Még egy jó tanács!
Idézet:
E:\egyéb\msp ? 430 ? projectek\Új\

Ne használj ékezetes karaktereket, szóközt, és egyéb speciális karaktert, a projekt nevében és könyvtárneveiben!
(#) hotau hozzászólása Feb 9, 2013 /
 
Szép estét!
Lenne egy olyan kérdésem, hogy MSP430 tipusú mikrovezérlőt lehet e SharpDevelop
nevű programmal programozni?
A válsazokat előre is köszönöm.
(#) icserny válasza hotau hozzászólására (») Feb 10, 2013 /
 
Nem lehet. Amennyire én tudom, a SharpDevelop (vagy #develop) PC-n futó programok fejlesztésére való.
(#) icserny hozzászólása Feb 14, 2013 /
 
Próbálok megbarátkozni a Fritzing programmal, de belefutottam abba a problémába, hogy a Launchpad kártya Breadboarding és Schematic nézete között nem teljes a megfelelés. Ha a kártya jobb alsó sarkában levő tápfesz csatlakozót használom, az a Schematic és a PCB nézetben nem lesz figyelembe véve. Mi erre a megoldás?
(#) szitko válasza icserny hozzászólására (») Feb 14, 2013 /
 
Jobb klikk a LaunchPad-en, és"EDIT" menü. Ott hozzá tudsz adni plusz csatlakozókat.
(#) DecebaL hozzászólása Feb 15, 2013 /
 
Beleszaladtam a következő problémába egy ilyen mágneskapcsolót kapcsolok a következőképpen. Egy 2553 -al egy relét kapcsolok és a relé kapcsolja a mágneskapcsolót. Mikor a mágneskapcsoló behúz a kijelzőn a kijelzés összezavarodik és értelmetlen karakterek jelennek meg a vezérlés úgyanúgy működik tovább, a proci nem fagy le nem indul újra.Már próbáltam úgy is, hogy a mágneskapcsoló és proci közé SSR relét tettem lecseréltem a mechanikus relét, leválasztottam teljesen, de akkor is összeszedi a zajt valahogy. A tápot is megszűrtem egy halom kondi és LC variációval de a hiba akkor is jelentkezik. A kijelző HD44780. Ha a 230VAC hálózatról üzemeltetem akkor összeszedi a zajt amikor a mágneskapcsoló behúz, függetlenül attól, hogy egy adapterről vagy labortápról járatom. Ha akkumulátorról járatom akkor nem zavarja bármennyiszer kapcsol a mágneskapcsoló. Van valakinek ötlete?
(#) Kovabe válasza DecebaL hozzászólására (») Feb 15, 2013 /
 
Dioda van a behuzotekercsel páthuzamosan?
(#) icserny válasza DecebaL hozzászólására (») Feb 15, 2013 /
 
Idézet:
„Mikor a mágneskapcsoló behúz ...”
A kontaktusokkal párhuzamosan kötve van kondenzátor, vagy valami zavarszűrés?
Következő: »»   95 / 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