完成了计时器的实时更新。
This commit is contained in:
		
							parent
							
								
									7795b72eb6
								
							
						
					
					
						commit
						08a0e08f4d
					
				| @ -166,11 +166,15 @@ trap_dispatch(struct trapframe *tf) { | |||||||
|          */ |          */ | ||||||
|         switch (state) { |         switch (state) { | ||||||
|         case STARTED: |         case STARTED: | ||||||
|             milliseconds += mode; |             if (ticks % TICK_NUM == 0) { | ||||||
|             // 当时间倒计时到0时转成停止状态
 |                 milliseconds += mode * TICK_NUM; | ||||||
|             // 而正计时加了mode之后至少为1所以不会转换状态
 |                 // 当时间倒计时到0时转成停止状态
 | ||||||
|             // 使用小于等于0而不是等于0是为了防止万一出现异常导致小于0的情况
 |                 // 而正计时加了mode之后至少为1所以不会转换状态
 | ||||||
|             state = READY_TO_OUTPUT * (milliseconds <= 0); // 为了减少分支才写成这样
 |                 // 使用小于等于0而不是等于0是为了防止万一出现异常导致小于0的情况
 | ||||||
|  |                 state = READY_TO_OUTPUT * (milliseconds <= 0); // 为了减少分支才写成这样
 | ||||||
|  |                 // print_ticks();
 | ||||||
|  |                 cprintf("\r%d.%03d\t", milliseconds / 1000, milliseconds % 1000); | ||||||
|  |             } | ||||||
|             break; |             break; | ||||||
|         case READY_TO_OUTPUT: |         case READY_TO_OUTPUT: | ||||||
|             state = STOPPED; |             state = STOPPED; | ||||||
| @ -182,9 +186,6 @@ trap_dispatch(struct trapframe *tf) { | |||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|         ticks ++; |         ticks ++; | ||||||
|         // if (ticks % TICK_NUM == 0) {
 |  | ||||||
|         //     print_ticks();
 |  | ||||||
|         // }
 |  | ||||||
|         break; |         break; | ||||||
|     case IRQ_OFFSET + IRQ_COM1: |     case IRQ_OFFSET + IRQ_COM1: | ||||||
|         c = cons_getc(); |         c = cons_getc(); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user