ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
122016
vekt (04.06.2008 20:27, просмотров: 10610)
Скажите, кто-нибудь врубал AD7714 от msp430? Испытываю трудности с включением микросхемы. Подаю нужные уровни, обеспечиваю синхронизацией и msp430f169 перестает контролироваться отладчиком. Пробовал выдавать 1 Мгц через таймер А без прерываний, пробовал выводить SMCLK наружу - один и тот же результат. Такое ощущение, что как только ad7714 начинает выводить DRDY, возникает какая-то лажа. IAR Debugger иногда упоминает стек. Код такой. #define CS 0x01 // P1.0 #define DRDY 0x02 // P1.1 #define MCLK 0x04 // P1.2 #define BUFFER 0x08 // P1.3 #define STBY 0x10 // P1.4 #define RESET 0x20 // P1.5 #define SYN 0x40 // P1.6 #define POL 0x80 // P1.7 void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer Set_DCO(); BCSCTL2 |= SELM_1 + DIVS_2; // MCLK = DCO, SMCLK = DCO/4 WDTCTL = WDT_MDLY_0_5; TBCCTL0 = CCIE; // CCR0 interrupt enabled TBCCR0 += 5000; TBCTL = TBSSEL_2 + MC_2; // SMCLK, contmode P5SEL |= 0x20; // SMCLK выведен наружу IE1 |= WDTIE; _BIS_SR(GIE); P1DIR |= BUFFER + CS + STBY + RESET + SYN + POL; P1OUT |= CS + SYN + STBY; P1OUT &= ~(POL); P1OUT &= ~RESET; _BIS_SR(LPM0_bits + GIE); P1OUT |= RESET; while(1){ _BIS_SR(LPM0_bits + GIE); } } #pragma vector=TIMERB0_VECTOR __interrupt void Timer_B (void) { TBCCR0 += 5000; // Add Offset to CCR0 } #pragma vector=WDT_VECTOR __interrupt void watchdog_timer(void) { _BIC_SR_IRQ(LPM0_bits); }