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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/28/07 08:42
Read: times


 
#131616 - They are timing loops
Responding to: ???'s previous message
The comments tell you:
putc	CLR	TXD		;Drop line for start bit
	MOV	R0,#BITTIM	;Wait full bit-time
	DJNZ	R0,*		;For START bit

As Jan has suggested, '*' is probably supposed to be an assembler symbol that means "address of first byte of this instruction" - so that could could equally be written:

putc	CLR	TXD		;Drop line for start bit

	MOV	R0,#BITTIM	;Wait full bit-time
loop	DJNZ	R0,loop		;For START bit

You need to read the appropriate assembler Manual to check what the '*' symbol means to this particular assembler.

You probably also need to read-up on what the DJNZ instruction does to understand how this forms a delay loop:

"the bible" Chapter 2 - 80C51 Family Programmer's Guide and Instruction Set:
http://www.nxp.com/acrobat_d...UIDE_1.pdf

List of 16 messages in thread
TopicAuthorDate
Bitbanging help needed            01/01/70 00:00      
   Because they mistyped $            01/01/70 00:00      
      or use assembler with different syntax            01/01/70 00:00      
      Re: Because they mistyped $            01/01/70 00:00      
         That's not what Jan said            01/01/70 00:00      
   The bit banging file            01/01/70 00:00      
      RE: Bitbanging            01/01/70 00:00      
         They are timing loops            01/01/70 00:00      
   they used * for a reason            01/01/70 00:00      
   RE:Bit banging help            01/01/70 00:00      
      Code for bitbanging(Modified)            01/01/70 00:00      
         testing two unknowns            01/01/70 00:00      
         A hint            01/01/70 00:00      
         Another hint            01/01/70 00:00      
      Simulate!            01/01/70 00:00      
   cross posted            01/01/70 00:00      

Back to Subject List