完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我使用DSSPICEP512MU810,我想设置计时器1 PR1。请帮助我理解如何计算PR1.我的代码:#pragma config GWRP=OFF//General Segment写保护位(可以写入GeneralSe.)#pragma config GSS=OFF//General Segment Code-Protect位(General Segment Code Protect被禁用)#pragma配置GSSK=OFF//通用段密钥位(通用段写保护和代码保护被禁用)//FOSCSEL#pragma config FNOSC=FRC//初始振荡器源选择位(内部快速RC(FRC))#pragma config IESO=OFF//双速振荡器启动启用位(与用户一起启动)选定振荡器源)//FOSC#pragma配置POSCMD=XT//主振荡器模式选择位(禁用主振荡器)#pragma配置OSCIOFNC=OFF//OSC2引脚功能位(OSC2是时钟输出)#pragma配置IOL1WAY=ON//外围引脚选择配置(仅允许一次重新配置定量)#pragma config FCKSM=CSECMD//时钟切换模式位(启用时钟切换,禁用故障安全时钟监视器)//FWDT#pragma config WDTPOST=PS32768//Watchdog timer Postscaler Bits(1:32768)#pragma config WDTPRE=PR128//Watchdog Timer Prescaler bit(1:128)#pragma config PLLKEN=ON//PLL锁定等待启用位(时钟切换到PLL源将等待直到PLL锁定信号有效)#pragma配置WINDIS=OFF//Watchdog定时器窗口启用位(非窗口模式中的Watchdog定时器)#pragma配置FWDTEN=OFF//Watchdog定时器启用位(Watchdog定时器启用/禁用)由用户软件编辑)//FPOR#pragma config FPWRT=PWR128//开机复位定时器值选择位(128ms)#pragma config BOREN=ON//Brown-out Reset(BOR)检测启用位(启用BOR)#pragma config ALTI2C1=OFF//替换I2C引脚,用于I2C1(SDA1/SCK1引脚被选择为I/O引脚)对于I2C1)#pragma配置ALTI2C2=OFF//用于I2C2的替代I2C引脚(SDA2/SCK2引脚被选择为I2C2的I/O引脚)//FICD#pragma配置ICS=PGD1//ICD通信信道选择比特(在PGEC1和PGED1上通信)#pragma配置RSTPRI=PF//复位目标矢量选择比特(设备w无法从主闪存获得重置指令#pragma配置JTAGEN=OFF//JTAG启用位(JTAG被禁用)//FAS#pragma配置AWRP=OFF//辅助段写保护位(辅助程序内存没有写保护)#pragma配置APL=OFF//辅助段代码保护位(Aux Flash Code Protection被禁用)#pragma config APLK=OFF//辅助段密钥位(辅助Flash写保护和代码保护被禁用)外部无效EnSecOsc(void);void Init_Timer1(void);int main(void){//Configure振荡器以60Mhz//Fosc=Fin*M/(N1*N2),FFosc=Fosc/2//Fosc=8M*60/(2*2)=8M输入时钟PLLFBD=588M输入时钟,8M输入时钟PLLFBD=58;//M=60CLKDIV位60CLKDIV比特60CLCLCLKDIV位60CLCLCLCLCLKDIV位,PLLPOST=0;//N1=222CLKDIV位22CLKDIV位,PLLPRE=0;//N2=2OSCTUN=0;//调谐FRC振荡器,如果FRC被使用//禁用监视狗狗定时器监视监视器计时器,调谐FRC振荡器,则调谐FRC振荡器,如果使用FRC振荡器,使用FRC//禁用监视狗定时L_builtin_write_OSCCONH(0x03);//用PLL(NOSC=0b001)_builtin_write_OSCCONL(OSCCON|0x01);//启动时钟切换到//FRC(OSCCONbits.COSC!(= 0x3);/ /等待时钟切换发生/ /等待PLL锁定(OSCCONbits.LOCK)!1){{1}}{{{{};/*设置LED0引脚作为输出*/TRISDbits.TRISD1=0;//延迟(1000);/*初始化定时器132KHz实时时钟操作32KHz实时时钟定时器1*/Init_Timer1();/*初始化定时器132KHz实时时钟操作32KHz实时时钟定时器1*/Init_Timer1(/Init_Timer1();同时(1){{{{{__};返回0)}}}}_}报无效Init_定时1{Init_Timer1(0}}无效Init_Timer1{Init_Timer1定时1(无效铁铁铁铁定时1){{T1CONTimer1中断优先级=4IEC0bit.T1IE=1;//EnableTimer1inter.PR1=0x8000;//Timer1周期寄存器=32768T1CONbits.TCS=1;//Timer1 Clock=ExternalEnSecOsc();//Enable Secondary OscT1CONbits.TON=1;//Enable Timer1并启动计数器}
|
|
相关推荐
2个回答
|
|
为什么设置它?你想从定时器1周期性中断吗?如果是,是什么时期?
|
|
|
|
如果启用中断,则还需要写入ISR,否则设备将重置。还要关闭IOL1WAY,直到您确定所有(将来)PPS设置正确。请阅读数据表部分12和设备的FRM部分11,了解如何设置定时器。三极管T1CK管脚作为时钟源,我可以看到你调用了一些函数,我假设这些函数打开了该源的次级振荡器,但我不知道频率是多少。如果应该是32768Hz,那么您已经正确地设置了PR1,用于1秒的中断。运行代码时会发生什么情况?(我猜你会因为没有ISR而被重置)你试过了代码吗?苏珊
|
|
|
|
只有小组成员才能发言,加入小组>>
5238 浏览 9 评论
2028 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3204 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
776浏览 1评论
665浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
594浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
675浏览 0评论
575浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 00:07 , Processed in 1.282642 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号