7.2.2定时器的编程 (1)主程序清单"timer..asm" .file "timer.asm" .mmregs ;54X存储器影像寄存器定义 .global main ;声明main为全局符号 .def timer iserv TIMO .set0x0024 ;定时器O定时寄存器MMR地址 PRDO .set0x0025 定时器0周期寄存器0MMR地址 ; TCRO .set0x0026 ;定时器O控制寄存器MMR地址 (SWCR .set0x002B;...见后面) TIMO VAL .set 0x1F3F ;定时0定时寄存器赋值为1F3Fh; ;(此程序没有使用) ;(十进制7999) PRDO_VAL .set 0x1F3F ;周期寄存器赋值为1F3Fh(7999) TCRO_VAL .set 0x0E69 ;控制寄存器赋值为0E69h, 0000111001101001 Efree.soft=11b,PSC=1001b,TRB=1,TSS=0,TDDR=100b
7.2.2 定时器的编程 (1)主程序清单"timer.asm" .file "timer.asm" .mmregs ;54X 存储器影像寄存器定义 .global main ;声明 main为全局符号 .def timer_iserv TIM0 .set 0x0024 ; 定时器0定时寄存器MMR地址 PRD0 .set 0x0025 ; 定时器0周期寄存器0MMR地址 TCR0 .set 0x0026 ; 定时器0控制寄存器MMR地址 (SWCR .set 0x002B ; ……见后面) TIM0_VAL .set 0x1F3F ; 定时0定时寄存器赋值为1F3Fh ; ;(此程序没有使用 ) ;(十进制7999) PRD0_VAL .set 0x1F3F ;周期寄存器赋值为1F3Fh (7999) TCR0_VAL .set 0x0E69 ; 控制寄存器赋值为0E69h, 0000 1110 0110 1001 ; 即free.soft=11b, PSC=1001b, TRB=1,TSS=0, TDDR=1001b36
9.2.2C54x的外部总线访问2.C54x外部访问的等待状态产生 2)软件等待状态发生器寄存器 软件可编程的等待状态发生器是受一个16位的软件 等待状态发生器寄存器SWWSR控制的。存储器影 像寄存器(MMR)地址为0028h。SWWSR的位结构 如图9.27所示。 15 14-12 11-9 8-6 5-3 2-0 Reserved/XPAT 1/O Data Data Program Program R R/W R/W R/W R/W RMW T XPA bit on C548,C549,C5402,C5410,and C5420 only 图9.27 SWWSR的位结构 37
2) 软件等待状态发生器寄存器 • 软件可编程的等待状态发生器是受一个16位的软件 等待状态发生器寄存器SWWSR控制的。存储器影 像寄存器(MMR)地址为0028h。SWWSR的位结构 如图9.27所示。 图9.27 SWWSR的位结构 37 9.2.2 C54x的外部总线访问 2. C54x外部访问的等待状态产生
9.2.2C54x的外部总线访问2.C54x外部访问的等待状态产生 2)软件等待状态发生器寄存器 64K的程序存储器空间和数据存储器空间都分成两块 (每块32K:8000-FFFF, 0000-7FFF)。 ·VO空间构成一块64K的空间。 0-7 ·每块空间在SWWSR中对应着3位域值时钟等待状态数 15 14-12 11-9 8-6 5-3 2-0 Reserved/XPAt 1/O Data Data Program Program R R/W RN R/W R/W 不W T XPA bit on C548,C549,C5402,C5410,and C5420 only >可扩展成8M的程序存储器空间 >XPA=1,400000-7 FFFFF, 000000-3 FFFFF 38
2) 软件等待状态发生器寄存器 • 64K的程序存储器空间和数据存储器空间都分成两块 (每块32K:8000-FFFF,0000-7FFF)。 • I/O空间构成一块64K的空间。 • 每块空间在SWWSR中对应着3位域值时钟等待状态数 Ø可扩展成8M的程序存储器空间 ØXPA=1, 400000-7FFFFF,000000-3FFFFF 38 9.2.2 C54x的外部总线访问 2. C54x外部访问的等待状态产生 0~7
9.2.2C54x的外部总线访问2.C54x外部访问的等待状态产生 ·软件等待状态控制寄存器 软件可编程的等待状态的控制还受一个16位的软件 等待状态控制寄存器SWCR控制。存储器影像寄存 器(MMR)地址为002Bh。SWCR的位结构如图所示。 ·SWSM为1时,SWWSR中得等待状态数将被乘以2, 这样等待的最大状态数将成为14个CLKOUT。 15 0 Reserved SWSM >图9.28SWCR的位结构 山东大学生物医学工程刘忠国 39
• 软件等待状态控制寄存器 • 软件可编程的等待状态的控制还受一个16位的软件 等待状态控制寄存器SWCR控制。存储器影像寄存 器(MMR)地址为002Bh。SWCR的位结构如图所示。 • SWSM为1时,SWWSR中得等待状态数将被乘以2, 这样等待的最大状态数将成为14个CLKOUT。 Ø图9.28 SWCR的位结构 山东大学生物医学工程刘忠国 39 9.2.2 C54x的外部总线访问 2. C54x外部访问的等待状态产生
7.2.2定时器的编程 (1)主程序清单"timer..asm" SWWSR.set 0x0028 software wait-state register SWWSR_VAL .set 0x36DB (0011011011011011b) (见第8章281页) 空间都插入了3个等待周期 SWCR .set 0x002B 软件等待状态控制寄存器 SWCR VAL .set 0x0001 三个空间都插入的3个等待周期 ; (见第8章281-282页) 都乘以2 TINTO ENBL .set 0x0008 ;开放TIMERO中断 CLKMD .set0x0058 ;锁相环PLL软件控制时钟方式 (见第8章271-273页) ;寄存器MMR地址 PLLX5 .set 0x43EF ;锁相环PLL软件控制的时钟方式 ;寄存器CLKMD的设置字: ;0100001111101111,外部时钟16MHz,5倍频到80MHz ;稳定时间PLLCOUNT=125周期 山东大学生物医学工程刘忠国 40
7.2.2 定时器的编程 (1)主程序清单"timer.asm" ;SWWSR .set 0x0028 ;software wait-state register SWWSR_VAL .set 0x36DB ; (0011011011011011b)三个 空间都插入了3个等待周期 SWCR .set 0x002B ; 软件等待状态控制寄存器 SWCR_VAL .set 0x0001 ; 三个空间都插入的3个等待周期 都乘以2 TINT0_ENBL .set 0x0008 ;开放TIMER0中断 CLKMD .set 0x0058 ;锁相环PLL软件控制时钟方式 ;寄存器MMR地址 PLLX5 .set 0x43EF ;锁相环PLL软件控制的时钟方式 ;寄存器CLKMD的设置字: ; 0100 0011 1110 1111,外部时钟16MHz, 5倍频到80MHz ;稳定时间PLLCOUNT=125周期 (见第8章281页) (见第8章271-273页) (见第8章281-282页) 山东大学生物医学工程刘忠国 40