Other Parts Discussed in Thread: MSP-TS430PW14
Tool/software: Code Composer Studio
I used a very old design using an MSP430F2012 for a new project (motor driver)
When programming the ADC10 I found that checking with the dis-assembly function in CCS the correct value gets written to the ADC10CTL1 register but it does not reads back the same value.
The ADC10CTL1 register only displays the value 0x0002, regardless what I program into it.
According to the MSP430F2xx users guide is this a r/w register to I expect to read back what I write (as ADC10CTL0 is doing).
I use the ADC10 in a sequence of 4 channels triggered by the ADC10SC bit in the timer-A ISR. The timer-A ISR runs OK.
programming used to set the ADC10SC bit is: ADC10CTL0 |= ADC10SC;
The ADC10 ISR is accessed the first time and then no more so the ADC doesn't seem to generate an interrupt anymore.
Interrupt flags are not modified after init
ADC10 regs are programmed as follows
ADC10CTL0 = (SREF_0 + ADC10SHT_1 + MSC + ADC10ON + ADC10IE + ENC);
ADC10CTL1 = (INCH_3 + ADC10DIV_1 + ADC10SSEL_3 + CONSEQ_1);
ADC10AE0 = 0x0F;
ADC10DTC0 = 0;
ADC10DTC1 = 4;
ADC10SA = (unsigned int)TempValues;
_EINT(); // enable global interrupts
ANy idea what causes this strange behaviour of ADC10CTL1 ?
ps: I ran the code on an EVM: MSP-TS430PW14