工具/软件:Code Composer Studio
您好!
我开始为一个程序编写代码、该程序对来自端口0和1的2个模拟信号进行采样、 和控制频率和宽度因子、该程序构建、编译但不执行我想要的操作、引脚6具有固定的脉冲信号、引脚7具有连续信号。 我接近截止日期、而且我也没有太多时间从这开始(2天也要做其他事情)。 任何想法都将有所帮助。
谢谢你。
低于我编写的代码
#include
//全局变量
unsigned int ADC[2]={0};//这将保持 FREQ 和 PWM 值
unsigned int FREQ;
unsigned int PWM;
unsigned int i;
unsigned int j;
unsigned int k;
//函数原型
void Setup_HW (void);//设置看门狗计时器、时钟、ADC 端口
void read_Acc (void);//此函数读取 ADC 并存储 FREQ 和 PWM 值
int main (空)
{
setup_HW ();
P1DIR |= BIT6;
P1DIR |= BIT7;
while (1)
{
Read_Acc ();//此函数读取 ADC 并存储 FREQ 和 PWM 值
for (k=0;k>100;k++);//交替脉冲之间的小延迟
P1OUT ^= 0x20;//引脚6输出设置为1
for (k=0;k>100;k++);//交替脉冲之间的小延迟
i=100*(FREQ-(PWM/1024)*FREQ);
for (;i=0;i--);//电位器生成的延迟
P1OUT ^= 0x20;//引脚6输出设置为0
for (k=0;k>100;k++);//交替脉冲之间的小延迟
P1OUT ^= 0x40;//引脚7输出设置为1
for (k=0;k>100;k++);//交替脉冲之间的小延迟
J=100*(FREQ-(FREQ-(PWM/1024)* FREQ));
for (;j=0;j-);//电位器生成的延迟
P1OUT ^= 0x40;//引脚7输出设置为0
}
}
// ADC10中断服务例程
#pragma vector=ADC10_vector
_interrupt void ADC10_ISR (void)
{
_BIC_SR_REGISTER_ON_EXIT (CPUOFF);//从0 (SR)清除 CPUOFF 位
}
void Setup_HW (void)
{
WDTCTL = WDTPW + WDTHOLD;//停止 WDT
ADC10CTL1 = INCH_2 + CONSEQ_1;// A1/A0、单序列
ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
ADC10DTC1 = 0x02;// 2次转换
ADC10AE0 |= 0x02;//在 P1.0和 P1.1上禁用数字 I/O
}
空 READ_Acc (空)
{
ADC10CTL0 &=~ENC;
while (ADC10CTL1 & BUSY);//如果 ADC10内核处于活动状态则等待
ADC10SA =(无符号整型) ADC;//将 ADC10SA 中的数据复制到无符号整型 ADC 数组
ADC10CTL0 |= ENC + ADC10SC;//采样和转换开始
FREQ = ADC[0];// ADC 数组0复制到变量 FREQ
PWM = ADC[1];// ADC 数组1复制到变量 PWM
_bis_SR_register (CPUOFF + GIE);// LPM0、ADC10_ISR 将强制退出
}