Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

本实验利用Plus1 7021平台自带的HDMI显示和定时计数器功能介绍基本编程方法,涉及到中断使用, Plus1 7021系统提供4个通用的16位计数定时器timer0到timer3; 每个计数定时器都支持计数到预设值时产生相应的中断信号。

对应系统分配的中断号如下表所示

...

 

...

This experiment uses the HDMI display and timer counter function of the Plus1 7021 platform to introduce the basic programming method, which involves interrupt use. The Plus1 7021 system provides four general-purpose 16-bit count timers, timer0 to timer3. When the preset value is reached, the corresponding interrupt signal is generated by each timer。

The interrupt numbers assigned by the corresponding system are shown in the table below

 

Interrupt Number

Timer0

151

Timer1

152

Timer2

153

Timer3

154

对应的32位寄存器详细介绍,请参考我们提供的在线技术文档资料介绍, 如下:

10. General Purpose Timers

这里简单介绍相关寄存器的含义,如下表所示The corresponding 32-bit registers are described in detail, please refer to the online technical documentation provided as follows:

10. General Purpose Timers

Here is a brief introduction to the meaning of related registers, as shown in the following table:

 控制寄存器

Control Register

计数预值控制器

计数时钟预处理控制器

计数值控制器Counting controller

Counting clock preprocessing controller

Counting value controller

 

 

 

 

 

 

 

Timer0

timer0_ctrl

bit[31:16]保留Reserved

bit[15:14] :计数时钟选择 :Timer clock selection

0: 系统时钟System clock (default)

1: STC 90KHZ 时钟clock

bit13 :操作方式 :Operation method

0:单次操作0:Single operation (default)

1:重复操作1:Repeat the operation

bit12保留Reserved

bit11 :开关控制

0:关闭计数器

1:启动计数器 :Switch control

0:Turn off the counter

1:Start counter

bit[10:0] :保留 :Reserved

timer0_reload

bit[31:16]保留

bit[15:0]

16位计数预值设置

 

 

timer0_cnt

bit[31:16]保留

bit[15:0]

16位计数值

 

 

 

 

 

 

 

 

timer1

timer1_ctrl

bit[31:16]保留

bit[15:14] :计数时钟选择

0: 系统时钟(default)

1: STC 90KHZ 时钟

bit13 :操作方式

0:单次操作(default)

1:重复操作

bit12 : 保留

bit11 :开关控制

0:关闭计数器

1:启动计数器

bit[10:0] :保留

timer1_reload

bit[31:16]保留

bit[15:0]

16位计数预值设置

 

 

timer1_cnt

bit[31:16]保留

bit[15:0]

16位计数值

 

 

 

 

 

 

timer2

timer2_ctrl

bit[31:6]保留

bit[5:2] :计数时钟选择

0: 系统时钟(default)

1: STC 90KHZ 时钟

bit1 :操作方式

0:单次操作(default)

1:重复操作

bit1 : 保留

bit0 :开关控制

0:关闭计数器

1:启动计数器

timer2_reload

bit[31:16]保留

bit[15:0]

16位计数预值设置

 

timer2_pres_val

bit[31:16]保留

bit[15:0]

16位计数时钟预值设置

 

timer2_cnt

bit[31:16]保留

bit[15:0]

16位计数值

 

 

 

 

 

 

timer3

timer3_ctrl

bit[31:6]保留

bit[5:2] :计数时钟选择

0: 系统时钟(default)

1: STC 90KHZ 时钟

bit1 :操作方式

0:单次操作(default)

1:重复操作

bit1 : 保留

bit0 :开关控制

0:关闭计数器

1:启动计数器

timer3_reload

bit[31:16]保留

bit[15:0]

16位计数预值设置

 

timer3_pres_val

bit[31:16]保留

bit[15:0]

16位计数时钟预值设置

 

timer3_cnt

bit[31:16]保留

bit[15:0]

16位计数值

 

...

    unsigned int stc_config;     // 12.7

    unsignedint timer0_ctrl;    // 12.8

    unsignedint timer0_cnt;     // 12.9

    unsignedint timer1_ctrl;    // 12.10

    unsignedint timer1_cnt;     // 12.11

    unsigned int timerw_ctrl;    // 12.12

...

    unsigned int stc_63_48;      // 12.15

   unsignedint timer2_ctl;     // 12.16

    unsignedint timer2_pres_val;// 12.17

    unsignedint timer2_reload;  // 12.18

    unsignedint timer2_cnt;     // 12.19

    unsignedint timer3_ctl;     // 12.20

    unsignedint timer3_pres_val;// 12.21

    unsignedint timer3_reload;  // 12.22

    unsignedint timer3_cnt;     // 12.23

    unsigned int stcl_0;         // 12.24

...

    unsigned int atc_2;          // 12.29

    unsignedint timer0_reload;  // 12.30

    unsignedint timer1_reload;  // 12.31

};

#define STC_REG     ((volatile struct stc_regs *)RF_GRP(12, 0))

...