芯片与编程

 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的中断程序。如果没有定义中断程序,则会不停地搜索,相当于一个死循环。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值