Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Stefan Kanev
01/06/12 13:05
Read: 400 times
Silistra
Bulgaria


 
#185356 - yes
Responding to: ???'s previous message
its simple, will be fast, its easy to read - what more ?
(There is error on last line MOV MESS_1,A is true, MOV A,MESS_1 is wrong

When one is learning language it is very good to learn on real task,
in this case fast results are main aim( consciously or not).
But...
take a moment to learn something additional (its free :-).

One disadvantage in Your code is RAM usage - 8 bytes instead 16 bits.
Below is my proposal- probably it is with more lines(compared to Your code),
probably will be slower, but uses 2 bytes instead 8 bytes.
In Your code some program's segment will load 8 muxer bytes with 2 bits values.
Then other fragment will call Your code to form MESS_1,MESS_2 . My code uses only MEAS_1 ,MEAS_2. Any change in muxer settings is stored in ready to use MEAS_1,MEAS_2 bytes. Code can be extended to allow muxer settings reading.

I wrote , but not tested,
can be wrong, search for errors.


;Inputs: MUX_1, MUX_2, MUX_3, MUX_4, MUX_5, MUX_6, MUX_7, MUX_8
;Outputs: MESS_1, MESS_2

;;;MESS_1 DATA 0x10   ???? this is in bank2 ???
;;;MESS_2 DATA 0x11    ???? this is in bank2 ???
; MUX_1 through 8 will all each contain a value from RES_1 through RES_4
;;;;MUX_1 DATA 0x20;
;;;;.....
;;;;MUX_8 DATA 0x27
;8 bytes instead 16 bits ????


MUX_1byte DATA 100 ;or 0x20 , but manipulating as single bits is not needed ;in this  task (as i assume)
MUX_2byte DATA 101

RES_1 EQU 0x00
;...
RES_4 EQU 0x03



SETMUX1_8byR2R3:  ;R2 is mux numberr 1..8  ,r3 is value res_1..res_4 (0..3)
        
               mov a,r2
               jz SETMUX1_8byR2R3fail
               clr c
               subb a,#9
               jnc SETMUX1_8byR2R3fail
               ;here we are sure mux number is in allowed margins 1..8

              mov a,r3
              anl a,#3 ;2 bits for muxer , see RES_1,RES4
              mov r3,a

              mov a,r2 ;mux number 1..8
              dec a
              ;divide by 4 , ;four muxers in one byte 
              rr a 
              rr a 
              anl a,#1 

              add a,#MUX_1byte
              mov r0,a
              mov a,r2

              mov r4,#3 ;help byte

setmux1_8_r3prepare:
              dec a 
              anl a,#3 
              jz setmux1_8_r3ready
              xch a,r3
              rl a
              rl a
              xch a,r3             
              push a
              mov a,r4
              rl a
              rl a
              mov r4,a       
              pop a
              jmp setmux1_8_r3prepare   
setmux1_8_r3ready:
              mov a,r4
              xrl a,#0ffh
              anl a,@r0
              orl a,r3
              mov @r0,a
              mov a,#0ffh ; ok result
              ret

 SETMUX1_8byR2R3fail:
             clr a ;error result
             ret

 



List of 40 messages in thread
TopicAuthorDate
Assembly coding micro-converters      Donagh Choghlan      01/04/12 09:43      
   Code indented      Donagh Choghlan      01/04/12 09:56      
      Assemblers often have different syntax      David Prentice      01/04/12 10:14      
         Assembler      Donagh Choghlan      01/04/12 10:29      
            Why not use Keil A51 ?      David Prentice      01/04/12 10:38      
               why assembler?      Stefan KAnev      01/04/12 11:05      
                  Libraries?!?!?      Donagh Choghlan      01/05/12 02:46      
                     Libraries good, but not always best      Per Westermark      01/05/12 03:21      
                        Ok back to Data and Bit      Donagh Choghlan      01/05/12 04:34      
                           Manual      Donagh Choghlan      01/05/12 05:02      
                           ok back      Stefan KAnev      01/05/12 08:14      
                              I C      Donagh Choghlan      01/05/12 08:34      
               Keil A51      Donagh Choghlan      01/05/12 02:41      
                  junk downloaders        Erik Malund      01/05/12 05:57      
                  take a look at ASEM51      Richard Erlacher      01/05/12 08:22      
                     asem-51 macros      Donagh Choghlan      01/06/12 08:43      
                        You don't have to use 'em      Richard Erlacher      01/06/12 21:17      
                  re-think about tools      Stefan KAnev      01/06/12 14:08      
                     ADuC842      Donagh Choghlan      01/09/12 08:47      
                        learn      Stefan KAnev      01/09/12 14:46      
                           There are PLENTY of debuggers ...      Richard Erlacher      01/09/12 20:28      
                              Documentation      Donagh Choghlan      01/10/12 05:30      
                                 interrupt vectors      Stefan KAnev      01/10/12 06:41      
                                 Memo to Reinhard Keil      Erik Malund      01/10/12 07:56      
                                 Keil docs are not bad.      David Prentice      01/10/12 08:00      
                                 Well ... Last time I had questions about ASEM51 ...      Richard Erlacher      01/10/12 21:36      
                                    the good and the bad      Erik Malund      01/11/12 05:50      
                                       Well, I must have mistyped      Richard Erlacher      01/11/12 13:29      
                                          asem/asm      Robert Revens      01/11/12 16:43      
                                          linker support?      Maarten Brock      01/12/12 00:18      
                                             it's provided by ASEM-51, I suppose      Richard Erlacher      01/12/12 22:22      
   Ok back to the task at hand      Donagh Choghlan      01/05/12 08:26      
      make it easy for yourself      Erik Malund      01/05/12 09:09      
         Iím afraid the hard ware is non negotiable      Donagh Choghlan      01/05/12 09:26      
            well, ....      Erik Malund      01/05/12 09:46      
               Dinosours, I2Cs, Gang-bang???      Donagh Choghlan      01/05/12 10:19      
                  1st      Stefan KAnev      01/05/12 11:15      
                     Simple approach      Donagh Choghlan      01/06/12 04:59      
                        yes      Stefan KAnev      01/06/12 13:05      
                           For Free :-)      Donagh Choghlan      01/09/12 09:05      

Back to Subject List