X-Git-Url: https://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=capstone.git;a=blobdiff_plain;f=src%2Fpru.S;h=25cd3c360f9186d295bbad88f1a0b47275b08715;hp=dcc5493a1395c240fede446f2a1068154bcdbba5;hb=f828c7482033b797dfb8bd9e958cf62dbdad7159;hpb=83acdb0077ae1428d48c0c11e8ef7befbf0e6355 diff --git a/src/pru.S b/src/pru.S index dcc5493..25cd3c3 100644 --- a/src/pru.S +++ b/src/pru.S @@ -27,14 +27,55 @@ #define CLOCKS_PER_LOOP 2 #define DELAYCOUNT DELAY_SECONDS * CLOCK / CLOCKS_PER_LOOP -START: - MOV r1, DELAYCOUNT -DELAY: - SUB r1, r1, 1 - QBNE DELAY, r1, 0 +#define R_PINKY 0x0 +#define R_RING 0x1 +#define R_MID 0x10 +#define R_FORE 0x11 +#define R_THUMB 0x100 +#define L_THUMB 0x101 +#define L_FORE 0x110 +#define L_MID 0x111 +#define L_RING 0x1000 +#define L_PINKY 0x1001 + +#define CYCLE 4000000 +#define WIDTH_UP 120000 +#define WIDTH_DOWN 480000 + +// MOV r1, DELAYCOUNT +// ADD r1, r1, r1 +// ADD r1, r1, r1 +// ADD r1, r1, r1 +// ADD r1, r1, r1 +//DELAY: + //SUB r1, r1, 1 + //NOT r30, r30, r30 + //QBNE DELAY, r1, 0 + +START: - /* intr */ + MOV r1, CYCLE + MOV r2, WIDTH_UP + MOV r3, WIDTH_DOWN + MOV r4, 0xffffffff + MOV r30, 0x000003ff + MOV r5, 0x00000000 +KLOOP: + QBLE DOWN, r5, r2 + QBLE KRST, r5, r1 + ADD r5, r5, 4 + JMP KLOOP +DOWN: + MOV r30, 0x00000000 + MOV r2, 0xffffffff + JMP KLOOP +KRST: + MOV r5, 0x00000000 + MOV r30, 0x000003ff + MOV r2, WIDTH_UP + JMP KLOOP +KHALT: MOV R31.b0, PRU0_R31_VEC_VALID | SIGNUM HALT