Re: Re: error #20: identifier "TA0CCTL0_bit" is undefined....help on code composer
| Newsgroups | gmane.comp.hardware.texas-instruments.msp430.discuss |
|---|---|
| Message-ID | <CAH2ZmXm+bnoi0z_-h2R=_2518Rh1Qjfsm-pY-=VEHp0-UMbCCg@mail.gmail.com> |
http://forum.allaboutcircuits.com/threads/msp430-multiplexed-7-segment-displays-errors.87703/ On Tue, Dec 9, 2014 at 7:37 AM, [email protected] [msp430] < [email protected]> wrote: > > > I am using the msp430g2553.... > > I have enclosed the complete program below.....I believe the original > software used iar to compile using "io430.h" header which I cannot use in > code composer. I am new at this and am struggling with final project for a > class. I have two marked lines with errors with ****** after //.... > > Thanks Ted > > #include <msp430g2553.h> > #include <msp430.h> > #include <intrinsics.h> > #include <stdint.h> > //#include <io430.h> //.......??????why? > > #define NUMBER_OF_DIGITS 2 > #define TACCTL0_ TA0CCTL0_ /* Timer A Capture/Compare > Control 0 */ > #define TACCTL1_ TA0CCTL1_ /* Timer A Capture/Compare > Control 1 */ > #define DELAY 1000 > #define TIMER_DELAY 630 > #define CCIE (0x0010) /* Capture/compare interrupt > enable */ > char seg[16]; > char d[5]; > char digit; > short v; > > // simple software delay > void delay(unsigned long d) > { > unsigned long i; > for (i = 0; i < d; i++); > } > > void display_hex(unsigned short v) > { // enter with 16-bit integer v > // fill global array d[ ] > short i; > for (i = 0; i < 4; i++) > { > d[i] = v % 16; > v = v/16; > } > } > > void display_BCD(unsigned short v) > {// enter with 16-bit integer v > // fill global array d[ ] > short i; > for (i = 0; i < 5; i++) > { > d[i] = v % 10; > v = v/10; > } > } > > #pragma vector = TIMER0_A0_VECTOR > __interrupt void myTimerISR(void) > { > digit = ++digit % NUMBER_OF_DIGITS; //use MOD operator > P1OUT = ~seg[d[digit]]; > P2OUT = 1 << digit; > } > > void init(void) > { > // Stop watchdog timer to prevent time out reset > WDTCTL = WDTPW + WDTHOLD; > > // initialize Timer0_A > TA0CCR0 = TIMER_DELAY; // set up terminal count > TA0CTL = TASSEL_2 + ID_3 + MC_1; // configure and start timer > > // enable interrupts > TA0CCTL0_bit.CCIE = 1; // enable timer interrupts******** > __enable_interrupt(); // set GIE in SR********** > > P1DIR = 0xFF; // enable segment outputs > P2DIR = 0x0F; // enable digit select > > // create 7-segment table > seg[0] = 0x3F; > seg[1] = 0x06; > seg[2] = 0x5B; > seg[3] = 0x4F; > seg[4] = 0x66; > seg[5] = 0x6D; > seg[6] = 0x7D; > seg[7] = 0x07; > seg[8] = 0x7F; > seg[9] = 0x67; > seg[10] = 0x77; > seg[11] = 0x7C; > seg[12] = 0x39; > seg[13] = 0x5E; > seg[14] = 0x79; > seg[15] = 0x71; > > digit = 0; > } > > void initADC(void) > { > // initialize 10-bit ADC > ADC10CTL1 = INCH_7 + CONSEQ_2; // use P1.7 (channel 7) > ADC10CTL0 |= ADC10SHT_3 + ADC10ON + MSC; > ADC10AE0 |= BIT7; // enable analog input on channel 7 > ADC10CTL0 |= ADC10SC + ENC; // start conversions > } > > void main( void ) > { > init(); > initADC(); > > while (1) > { > v = ADC10MEM; > display_BCD(v); > delay(DELAY); > } > > } > > >