Vadim Harlamov wrote to All on Sun, 28 Sep 2003 10:59:11 +0400:
VH> ðÙÔÁÀÓØ ÓÄÅÌÁÔØ ÐÅÒ×ÙÊ ÐÒÏÅËÔ ÎÁ MSP430F149 VH> HÅ ÐÏÌÕÞÁÅÔÓÑ ÚÁÐÕÓÔÉÔØ áãð × ÒÅÖÉÍÅ sequence of chanels É ×ÙÇÒÅÂÁÔØ ÄÁÎÎÙÅ VH> ÐÏ ÐÒÅÒÙ×ÁÎÉÀ ÐÒÉ ÚÁ×ÅÒÛÅÎÉÉ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ. VH> ëÔÏ-ÎÉÂÕÄØ ÉÚ ÏÌÌ ÜÔÏÔ ÒÅÖÉÍ ÉÓÐÏÌØÚÏ×ÁÌ? VH> âÕÄÕ ÓÉÌØÎÏ ÐÒÉÚÎÁÔÅÌÅÎ ÚÁ ÐÒÉÍÅÒÙ ÒÁÂÏÔÙ Ó áãð × ÜÔÏÍ ÒÅÖÉÍÅ ÓÀÄÁ ÉÌÉ ÎÁ VH> vadim snipped-for-privacy@yahoo.com, ÄÁ É ×ÏÏÂÝÅ ÚÁ ÌÀÂÙÅ ÐÒÉÍÅÒÙ ÄÌÑ ÓÁÂÖ, ÖÅÌÁÔÅÌØÎÏ ÎÁ VH> ó. äÉÓË ÏÔ TI ÅÓÔØ ;)
îÁ ÜÔÏÍ ÄÉÓËÅ ÄÏÌÖÎÙ ÂÙÔØ ÐÒÉÍÅÒÙ ÒÁÂÏÔÙ Ó áãð ÄÌÑ ÒÁÚÎÙÈ ÒÅÖÉÍÏ×. æÁÊÌÉËÉ ÎÁÚÙ×ÁÀÔÓÑ ÔÉÐÁ fet140_adc12_xx.c.
ñ ÉÓÐÏÌØÚÏ×ÁÌ: ÚÁÐÕÓË - ÍÎÏÇÏ ËÁÎÁÌÏ× ÏÄÎÏËÒÁÔÎÏ - ÓÔÏÐ - ÐÒÅÒÙ×ÁÎÉÅ - ÚÁÂÉÒÁÅÍ ÒÅÚÕÌØÔÁÔ.
// ------------------------------------------------- // // // éÎÉÃÉÁÌÉÚÁÃÉÑ // // // Setup ADC12 & REF, ref = 2.5V, sampling time, multiCH ADC12CTL0 = ADC12ON+REFON+REF2_5V+SHT0_10+SHT1_10+MSC;
// Use sampling timer, setup conversion mode, start in 0CH ADC12CTL1 = SHP+CONSEQ_1+CSTARTADD_0;
ADC12MCTL0 = INCH_6+SREF_0; // Select channel A6 (Alpha),Vref+ ADC12MCTL1 = INCH_6+SREF_0; // Select channel A6 (Alpha),Vref+ ADC12MCTL2 = INCH_6+SREF_0; // Select channel A6 (Alpha),Vref+ ADC12MCTL3 = INCH_6+SREF_0; // Select channel A6 (Alpha),Vref+ ADC12MCTL4 = INCH_6+SREF_0; // Select channel A6 (Alpha),Vref+ ADC12MCTL5 = INCH_6+SREF_0; // Select channel A6 (Alpha),Vref+ ADC12MCTL6 = INCH_6+SREF_0; // Select channel A6 (Alpha),Vref+ ADC12MCTL7 = INCH_6+SREF_0; // Select channel A6 (Alpha),Vref+
ADC12MCTL8 = INCH_10+SREF_1; // Select channel A10 (Temperature), Vref+ ADC12MCTL9 = INCH_10+SREF_1; // Select channel A10 (Temperature), Vref+ ADC12MCTL10 = INCH_10+SREF_1; // Select channel A10 (Temperature), Vref+
ADC12MCTL11 = INCH_5+SREF_1; // Select channel A5 (Pressure), Vref+ ADC12MCTL12 = INCH_5+SREF_1; // Select channel A5 (Pressure), Vref+ ADC12MCTL13 = INCH_5+SREF_1; // Select channel A5 (Pressure), Vref+
ADC12MCTL14 = INCH_7+SREF_1; // Select channel A7 (Battery), Vref+ ADC12MCTL15 = INCH_7+SREF_1+EOS; // Select channel A7 (Battery), Vref+
ADC12IE = (word)(1 << 15); // Enable ADC12IFG.15
// ------------------------------------------------- // // // úÁÐÕÓË //
static void Start() { __disable_interrupt(); ADC12CTL0 |= ENC; // ADC enable conversion ADC12CTL0 |= ADC12SC; // ADC start conversion __bis_SR_register(LPM0_bits + GIE); }
// ------------------------------------------------- // // // ïÂÒÁÂÏÔÞÉË ÐÒÅÒÙ×ÁÎÉÑ //
__interrupt void TADC::ConversionComplete() { word x = ADC12MEM15; // clear interrupt flag
__bic_SR_register_on_exit(LPM0_bits); }
îÕ, É ÐÏÔÏÍ ÄÁÎÎÙÅ ÚÁÂÉÒÁÅÛØ, ÏÂÒÁÂÁÔÙ×ÁÅÛØ... ñ ÜÔÏ ÄÅÌÁÀ ÎÅ × ÏÂÒÁÂÏÔÞÉËÅ ÐÒÅÒÙ×ÁÎÉÊ. ÷Ï ×ÒÅÍÑ ÏÃÉÆÒÏ×Ù×ÁÎÉÑ CPU ×ÙÒÕÂÌÅÎÏ, ÓÐÉÔ, ÞÔÏÂÙ ÎÅ ÛÕÍÅÔØ. ðÒÏÓÙÐÁÅÔÓÑ × ÏÂÒÁÂÏÔÞÉËÅ ÐÒÅÒÙ×ÁÎÉÑ.
...so long!
### ôÑÖÅÌÏ × ÍyÞÅÎÉÉ - ÌÅÇËÏ × ÇpÏÂy.