From a3f2e6bb36ab614639c74e6fae9aca02b3a48578 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Fri, 14 Jan 2011 16:08:28 +0100 Subject: [PATCH] progs/timer: angepasst --- progs/dt_inc.s | 29 ++++++++++++++++++++++++++++- progs/fibmmem.s | 15 +++++++++++++++ progs/testbench.s | 19 +++++++------------ 3 files changed, 50 insertions(+), 13 deletions(-) diff --git a/progs/dt_inc.s b/progs/dt_inc.s index 101ee51..d680464 100644 --- a/progs/dt_inc.s +++ b/progs/dt_inc.s @@ -31,6 +31,10 @@ int2hex: .define INT_GLOBAL_BIT, 0x01 .define INT_UART_REC_BIT, 0x02 + .define TIMER_BASE, 0x2040 + .define TIMER_STCFG, 0x0 + .define TIMER_VAL, 0x4 + u_recv_byte: ldw r3, UART_STATUS(r10) andx r3, UART_RECV_NEW @@ -102,5 +106,28 @@ sseg_displ: stw r1, 0(r2) ret -;for deepjit +t_init: + ldis r11, TIMER_BASE@lo + ldih r11, TIMER_BASE@hi + ret + +t_start: + ldis r1, 0x1 + stw r1, TIMER_STCFG(r11) + ret + +t_stop: + ldis r1, 0x0 + stw r1, TIMER_STCFG(r11) + ret + +t_valget: + ldw r0, TIMER_VAL(r11) + ret + +t_valset: + stw r1, TIMER_VAL(r11) + ret + +;for deepjit: start for programarea prog_start: diff --git a/progs/fibmmem.s b/progs/fibmmem.s index 6ec5aa1..827c8da 100644 --- a/progs/fibmmem.s +++ b/progs/fibmmem.s @@ -19,12 +19,24 @@ main: call+ u_recv_byte call u_send_newline + call t_init + ldis r1, 0 + call t_valset + call t_start + ldi r1, 9; ldi r10, list@lo ; global pointer ldih r10, list@hi call+ fibcall; push r0 + call t_init + call t_stop + call t_valget + pop r3 + push r0 + push r3 + call u_init ; weil r10 ueberschrieben wird ldis r1, str@lo ldih r1, str@hi @@ -34,6 +46,9 @@ main: pop r1 call+ u_send_uint call u_send_newline + pop r1 + call+ u_send_uint + call u_send_newline hang: br hang diff --git a/progs/testbench.s b/progs/testbench.s index b98784c..cc8b4dc 100644 --- a/progs/testbench.s +++ b/progs/testbench.s @@ -1,9 +1,6 @@ #include "dt_inc.s" .text .org 0x0 - .define TIMER_BASE, 0x2040 - .define T_STCFG, 0x0 - .define T_VAL, 0x4 start: br+ main br+ main @@ -16,22 +13,20 @@ main: ldis r1, 0x42 call u_send_byte - ldis r11, TIMER_BASE@lo - ldih r11, TIMER_BASE@hi - - ldis r1, 0x1 - stw r1, T_STCFG(r11) + call t_init + call t_start loop: call u_recv_byte cmpi r0, 0x42 - breq bla - ldw r1, T_VAL(r11) + breq reset_timer + call t_valget + addi r1, r0, 0 call u_send_uint call u_send_newline br loop -bla: +reset_timer: ldis r1, 0 - stw r1, T_VAL(r11) + call t_valset br loop -- 2.25.1