在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 實時記錄MSP430編程問題

            實時記錄MSP430編程問題

            作者: 時間:2016-11-13 來源:網(wǎng)絡 收藏
            編程中遇到了一個及其詭異的問題,發(fā)送緩存與接收緩存的LISTEN控制字為零同時兩端未用線路連接的情況下,對發(fā)送緩存設置值時接收緩存也同時改變了,正在各種檢查中,如果解決了會貼出解決方法。
            問題解決了:單片機壞了?。?!內部的LISTEN估計被連上了,這塊單片機只能用來做為發(fā)送端了。
            另外,今日還遇到了中斷子程序不作用的情況,網(wǎng)上各種尋找后發(fā)現(xiàn)程序中缺少 _EINT();導致無法運行中斷程序,奇怪的是TI給的示范程序里面都沒有_EINT(),我猜想是因為IAR版本或者所用調試程序不同的原因吧。
            現(xiàn)在兩塊單片機已經(jīng)能夠進行簡單的單工通信了,明天再來完善程序。
            即:UCA1RXBUF = UCA1TXBUF
            附上問題程序:
            void main(void)
            {
            WDTCTL = WDTPW + WDTHOLD; // Stop WDT
            Init_Keypad();
            Init_LCD();
            write_command(0x3f); //打開顯示
            clear_LCD();
            P5SEL = 0xC0; // P5.6,7 = USCI_A1 TXD/RXD
            UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
            UCA1CTL1 |= UCSSEL__ACLK; // ACLK
            UCA1BR0 = 0x0D; // 2400
            UCA1BR1 = 0; //
            UCA1MCTL |= UCBRS_6 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0
            UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
            UCA1IE |= UCRXIE + UCTXIE; // Enable USCI_A0 RX,TX interrupt
            while(1)
            {
            Key_Event(); //讀取鍵值
            if(key_Flag == 1)
            {
            key_Flag = 0;
            UCA1TXBUF=key_val;
            display_16_8((uchar *)&LCD_16_8[UCA1RXBUF][0],2,lie+72);//for debugger
            display_16_8((uchar *)&LCD_16_8[UCA1RXBUF][0],4,lie+72);//for debugger
            }
            }
            __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
            __no_operation(); // For debugger
            }
            // Echo back RXed character, confirm TX buffer is ready first
            #pragma vector=USCI_A1_VECTOR
            __interrupt void USCI_A1_ISR(void)
            {
            switch(__even_in_range(UCA1IV,4))
            {
            case 0:break; // Vector 0 - no interrupt
            case 2: // Vector 2 - RXIFG
            display_16_8((uchar *)&LCD_16_8[UCA1RXBUF][0],4,lie+72); // TX -> RXed character
            break;
            case 4:break; // Vector 4 - TXIFG
            default: break;
            }
            }
            成功的程序:
            void main(void)
            {
            WDTCTL = WDTPW + WDTHOLD; // Stop WDT

            Init_Keypad();
            Init_LCD();
            write_command(0x3f); //打開顯示
            clear_LCD();
            P5SEL = 0xC0; // P5.6,7 = USCI_A1 TXD/RXD
            UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
            UCA1CTL1 |= UCSSEL__ACLK; // ACLK
            UCA1BR0 = 0x0D; // 2400
            UCA1BR1 = 0; //
            UCA1MCTL |= UCBRS_6 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0
            UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
            UCA1IE |= UCRXIE + UCTXIE; // Enable USCI_A0 RX,TX interrupt
            _EINT();

            while(1)
            {
            Key_Event(); //讀取鍵值

            if(key_Flag == 1)
            {
            key_Flag = 0;
            UCA1TXBUF=key_val;
            }
            }
            __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
            __no_operation(); // For debugger
            }
            // Echo back RXed character, confirm TX buffer is ready first
            #pragma vector=USCI_A1_VECTOR
            __interrupt void USCI_A1_ISR(void)
            {
            switch(UCA1IV)
            {
            case 0:break; // Vector 0 - no interrupt
            case 2: // Vector 2 - RXIFG
            if((UCA1RXBUF>=0)&&(UCA1RXBUF<10))
            display_16_8((uchar *)&LCD_16_8[UCA1RXBUF][0],4,lie+72); // TX -> RXed character
            break;
            case 4:
            if((UCA1TXBUF>=0)&&(UCA1TXBUF<10))
            display_16_8((uchar *)&LCD_16_8[UCA1TXBUF][0],6,lie+72);
            break; // Vector 4 - TXIFG
            default: break;
            }
            }



            評論


            技術專區(qū)

            關閉