<< Chapter < Page Chapter >> Page >

When the ADC10 ends the conversion, an interrupt is requested. While variable min is lower than 60, the temperature is written to flash memory. The memory pointer is increased by two (word). When min = 60 , the system stops operation.

System configuration

Dco configuration

Adjust the DCO frequency to 1 MHz by software using the calibrated DCOCTL and BCSCTL1 register settings stored in information memory segment A.

if (CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF) {while(1); // If calibration constants erased // do not load, trap CPU!!}DCOCTL = CALDCO_1MHZ; // Set DCO to 1 MHz

Basic clock module+ configuration

Set MCLK and SMCLK to 1 MHz. Use the internal very low power VLOCLK source clock to ACLK/8 clock signal as low frequency oscillator (12 kHz):

BCSCTL1 = DIVA_3; // ACLK = 1.5 kHz BCSCTL3 = LFXT1S_2; // Set VLOCLK (12 kHz)

Adc10 configuration

The ADC10’s input channel is the integrated temperature sensor (A10) and it uses the signal V REF+ (1.5 V) as reference voltage. The ADC10 clock source is ADC10OSC, the clock signal being ADC10CLK/4. Configure the ADC10 sample-and-hold time: 64xADC10CLKs, to perform a single-channel single-conversion and enable its interrupts. What are the values to write to the configuration registers?

ADC10CTL1 = INCH_10 + ADC10DIV_3; // Temp Sensor (A10), // ADC10CLK/4,// clock source: ADC10OSC ADC10CTL0=SREF_1 + ADC10SHT_3 + REFON + ADC10ON +ADC10IE;// Internal reference voltage Vref+ = 1.5 V // ADC10 sample-and-hold time: 64 x ADC10CLKs// Reference-generator voltage = 1.5 V // ADC10 on + ADC10 interrupt enable//*********************************************************// ADC10 Interrupt Service Routine //*********************************************************#pragma vector=ADC10_VECTOR __interrupt void ADC10ISR(void){ unsigned int temperature; if (min<= 60) {temperature = ((ADC10MEM - 673) * 423) / 1024; write_int_flash(memo_ptr,temperature);memo_ptr += 2; }else {_NOP(); }}

Timer_a configuration

Configure Timer_A register to enable an interrupt once every second. Use the ACLK clock signal as the clock source. This timer is configured in up counter mode in order to count until the TAR value reaches the TACCR0 value.

TACCTL0 = CCIE; // TACCR0 interrupt enabled TACCR0 = 1500; // this count corresponds to 1 secTACTL = TASSEL_1 | MC_1 | ID_0;// ACLK, up mode to TACCR0//********************************************************** // Timer_A Interrupt Service Routine//********************************************************** #pragma vector=TIMERA0_VECTOR__interrupt void TimerA0_ISR (void) {counter++; P1OUT ^= 0x01; // LED toogleif (counter == 60){ min++;counter = 0; ADC10CTL0 |= ENC + ADC10SC; // Sampling/Conversion start} }

Analysis of operation

After compiling the project, start the debug session and before running the application, put a breakpoint at the line of code with the _NOP() instruction. Go to breakpoint properties and set action to Write data to file . Name the file as Temp.dat and define the data format as integer . The data starts at address 0x01040 , with a length of 3C . Run the application and let the temperature data logger acquire the values for 1 hour. Use a heater or a fan to force temperature variations during the measurement period. When execution reaches the breakpoint, the file will be available in your file system. Construct a graph in Excel or a similar tool, in order to plot the temperature variation obtained by the data logger.

This example and many others are available on the MSP430 Teaching ROM.

Request this ROM, and our other Teaching Materials here (External Link)

Questions & Answers

What are other types of cell
plant and animal cell
prokaryotic and eukaryotic cell
meaning inside and outside cells
external feature of earthworm
Ajas Reply
what is the reason behind that before F2 generation is no segregation?
asmamaw Reply
what is mitosis and meiosis
Rabiu Reply
hypothesis theory law
Tamba Reply
what is hypothesis theory law
Briefly describe the process of mitosis and meiosis.
Lilian Reply
what is chromosome
Deborah Reply
Chromosome is the thread-like structure containing DNA and found in the nucleus of a cell. DNA contains gene which has genetic information.
if a cell is killed by strain why then is it use
uchenna Reply
what is an atom
Finda Reply
an atom is the must smallest element in the world.
please help me friends. I wont a good example of lab report based on carbohydrate,lipid,reducing and non reducing sugar.
that can't be split by any chemical means
No an atom is the smallest particles of an element which can take part in a chemical reaction
An atom is the smallest indivisible particle of an element which can take part in a chemical reaction.
sure atoms can't be splited
atom can't be split
what is molecule
Molecules consists of one or more tiny particles called atom
atoms joined together by covalent bonds
an atom is a particle that cannot be divided further by a chemical reaction
how do earthworms excrete
what is genotype
Precious Reply
What is the difference between longitudinal section and vertical section
dela Reply
what is a cell
Young Reply
A cell is the basic unit of Life
And what is life...?
it's being.
how many layers does the eye have
Cell is the basic unit of life
what is virus
building block of life
what is diffusion
excretory system of earthworm
Okotiti Reply
what is flaccidity
Joshua Reply
a condition of composure in respective to the object
variety of organisms
Abdulkudusi Reply
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get the best Algebra and trigonometry course in your pocket!

Source:  OpenStax, Teaching and classroom laboratories based on the “ez430” and "experimenter's board" msp430 microcontroller platforms and code composer essentials. OpenStax CNX. May 19, 2009 Download for free at http://cnx.org/content/col10706/1.3
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Teaching and classroom laboratories based on the “ez430” and "experimenter's board" msp430 microcontroller platforms and code composer essentials' conversation and receive update notifications?