progs/timer: angepasst
authorBernhard Urban <lewurm@gmail.com>
Fri, 14 Jan 2011 15:08:28 +0000 (16:08 +0100)
committerBernhard Urban <lewurm@gmail.com>
Fri, 14 Jan 2011 15:08:28 +0000 (16:08 +0100)
progs/dt_inc.s
progs/fibmmem.s
progs/testbench.s

index 101ee51ca620f6b9b4e3d2a0b567625df182b65b..d680464490e414bc3f52f77425306556bd034287 100644 (file)
@@ -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:
index 6ec5aa13fa423c07807818712a60bbe620f222f2..827c8da43aa3586dd6bd86d0021db9ec7207f064 100644 (file)
@@ -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
index b98784cf63796e6ff563405fe50d7bd388b1dd53..cc8b4dc58ef1fb7057769e4b36cca4e5756dc266 100644 (file)
@@ -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