Re: ICD 2 問題
|
||||
---|---|---|---|---|
版主
|
只要記住! 連續對同一個 I/O port 動作時中間一定要加個 NOP 指令,不加就會出錯 (Read-Modify write issue)
發表於: 2005/1/31 16:39
|
|||
|
Re: ICD 2 問題
|
||||
---|---|---|---|---|
高級會員
|
應該是modify read modify write 問題
請看右邊的江湖一點訣 9.10 I/O 编程注意事项 使用端口及GPIO 作为I/O 时,为确保操作按预想的进行,需要考虑一些设计注意事项。 9.10.1 双向I/O 口 任何写操作指令实际上都是先执行一个读操作,再执行一个写操作。例如,BCF 和BSF 指令,先 读寄存器的值到CPU,然后执行位操作,最后将结果写回寄存器。当一个端口既有输入引脚又有 输出引脚时,对其的操作必须加倍小心。例如,对PORTB 的bit5 执行BSF 操作时,先将PORTB 的全部8 位数值读入CPU,然后将bit5 位置“1”,最后将PORTB 的结果写回输出锁存器。如 果另一个PORTB 的引脚是作为双向I/O 引脚(如:bit0),而且此时引脚定义为输入,则该引脚 当前的输入信号被读入CPU,然后将值重新写入该特定引脚的数据锁存器,覆盖先前的内容。只 要该引脚一直是输入模式,就毫无问题。然而,如果bit0 随后变成输出引脚,其数据锁存器的内 容已经改变而无法得知。 对端口寄存器的读操作,是读端口引脚的电平值。对端口寄存器的写操作是向端口锁存器写值。 对一个端口使用读- 修改- 写指令(如:BCF 和BSF 等)时,首先读入端口引脚的数值,然后对 读入值执行指定的操作,最后将操作结果写入端口锁存器。 例9-9 显示了对一个I/O 端口执行两个连续的读- 修改- 写指令的情况。 你應該是大陸同胞吧 所以我就不用翻成繁體字了
發表於: 2005/1/29 11:06
|
|||
|
Re: ICD 2 問題
|
||||
---|---|---|---|---|
新會員
|
是pic16f877a 來的..
發表於: 2005/1/29 10:56
|
|||
|
Re: ICD 2 問題
|
||||
---|---|---|---|---|
初級會員
|
可否說一下你用的形號(mcu)...
發表於: 2005/1/29 5:38
|
|||
|
ICD 2 問題
|
||||
---|---|---|---|---|
新會員
|
我用 ICD2 來模擬
BSF RB, 02 BSF RB, 03 喝住 RB3 出1.. 但RB2 出0 點解會這樣
發表於: 2005/1/29 4:26
|
|||
|