ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
7 мая
281100 Топик полностью
Механик08 (31.10.2011 15:06, просмотров: 1) ответил rezident на Поскольку вопрос был о кварце, то могу предположить, что вы инициализируете модуль тактирования некорректно или не так, как рекомендуется в User's Guide. Впрочем не стоит расстраиваться, это одна из типовых ошибок начинающих ;)
rezident, спасибо! Дело было в кварце, видимо перегрел при пайке. Сейчас выставил скорость для DCO и связь наладилась. Но вот теперь не могу добиться передачи данных по UART при приёме по прерыванию. Вот код, в основном взятый из примера:// USCI A0/B0 Transmit ISR#pragma vector=USCIAB0TX_VECTOR__interrupt void USCI0TX_ISR(void){ while(UCA0STAT & ~UCBUSY); UCA0TXBUF = 'K'; // TX next character IE2 &= ~0x02; // 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 |= 0x02; UCA0TXBUF = 'O'; }else{ UCA0STAT &= 0x9F; //обнуление флагов ошибок } }