这几天头大。 问题是这样的,把pic16f72的程序移植到pic16f737上。 本来没什么问题,两个芯片的I/O位置都兼容,不同点是。 pic16f737 11路10位AD。 内置8M晶振。
pic16f72 5路8位AD。 内置4M晶振。
按理说我只要把寄存器初始化修改一下,还有跟 AD跟时钟有关的改一下就行了,可是问题来了。
开机我给液晶全部显示,同时蜂鸣器也跟着叫,500ms后液晶回到初始状态,蜂鸣器同时停止鸣叫。但是在16f72上调试的好好的程序到16f737上就出现问题了。
液晶是照常显示,可是声音叫的远不止500ms,至少有1s多。奇怪的是我把外部中断屏蔽掉后一切正常,我认为是开机进了外部中断(虽然我认为就算进了外部中断对声音叫的时间没什么影响),为了验证想法,我在外部中断里加了条关机语句。结果发现并没有关机。也就是说并没有进外部中断。但是奇怪了,为什么屏蔽掉外部中断就好了呢?按理说屏不屏蔽外部中断并没什么影响啊。
是不是一些配置字的设置问题,或者什么问题呢。
另外,两种版本的pwm信号跟时间片完全一致。
我软件用的是pic ccs 4.023+mplab7.60
请大家帮帮忙,这几天头搞的晕死了,谢谢大家了啊。 |