资源简介
基于MSP430的简单变电站自动化系统,源代码及详细项目报告
代码片段和文件信息
// *************************************************************************************************
// ADC12 functions.
// *************************************************************************************************
// Include section
// system
#include “project.h“
// driver
#include “adc12.h“
// logic
// *************************************************************************************************
// Prototypes section
// *************************************************************************************************
// Defines section
// *************************************************************************************************
// Global Variable section
volatile struct measurement sMeasurement;
// *************************************************************************************************
// Extern section
// *************************************************************************************************
// @fn init_adc12
// @brief Initialize adc12.
// @param none
// @return none
// *************************************************************************************************
void init_adc12(void)
{
// Set P6.0 P6.6 as ADC12 input
P6SEL_bit.P6SEL_0 = 1; // DC voltage (temperature)
P6SEL_bit.P6SEL_6 = 1; // AC voltage (current)
// Init ADC12 registors
ADC12CTL0 &= ~ENC; // Disable ENC
ADC12MCTL0 = INCH_0; // channel 0: voltage
ADC12MCTL1 = INCH_6 + EOS; // channel 1: current
ADC12CTL0 |= ADC12ON + SHT0_1 + MSC; // ADC12 on sample-and-hold time: 8 ADC12CLK cycles multiple sample and conversion
ADC12CTL1 |= CONSEQ_1 + SHP +SHS_1; // sequence-of-channels mode simpling impulse mode sampling trigger signal: Timer_A
ADC12CTL0 |= ENC; // Enable ENC
ADC12IE = BIT1; // Enable interrupt
// Init variables
sMeasurement.i_peak = 0; // current peak-to-peak value
sMeasurement.i_rms = 0; // current rms value
sMeasurement.i_sample_data_idx = 0; // index of current sampling data array
sMeasurement.voltage = 0; // DC voltage value
sMeasurement.v_above = 0; // flag: voltage above threshold
sMeasurement.v_below = 0; // flag: voltage below threshold
sMeasurement.v_above_count = 0; // counter for voltage detection
}
// *************************************************************************************************
// @fn ADC_ISR
// @brief Interrupt service routine for adc12.
// @param none
// @return none
// *************************************************************************************************
#pragma vector=ADC12_VECTOR
__interrupt void ADC12_ISR(void)
{
u16 voltage;
u16 current;
if (ADC12IFG == 0x0003) // Conversion finish
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4257 2011-01-04 16:24 Substation_Auto_System(IARv3.42)\adc12.c
文件 1944 2010-12-25 21:07 Substation_Auto_System(IARv3.42)\adc12.h
文件 1939 2010-12-25 09:19 Substation_Auto_System(IARv3.42)\cal_peak.c
文件 969 2010-12-25 09:19 Substation_Auto_System(IARv3.42)\cal_peak.h
文件 1997 2010-12-26 13:14 Substation_Auto_System(IARv3.42)\cal_rms.c
文件 992 2010-12-25 09:24 Substation_Auto_System(IARv3.42)\cal_rms.h
文件 39791 2011-01-04 16:22 Substation_Auto_System(IARv3.42)\Debug\Exe\Substation_Auto_System.d43
文件 11149 2011-01-04 16:22 Substation_Auto_System(IARv3.42)\Debug\Obj\adc12.r43
文件 4716 2010-12-26 17:06 Substation_Auto_System(IARv3.42)\Debug\Obj\cal_peak.r43
文件 4260 2010-12-26 17:06 Substation_Auto_System(IARv3.42)\Debug\Obj\cal_rms.r43
文件 4539 2010-12-26 17:06 Substation_Auto_System(IARv3.42)\Debug\Obj\display.r43
文件 36594 2011-01-04 16:22 Substation_Auto_System(IARv3.42)\Debug\Obj\main.r43
文件 10318 2010-12-26 17:06 Substation_Auto_System(IARv3.42)\Debug\Obj\ports.r43
文件 4004 2010-12-26 17:06 Substation_Auto_System(IARv3.42)\Debug\Obj\square_root.r43
文件 720 2011-01-04 16:25 Substation_Auto_System(IARv3.42)\Debug\Obj\Substation_Auto_System.pbd
文件 5211 2010-12-26 17:06 Substation_Auto_System(IARv3.42)\Debug\Obj\timer.r43
文件 12146 2010-12-26 17:06 Substation_Auto_System(IARv3.42)\Debug\Obj\usart.r43
文件 2880 2010-12-25 08:52 Substation_Auto_System(IARv3.42)\display.c
文件 998 2010-12-25 08:52 Substation_Auto_System(IARv3.42)\display.h
文件 12187 2011-01-04 16:25 Substation_Auto_System(IARv3.42)\main.c
文件 3537 2010-12-25 08:55 Substation_Auto_System(IARv3.42)\ports.c
文件 572 2010-12-25 08:55 Substation_Auto_System(IARv3.42)\ports.h
文件 1488 2010-12-25 09:18 Substation_Auto_System(IARv3.42)\project.h
文件 2099 2011-01-04 16:25 Substation_Auto_System(IARv3.42)\settings\Substation_Auto_System.cspy.bat
文件 4390 2011-01-04 16:25 Substation_Auto_System(IARv3.42)\settings\Substation_Auto_System.dbgdt
文件 931 2011-01-04 16:25 Substation_Auto_System(IARv3.42)\settings\Substation_Auto_System.dni
文件 3513 2011-01-04 16:25 Substation_Auto_System(IARv3.42)\settings\Substation_Auto_System.wsdt
文件 1342 2010-12-26 13:14 Substation_Auto_System(IARv3.42)\square_root.c
文件 8404 2011-01-04 16:25 Substation_Auto_System(IARv3.42)\Substation_Auto_System.dep
文件 12489 2010-12-26 17:06 Substation_Auto_System(IARv3.42)\Substation_Auto_System.ewd
............此处省略16个文件信息
评论
共有 条评论