hallo, zeitkritische routinen kann man auch mit
dem programm "AVRdelayloop.exe" ist freeware, berechenen lassen.
man gibt z.b. die mhz an und die zeit z.b. 0,000014 (14us).
dann wird ein kleines asm programm erstellt. dieses kann man
den mit "mfile" unter "Assembler source file(s)" eintragen
und schon hat man als unterprogramm eine routine.
das programm muss die endung "S" haben z.b. "zeit.S".
kann man dann in winavr mit :
extern void zeit14_us(void);
extern void zeit890_us(void);
extern void zeit89_ms(void);
bekanntmachen und mit "zeit89_ms();" z.b. aufrufen.

ein beispiel für die "rc5-send" mit dem programm "AVRdelay" :

Code:
.global zeit14_us
.global zeit890_us
.global zeit89_ms

zeit14_us:

	ldi  R18, 0x25
WGLOOP0:  
	dec  R18
        brne WGLOOP0
	nop
        ret
		

zeit890_us:
	      
	ldi  R18, 0x0A
WGLOOP2:  
	ldi  R19, 0xEC
WGLOOP1:  
	dec  R19
        brne WGLOOP1
        dec  R18
        brne WGLOOP2
	nop
	nop
	ret
	
zeit89_ms:
	          
	ldi  R18, 0x12
WGLOOP3:  
	ldi  R19, 0x40
WGLOOP4:  
	ldi  R20, 0xCD
WGLOOP5:  
	dec  R20
        brne WGLOOP5
        dec  R19
        brne WGLOOP4
        dec  R18
        brne WGLOOP3

        ldi  R18, 0x03
WGLOOP6:  
	dec  R18
        brne WGLOOP6
	nop
	ret
.end
mfg pebisoft