PIC16F716及ARM2114:
· 定义为输入的端口不要直接去写,定义为输出的端口不要直接去读。PIC16F716可先改变输入输出方向,再进行相符的读或写操作。要读一个定义为输出的ARM2114引脚,可用IOxSET代替IOxPIN。
所有:
· 用代码来产生时序,模拟数据发送或接收时,要禁用中断,防止在执行数据发送或接收过程中被其它中断程序打断。
=============================================================
ARM2114
· 打开VICIntEnable中断允许位时,会自动运行一次中断程序。如果定义外部中断,且是电平触发模式,打开中断时,其电平状态为中断触发状态,则会一直执行中断程序,不会再执行其它代码。显然,其后的改变输入电平的代码不会被执行,只能考虑外部电平控制或不需要执行代码的方式来改变输入电平。外部中断未设置完成时,不能接入触发电平,否则程序会被卡住。原因不明。好像设置外部中断到外部信号输入要等待一段时间。外部中断低电平触发,先向外部中断引脚发送低电平,设置外部中断后,延时5秒,再发送PWM,仍然不能正确运行。将信号线拔掉1秒再接上去,程序又能响应。也有可能是产生中断信号的PWM太快了。经证实,需要一个解除状态。应该是电路方面的问题所致。用试波器测试时出现一个奇怪波形。
· 烧写芯片时,要注意ISP,TXD0和RXD0的正确跳线.
=============================================================
PIC16F716
· 改变TMR0,TMR1H,TMR1L的值,不会改变预分频比,但会清零预分频器。2008.1.10
· 如果TMR0 寄存器被写入,则在随后的两个指令周期中禁止递增计数。用户可以通过写一个调整值到 TMR0 寄存器来避开这一点。
=============================================================
PIC12F629
1) Timer0 和 Timer1 同时使用时会出现相互影响。
2) 080605实验发现,同时将两个定时器设置为50us定时输出翻转电平,Timer0输出+45us,-99us脉冲波形,Timer1输出+29us,-115us脉冲波形;仅用Timer0时,输出+65us,-63us的脉冲信号;仅用Timer1时,输出+73us,-71us脉冲波形。
3) Timer1的TMR1IE位置位时,会产生中断。随后,芯片自动搜索Timer1的中断程序。如果没有定义中断程序,则会不停地搜索,相当于一个死循环。