??? 08/14/05 22:31 Read: times |
#99386 - Code optimization suggestion? |
Do any of you out there know of a better way to run this code snippet in an app I've been playing with?
led_out: mov R2,#0 mov R3,#2 CJNE r0,#d'0,asc10 ret asc10: CJNE r0,#d'10,asc13 ret asc13: CJNE r0,#d'13,asc32 ret asc32: CJNE r0,#32,asc33 MOV DPTR,#ch32 ljmp ledloop asc33: CJNE r0,#33,asc34 MOV DPTR,#ch33 ljmp ledloop ... ... ... asc125: CJNE r0,#125,asc126 MOV DPTR,#ch125 ljmp ledloop asc126: CJNE r0,#126,ledret MOV DPTR,#ch126 ledloop: lcall LED_CLR mov A,R2 movc A,@A+DPTR nop mov P3,A mov A,R3 mov P1,A add A,R3 mov R3,A inc R2 JNZ ledloop ledret: ret I'm using this in a routine to display characters on a "5x7 Dot Matrix" display. I was just curious if there a way to back a simpler routine, than all those sequential commands. (i.e combination parameter like in basic you could say "goto ch$val" or something like that?) "#ch???:" on the "MOV DPTR," instruction are the bit definitions on the characters i've defined for the "Dot Matrix" displays. |
Topic | Author | Date |
Code optimization suggestion? | 01/01/70 00:00 | |
Table | 01/01/70 00:00 | |
Table? | 01/01/70 00:00 | |
Another table ... | 01/01/70 00:00 | |
CJNE | 01/01/70 00:00 | |
Everybody is saying to use a table | 01/01/70 00:00 | |
My confsion | 01/01/70 00:00 | |
two tables | 01/01/70 00:00 | |
Tables | 01/01/70 00:00 | |
sure | 01/01/70 00:00 | |
gurus don't subtract constants | 01/01/70 00:00 | |
16 bit table | 01/01/70 00:00 | |
bit table | 01/01/70 00:00 | |
Table indexing![]() | 01/01/70 00:00 |