系统时钟80Mhz。UART按80Mhz配置,验证是没有问题的。
系统时钟的配置如下:
#pragma config FPLLIDIV = DIV_2 // PLL Input Divider (2x Divider)
#pragma config FPLLMUL = MUL_20 // PLL Multiplier (20x Multiplier)
#pragma config FPLLODIV = DIV_1 // System PLL Output Divider
IO翻转的部分汇编为
PORTCINV = 0x2000;
9D000060 24102000 addiu s0,zero,8192
9D000068 AE30609C sw s0,24732(s1)
76: PORTCINV = 0x2000;
9D00006C AE30609C sw s0,24732(s1)
77: PORTCINV = 0x2000;
9D000070 AE30609C sw s0,24732(s1)
78: PORTCINV = 0x2000;
9D000074 AE30609C sw s0,24732(s1)
79: PORTCINV = 0x2000;
9D000078 AE30609C sw s0,24732(s1)
80: PORTCINV = 0x2000;
9D00007C AE30609C sw s0,24732(s1)
81: PORTCINV = 0x2000;
9D000080 AE30609C sw s0,24732(s1)
也就是一条指令翻转一次,怎么算都不会是5Mhz的方波输出。最关键三款MCU的结果不一样。费解。 |