ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
281152 Топик полностью
Механик08 (31.10.2011 18:46, просмотров: 226) ответил rezident на Чтобы пользоваться всеми возможностями форума и постить исходники в читабельном виде нужно зарегистрироваться. Это недолго и совсем не трудно.
Да, действительно нечитаемо, простите. Итак код: 

// USCI A0/B0 Transmit ISR
#pragma vector=USCIAB0TX_VECTOR
__interrupt void USCI0TX_ISR(void)
  { 
     while(UCA0STAT & ~UCBUSY); 
     UCA0TXBUF = 'K'; 
     IE2 &= ~UCA0TXIE; // Disable USCI_A0 TX interrupt
  }

// USCI A0/B0 Receive ISR
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
  { 
    if(!(UCA0STAT & UCRXERR)) 
      { 
        string1[j++] = UCA0RXBUF; 
        if (j > sizeof string1 - 1) 
          { 
	    if(string1[0]==0x55){set_led();}else{clr_led();}; 
            j = 0; 
            IE2 |= UCA0TXIE; 
            UCA0TXBUF = 'O'; 
          }else{ 
            UCA0STAT &= 0x9F; //обнуление флагов ошибок 
          } 
  }
Естественно в main стоят строчки включения GIE и IE2 |= UCA0RXIE; То есть приём есть, МК отрабатывает включение и выключение светодиода, а вот ответа от МК нет. Хотя в отладчике в железе при выставлении брекпоинта в теле процедуры прерывания USCI0TX_ISR попадаем на этот брекпоинт. Использую IAR Embedded Workbench for MSP430 5.10.1 и MSP430 LaunchPad (MSP-EXP430G2) как дебаггер.