- UID
- 109919
- 性别
- 男
|
版主啊,我看这个实例程序,怎么读写信号,以及片选信号都需要自己手动设置啊?如果是这样的话,在硬件上的设计就可以不考虑时序问题了啊?通过软件自己手动把握时序啊!
这种读写扩展地址,不象51那样吗?一条指令就行了,只是执行的指令周期稍微长些啊!这个N464它的片外地址和片内地址到底是怎么分开的啊!我自己的理解应该是依靠XA15-----XA19来选择片外的啊!这样地址就分开了,片内的肯定是16位的,片外的就可定大于16位了啊!
;/**********************************************************
5;** Flash software interface
6
;*********************************************************
7;tU16 Flash_Read(tU32 address)
8;{
9;tU16 data; ;enter with addr on stack
10im.pth.byte = address>>16;
1000 [05] 180D8102 11 movb 1,sp,pth ;move A0-A7 to port H
60
12im.ptp.byte = address>>8;
1005 [05] 180D8202 13 movb 2,sp,ptp ;move A8-A15 to port P
58
14im.ptj.byte = address;
100A [05] 180D8302 15 movb 3,sp,ptj ;move A16,17 to port J
68
16; Flash_WEHI;Flash_CSLO;
100F [04] 4C0804 17 BSET porte,4 ;set r/w high
1012 [04] 4D0810 18 BCLR porte,16 ;set chip select low
19;data = (Regs.porta.word);
1015 [03] DE00 20 LDX porta ;load D0-D16
21;Flash_CSHI;
1017 [04] 4C0810 22 BSET porte,16 ;disable chip select
23
24;return (data);
101A [01] B754 25 TFR X,D ;return with data in D
26;}
101C [02] 1B83 27 LEAS 3,SP ;de-allocate stack
101E [06] 0A 28 RTC |
|