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" :
mfg pebisoftCode:.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







Zitieren

Lesezeichen