几个关于PIC单片机的问题,请大家帮帮忙,谢谢

2020-02-10 08:37发布

我的编译器用的是C18,我只会用C编程,用的片子是PIC18F25K20。
问题1.如何定义一个复位不初始化的变量。
问题2.PWM输出,我要的程序运行过程中要调整脉宽(不考虑小数部分),直接写CCPR1L就可以了吗?新写入的值是不是从PWM的下一个周期输出的时候生效的,还有TMR2IF的中断标志位和这个PWM输出的有什么关系,是不是不用去考虑它。
问题3.AD采样的时候,我要切换通道,是不是只要一次转换完毕之后,直接设定通道,然后再打开AD转换就可以了。

小弟我是PIC新手,以前不用PIC的,感觉PIC不是很友好,特别是它的调试工具ICD2不好用,速度很慢,功能很弱。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
Friendz
1楼-- · 2020-02-11 00:14
我和楼上的一样。。。

CCSC 资源不如 PIC18多,因为官方的都是PIC18的。

我只会问题1, MCU启动后,从EEPROM 中读取回来即可。
mygeneralid
2楼-- · 2020-02-11 03:28
 精彩回答 2  元偷偷看……
liansh
3楼-- · 2020-02-11 03:40
1 我也不清楚
2 PR2的值就是你的PWM的周期(书上有公式算的)CCPR1L与PR2的比值就是你的占空比,所以要改变占空比就改变CCPR1L里的值就好了。
3 AD采样在通道转换后需要有一定的延迟(几十个NOP就差不多了),然后在启动AD转换(ADGO=1),稍作延迟后AD采样完成
TMR2IF是TMR2中断的标志,单纯的在PWM应用里来理解就是,你每次输出一个或几个(具体个数根据相应标志位设置)PWM的脉冲就会触发一次TMR2中断,所以如果你需要定时改变PWM的占空比,就可以在TMR2中断后改变占空比,将在下一个脉冲输出时生效。

一周热门 更多>