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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
01/05/12 08:26
Read: 449 times

#185320 - Ok back to the task at hand
Responding to: ???'s previous message
OK Iím using ASM51 cross assembler from metalink and writing code for a control problem.

For my task I must use I2C to send control bytes to two different addresses. I have no problem with doing this but where it gets tricky is that I have to break up these two bytes into 2 bit sections to control individual dual input multiplexors.
So for each of the 8 multiplexors I have 4 outputs each of which can be selected to switch on one at a time using my 2 bit input.
My first attempt at this resulted in me being only able to control two multiplexors at a time, one for address 1 and the other in address 2.
The problem was that when I built my control byte I used the 2 bit mux input and then shifted it to the mux position where I wanted to make my change so it looked like -> 00000011 and then shifted -> 00110000
So this way if my previous message looked like -> 00001100, I lose my original setting.

What I really need is to be able to update my message with the two new bits that are needed.

Is it possible to set up the code so I can change only 2 bits of a byte at a time

Here is what I was thinking of doing

MESSAGE	DATA	0x50		; byte containing previous message
MUX_BIT_NO	DATA	0x51		; byte containing the position of the first bit to be changed

BIT_1		BIT	0x08		; first of 2 bit change
BIT_2		BIT	BIT_1+1	; second of 2 bit change
MOV	A, MESSAGE			; reload the old message into ACC
MOV	A.MUX_BIT_NO, BIT_1		; change first bit
MOV	A.MUX_BIT_NO+1, BIT_2	; change second bit
MOV MESSAGE, A			; save new message

Let me know if you think that this might work, or if there is an easier way to solve the problem


List of 40 messages in thread
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