完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我想用adc频道AN3和AN5。但是我的代码在一个频道上正常工作,但是当两个频道启用时,我的代码不工作。以下是我的代码。请任何人帮助我识别问题。defineTHRESHOLD0x0000\define THRESHOLD1 0x0136\define THRESHOLD2;0x026c\define THRESHOLD2;。THRESHOLD3 0x03a2#define hystyrisis 0x005D#define tiM1 2#define TIM2 8#define CONFIG1 (ADC_MODULE_ON | ADC_FORMAT_INTG32 | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON)#define CONFIG2 (ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_ON | ADC_SAMPLES_PER_INT_1 | ADC_ALT_BUF_OFF | ADC_ALT_INPUT_OFF)#de精细配置3(ADC_CONV_CLK_CLK_INTERNAL_RC|ADC_SAMPLE_TIME_15)定义配置器(ENABL_ENABL_AN3_AN3_ANA|ENABL_AN5_ANA|ENABL AN5_ANA)定义配置CAN(SKIP_SCAN_SC AN3_AN3_AN3_AN3_AN3_AN3_AN3_AN3_ANA|ENENENABL_ANA|ENENENENENENABL_AN5_AN5_ANA)定义配置CAN(SKIP_定义配置CA(SKIP_SCAN_SKIP_SCAN_SC AN0._SKIP_SC AN0._AN0.|_SCAN_AN8|SKIP_SCAN_AN9|SKIP_SCAN_AN10|SKIP_SCAN_AN11|SKIP_SCAN12.|SKIP_SCAN_AN13.|SKIP_SCAN13.|SKIP_SCAN14.|SKIP_SCAN14.|SKIP_SCAN_SCAN15)无效延迟{未签名的int msec.|SKIP_SCAN14.|SKIP_SCAN14.|SKIP_SCAN15)无效延迟{未签名的int msec{未签名的int msec{未签名的int msec(未签名的int msec;WriteCorCoreCoreTimer(0);tWait(0);tWait=(SYSCLCLCLCLK/2000)*msec=(SYSCLCLK/2000)*msec=(SYSCLK/2000)*msec)*msADC安装前。//使用接地作为通道A的负参考,而不是引脚AN1(RB1)SetChanADC10(ADC_CH0_NEG_SAMPLEA_NVREF);OpenADC10(CONFIG1,CONFIG2,CONFIG3,CONFIGPORT,CONFIGSCAN);(ADC_INT_PRI_2.|ADC_INT_PRI_2.|ADC_INT_INT_SUB_SUB_PRI_2.|ADC_INT_INT_2.|ADC_INT_INT_INT_PRI_2.|ADC_INT_INT_INT_ON);//清除中断标志mAD1ClearIntInt标志mAD1ClearInt标志();//启用ADC启用ADCAEnableADCAEADC10();//启用多矢量中断——INTE可多矢量中断——INTEnableSystem多矢量SystemMulti矢量中断系统复合矢量IntInt();}}无符号整数Q无符号整数Q,配置性能(SYSCLK)TRISDCLR=0x0005;//将RD8和RD9设置为数字输出TRISCCLR=0x6000;//将RD8和RD9设置为数字输出TRISCCLR=0x6000;//将RD8和RD9设置为数数字输出设置为数字输出,TRISCCLR=0xCLR=0,将RD8和RD9设置为数数字输出,PORTD位PORTDbits.RD0=0;PORTC位.RC14=0;PORTC位.RC13=0;初始化ADADADADC();//初始化ADC10 OpenTimer2 Open时间表2(T2_T2_ON|T2_ON|T2_T2_T2_SOURCE_T2_T2_T2 SOURCE_INT_T2_SOURCE_INT.|||FFF);//这个语句说:打开定时器2|让它使用一个内部时钟源|让它//使用一个1:256的预分频器,并使用0xFF的周期或2^16个周期//定时器2,如配置的那样,将触发频率(80MHZ/256/65535)的中断,或4.77//秒的次数。ConfigIntTimer2(T2_INT_ON|T2_INT_PRIOR_2);//此语句将计时器配置为产生优先级为2 INTEnableSystemMultiVectoredInt();//使用多矢量中断,而(1)//循环永远{if((THRESHOLD3+0x003E)>=Q&&Q>;(THRESHOLD3-hystyrisi)=1;DelayMs(1000);否则,((阈值H2STyRISIS)>;=q&&p&m;&gp&>;(<;HythistRISS)&>;&a2<;tim2){a2+=1;DelayMs(1000);}否则((阈值H1+HyStRISIS)>;= &&r&p&r&r>;;(阈值HyStRISISIS)&>;&a1 >;tim1){a1= 1;d;d)。s)&a&a<;a1 <;tim2){a1+{DelayMs(1000);}}}}否则如果((THRESHOLD0+hystystyrisis)>=R&_;a2&a2&a2> TIM1){a2-=1;DelayMs(1000);}}}}}否则((THTHRESHOHOHOHOLD0+1000);}}}}}}}}}}}}}}}}}否则((THTHRESHOHOHOHOHOHOLD0+hyHOLDR_2+hystystysty}}}}}}}//Timer2中断服务定时器2中断服务Routiner2ISR(_TIMER_2_2_VECTOR_TIMER_2_2计时器?S中断优先级别A= A+1;//}//此语句查看PIN RD9,并且锁存RD9与当前状态相反。//换句话说,它切换连接到RD9 mT2ClearIntFlag()的LED;//清除中断标志,以便程序返回到主循环}//END Timer2 ISR void_ISR(_ADC_VECTOR,ipl2)ADCHandler(void){//清除中断标志mAD1ClearIntFlag();Q=ReadADC10(0);R=ReadADC1(0);0(1);
|
|
相关推荐
2个回答
|
|
单片机?
|
|
|
|
另外,这里要注意R-M-W效应:PORTDbits.RD0=0;PORTDbits.RD2=0;PORTCbits.RC14=0;PORTCbits.RC13=0;使用LATx寄存器。
|
|
|
|
只有小组成员才能发言,加入小组>>
5244 浏览 9 评论
2035 浏览 8 评论
1955 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3214 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2261 浏览 5 评论
781浏览 1评论
676浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
602浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
684浏览 0评论
581浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 06:34 , Processed in 1.241187 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号