{
TMR3CN = 0x02
TMR3R = -44236//定时2ms
TMR3= 0xffff
EIE2 &= ~0x01
TMR3CN |= 0x04
}
void ADC0_Init(void)
{
AMX0SL=0x00//选择通道0
AMX0CF=0x00//选择AIN0和AIN1为独立输入
REF0CN=0x03//选择外部的电压为基准电压
ADC0CF=(SYSCLK/2500000)<<3//时钟为 ,增益为1
ADC0CN=0x84//ADC0使能且为ADCBUSY的开启方式
EIE2|=0x02//开启ADC0的中断
}
void ADC0_ISR() interrupt 15
{
static unsigned int_dec=INT_DEC
static long accumulator=0L
AD0INT = 0 // 清 ADC 中断标志位
accumulator += ADC0 // 累加ADC采样数据
int_dec-- // 指针减1
if (int_dec == 0) // 累加完了吗?
{
int_dec = INT_DEC // 指针复位
result = accumulator >>8
accumulator = 0L // 累加和变量清0
t=1
}
}ADC0转换,定时器3开启的方式
写个伪代码吧。
int main(){
int *p = 0x13
while(1)
{
if(*p == 0x3652)
{
diandeng(1)//点亮测试机面板上的PASS灯
Sleep(100)//延时100ms
diandeng(2)//点亮面板黄灯
printf("testing,wait")
p ++
if( p == 0x15)
p = 0x13
}
else
diandeng(0)//点亮测试机面板上的FAIL灯
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)