Labview và mạch nạp Msp430

kakaducsy

Trứng gà
May anh mấy chị cho em hỏi vấn đề này với:-s
BT đo lường công nghiệp liên quan đến labview mà em chưa hiểu gì hết,làm sao để labview kết nối được với kit msp và nhận được tín hiệu đọc từ cảm biến nhiệt trên kit vậy ạ:5cool_beat_plaster::gach
hỏi ngu mong anh chị đừng chém:1cool_byebye:
 

ghosttf141

Thành viên Nữ PIF
vào help->find example->hardware input->serial chọn simple serial có 1 chương trình mẫu nhận uart, tìm code uart trên điễn đàn cho msp là xong. Mà code này dỡ là nó echo toàn bộ dữ liệu dạng char ra textbox, hồi đó anh phải sửa lại nhiều.
 

Lê Thành Nhân

Thành Viên PIF
May anh mấy chị cho em hỏi vấn đề này với:-s
BT đo lường công nghiệp liên quan đến labview mà em chưa hiểu gì hết,làm sao để labview kết nối được với kit msp và nhận được tín hiệu đọc từ cảm biến nhiệt trên kit vậy ạ:5cool_beat_plaster::gach
hỏi ngu mong anh chị đừng chém:1cool_byebye:
Đầu tiên, em phải chọn kiểu giao tiếp, có thể là UART hoặc USB(LabVIEW đều hỗ trợ cả 2). Nhưng với MSP430G thì chỉ có hỗ trợ giao tiếp UART. Với UART thì có vẻ dễ lập trình hơn.
Code UART cho MCU thì em có thể tham khảo code này (Code này anh code cho chip msp430f5529):

PHP:
#include <msp430.h>
 
void send_string(char *s);
void send_char(char c);
 
char  data ;
void main(void) {
 
 
 
    WDTCTL = WDTPW | WDTHOLD;    // Stop watchdog timer
    //-------config_UART------------------
      P4SEL |= BIT4 + BIT5 ;// config p4.4 va p4.5 co chuc nang USCI_A0_TXD/RXD
      UCA1CTL1 |= UCSWRST ;  // put state machine in reset .
      UCA1CTL1 |= UCSSEL_2 ; // SMCLK
      UCA1BR0 = 9 ; // 1Mhz; baud rate is 115200,see "user guide"
      UCA1BR1 = 0 ; // 1M / 115200 = 9 .
      UCA1MCTL |= UCBRS_1 + UCBRF_0 ; // Modulation UCBRSx = 1 ;UCBRFx = 0 .
      UCA1CTL1 &=~ UCSWRST ; // initial USCI state machine
      UCA1IE |= UCRXIE ;    //  Enable USCI_A0 RX interrupt
      __bis_SR_register(GIE) ; //  interrupt enable
    // __no_operation() ;
    //-------------GPIO----------------------
  //-----Indicator--------------------------
          P1SEL &=~BIT0 ;
          P1DIR |= BIT0 ;
          P1OUT |= BIT0 ;
    //--------------------------------------
          while(1)
          {
        if (data==49) {
                P1OUT ^= BIT0 ;
                __delay_cycles(300000) ;
                send_string("he he\n ") ;
 
            }
            if (data == 48) {
                P1OUT  &=~BIT0 ;
                send_string("number 0 ") ;
 
 
            }
          }
 
}
#pragma vector = USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
 
    // UCA1TXBUF  thanh ghi truyen du lieu .
    // UCA1RXBUF thanh ghi nhan du lieu
    if (UCRXIFG){
        data = UCA1RXBUF ;
    }
 
    while(!(UCA1IFG&UCTXIFG)) ; // Thanh ghi kiem tra thanh ghi truyen da ranh chua ?
    UCA1TXBUF = UCA1RXBUF ;  // Thanh ghi nhan duoc du lieu nao thi gui lai du lieu vua nhan duoc .
}
void send_char(char c) {
    while(!UCTXIFG) ;// UCTXIFG la co ngat,sau khi thanh UCA1TXBUF truyen du lieu xuong thi thi bit nay tu dong = 1 .
        // while(!UCTXIFG) lenh cho TXIF = 0 , ranh roi .
    UCA1TXBUF = c ;
}
void send_string(char *s) {
    while (*s)
    send_char(*s++) ;
 
}
Còn code giao tiếp cho LabVIEW thì em nên tham khảo kỹ hơn trong phần Help/Instruments/VISA và Serial, hoặc lên mạng lấy code mẫu về sửa lại.
Hoặc xem code mẫu này của anh :
Code:
https://drive.google.com/file/d/0B-og_HlJ_6FHVEVhUFhnd3lGWFE/view?usp=sharing
Chúc vui.
 
Top