⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lss

📁 Working with DS1820 temperature sensor on SAM7 mC. Watch for timings!
💻 LSS
📖 第 1 页 / 共 3 页
字号:
  100164:	e3a0332a 	mov	r3, #-1476395008	; 0xa8000000  100168:	e1a03ac3 	mov	r3, r3, asr #21  10016c:	e3a02902 	mov	r2, #32768	; 0x8000  100170:	e5832004 	str	r2, [r3, #4]
	//* Set MCK at 47 923 200
    // 1 Enabling the Main Oscillator:
        // SCK = 1/32768 = 30.51 uSecond
    	// Start up time = 8 * 6 / SCK = 56 * 30.51 = 1,46484375 ms
       //// mt pPMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x06 <<8) | AT91C_CKGR_MOSCEN ));
	   pPMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x06 <<8) ) | AT91C_CKGR_MOSCEN );
  100174:	e51b2010 	ldr	r2, [fp, #-16]  100178:	e3a03c06 	mov	r3, #1536	; 0x600  10017c:	e2833001 	add	r3, r3, #1	; 0x1  100180:	e5823020 	str	r3, [r2, #32]        // Wait the startup time
        while(!(pPMC->PMC_SR & AT91C_PMC_MOSCS));
  100184:	e51b3010 	ldr	r3, [fp, #-16]  100188:	e5933068 	ldr	r3, [r3, #104]  10018c:	e2033001 	and	r3, r3, #1	; 0x1  100190:	e3530000 	cmp	r3, #0	; 0x0  100194:	0afffffa 	beq	100184 <AT91F_LowLevelInit+0x48>	// 2 Checking the Main Oscillator Frequency (Optional)
	// 3 Setting PLL and divider:
		// - div by 14 Fin = 1.3165 =(18,432 / 14)
		// - Mul 72+1: Fout =	96.1097 =(3,6864 *73)
		// for 96 MHz the erroe is 0.11%
		// Field out NOT USED = 0
		// PLLCOUNT pll startup time estimate at : 0.844 ms
		// PLLCOUNT 28 = 0.000844 /(1/32768)
       pPMC->PMC_PLLR = ((AT91C_CKGR_DIV & 14 ) |
  100198:	e51b2010 	ldr	r2, [fp, #-16]  10019c:	e3a03712 	mov	r3, #4718592	; 0x480000  1001a0:	e2833b07 	add	r3, r3, #7168	; 0x1c00  1001a4:	e283300e 	add	r3, r3, #14	; 0xe  1001a8:	e582302c 	str	r3, [r2, #44]                         (AT91C_CKGR_PLLCOUNT & (28<<8)) |
                         (AT91C_CKGR_MUL & (72<<16)));


        // Wait the startup time
        while(!(pPMC->PMC_SR & AT91C_PMC_LOCK));
  1001ac:	e51b3010 	ldr	r3, [fp, #-16]  1001b0:	e5933068 	ldr	r3, [r3, #104]  1001b4:	e1a03123 	mov	r3, r3, lsr #2  1001b8:	e2033001 	and	r3, r3, #1	; 0x1  1001bc:	e3530000 	cmp	r3, #0	; 0x0  1001c0:	0afffff9 	beq	1001ac <AT91F_LowLevelInit+0x70>        while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
  1001c4:	e51b3010 	ldr	r3, [fp, #-16]  1001c8:	e5933068 	ldr	r3, [r3, #104]  1001cc:	e1a031a3 	mov	r3, r3, lsr #3  1001d0:	e2033001 	and	r3, r3, #1	; 0x1  1001d4:	e3530000 	cmp	r3, #0	; 0x0  1001d8:	0afffff9 	beq	1001c4 <AT91F_LowLevelInit+0x88> 	// 4. Selection of Master Clock and Processor Clock
 	// select the PLL clock divided by 2
 	    pPMC->PMC_MCKR =  AT91C_PMC_PRES_CLK_2 ;
  1001dc:	e51b2010 	ldr	r2, [fp, #-16]  1001e0:	e3a03004 	mov	r3, #4	; 0x4  1001e4:	e5823030 	str	r3, [r2, #48] 	    while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
  1001e8:	e51b3010 	ldr	r3, [fp, #-16]  1001ec:	e5933068 	ldr	r3, [r3, #104]  1001f0:	e1a031a3 	mov	r3, r3, lsr #3  1001f4:	e2033001 	and	r3, r3, #1	; 0x1  1001f8:	e3530000 	cmp	r3, #0	; 0x0  1001fc:	0afffff9 	beq	1001e8 <AT91F_LowLevelInit+0xac>
 	    pPMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK  ;
  100200:	e51b3010 	ldr	r3, [fp, #-16]  100204:	e5933030 	ldr	r3, [r3, #48]  100208:	e3832003 	orr	r2, r3, #3	; 0x3  10020c:	e51b3010 	ldr	r3, [fp, #-16]  100210:	e5832030 	str	r2, [r3, #48] 	    while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
  100214:	e51b3010 	ldr	r3, [fp, #-16]  100218:	e5933068 	ldr	r3, [r3, #104]  10021c:	e1a031a3 	mov	r3, r3, lsr #3  100220:	e2033001 	and	r3, r3, #1	; 0x1  100224:	e3530000 	cmp	r3, #0	; 0x0  100228:	0afffff9 	beq	100214 <AT91F_LowLevelInit+0xd8>
	// Set up the default interrupts handler vectors
	AT91C_BASE_AIC->AIC_SVR[0] = (int) AT91F_Default_FIQ_handler ;
  10022c:	e3a03102 	mov	r3, #-2147483648	; 0x80000000  100230:	e1a039c3 	mov	r3, r3, asr #19  100234:	e59f2068 	ldr	r2, [pc, #104]	; 1002a4 <.text+0x2a4>  100238:	e5832080 	str	r2, [r3, #128]	for (i=1;i < 31; i++)
  10023c:	e3a03001 	mov	r3, #1	; 0x1  100240:	e50b3014 	str	r3, [fp, #-20]  100244:	ea00000c 	b	10027c <AT91F_LowLevelInit+0x140>	{
	    AT91C_BASE_AIC->AIC_SVR[i] = (int) AT91F_Default_IRQ_handler ;
  100248:	e3a02102 	mov	r2, #-2147483648	; 0x80000000  10024c:	e1a029c2 	mov	r2, r2, asr #19  100250:	e51b0014 	ldr	r0, [fp, #-20]  100254:	e59f304c 	ldr	r3, [pc, #76]	; 1002a8 <.text+0x2a8>  100258:	e1a0c003 	mov	ip, r3  10025c:	e3a01080 	mov	r1, #128	; 0x80  100260:	e1a03100 	mov	r3, r0, lsl #2  100264:	e0833002 	add	r3, r3, r2  100268:	e0833001 	add	r3, r3, r1  10026c:	e583c000 	str	ip, [r3]  100270:	e51b3014 	ldr	r3, [fp, #-20]  100274:	e2833001 	add	r3, r3, #1	; 0x1  100278:	e50b3014 	str	r3, [fp, #-20]  10027c:	e51b3014 	ldr	r3, [fp, #-20]  100280:	e353001e 	cmp	r3, #30	; 0x1e  100284:	daffffef 	ble	100248 <AT91F_LowLevelInit+0x10c>	}
	AT91C_BASE_AIC->AIC_SPU  = (int) AT91F_Spurious_handler ;
  100288:	e3a03102 	mov	r3, #-2147483648	; 0x80000000  10028c:	e1a039c3 	mov	r3, r3, asr #19  100290:	e59f2014 	ldr	r2, [pc, #20]	; 1002ac <.text+0x2ac>  100294:	e5832134 	str	r2, [r3, #308]
}
  100298:	e24bd00c 	sub	sp, fp, #12	; 0xc  10029c:	e89d6800 	ldmia	sp, {fp, sp, lr}  1002a0:	e12fff1e 	bx	lr  1002a4:	0010010c 	andeqs	r0, r0, ip, lsl #2  1002a8:	00100110 	andeqs	r0, r0, r0, lsl r1  1002ac:	00100114 	andeqs	r0, r0, r4, lsl r1001002b0 <main>:#include "include/includes.h"


int main (void){	
  1002b0:	b580      	push	{r7, lr}  1002b2:	466f      	mov	r7, sp	LCDInit();
  1002b4:	f948f000 	bl	100548 <LCDInit>		
    while (1) {
		
		DS1820_ReadOut();
  1002b8:	ffe2f000 	bl	101280 <DS1820_ReadOut>		lcdprintf("\nHI");
  1002bc:	4b02      	ldr	r3, [pc, #8]	(1002c8 <.text+0x2c8>)  1002be:	1c18      	mov	r0, r3		(add r0, r3, #0)  1002c0:	fcccf000 	bl	100c5c <lcdprintf>		
    }  	
  1002c4:	e7f8      	b	1002b8 <main+0x8>  1002c6:	0000      	lsl	r0, r0, #0  1002c8:	1ac4      	sub	r4, r0, r3  1002ca:	0010      	lsl	r0, r2, #0001002cc <ITOA>:#include "include/includes.h"

void ITOA(long n, char r[]) {
  1002cc:	b590      	push	{r4, r7, lr}  1002ce:	466f      	mov	r7, sp  1002d0:	b089      	sub	sp, #36  1002d2:	1c3b      	mov	r3, r7		(add r3, r7, #0)  1002d4:	3b20      	sub	r3, #32  1002d6:	6018      	str	r0, [r3, #0]  1002d8:	1c3b      	mov	r3, r7		(add r3, r7, #0)  1002da:	3b24      	sub	r3, #36  1002dc:	6019      	str	r1, [r3, #0]	int i=0;
  1002de:	1c3a      	mov	r2, r7		(add r2, r7, #0)  1002e0:	3a10      	sub	r2, #16  1002e2:	2300      	mov	r3, #0  1002e4:	6013      	str	r3, [r2, #0]	int j=0;
  1002e6:	1c3a      	mov	r2, r7		(add r2, r7, #0)  1002e8:	3a0c      	sub	r2, #12  1002ea:	2300      	mov	r3, #0  1002ec:	6013      	str	r3, [r2, #0]	int c=0;
  1002ee:	1c3a      	mov	r2, r7		(add r2, r7, #0)  1002f0:	3a08      	sub	r2, #8  1002f2:	2300      	mov	r3, #0  1002f4:	6013      	str	r3, [r2, #0]	int sign = 0;
  1002f6:	1f3a      	sub	r2, r7, #4  1002f8:	2300      	mov	r3, #0  1002fa:	6013      	str	r3, [r2, #0]	char s[10];
	

if ((sign = n) < 0)   /* RECORD SIGN */
  1002fc:	1f3a      	sub	r2, r7, #4  1002fe:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100300:	3b20      	sub	r3, #32  100302:	681b      	ldr	r3, [r3, #0]  100304:	6013      	str	r3, [r2, #0]  100306:	1f3b      	sub	r3, r7, #4  100308:	681b      	ldr	r3, [r3, #0]  10030a:	2b00      	cmp	r3, #0  10030c:	da06      	bge	10031c <ITOA+0x50> 	n = -n;     /* MAKE N POSITIVE */
  10030e:	1c3a      	mov	r2, r7		(add r2, r7, #0)  100310:	3a20      	sub	r2, #32  100312:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100314:	3b20      	sub	r3, #32  100316:	681b      	ldr	r3, [r3, #0]  100318:	425b      	neg	r3, r3  10031a:	6013      	str	r3, [r2, #0]
	i = 0;
  10031c:	1c3a      	mov	r2, r7		(add r2, r7, #0)  10031e:	3a10      	sub	r2, #16  100320:	2300      	mov	r3, #0  100322:	6013      	str	r3, [r2, #0]do {    /* GENERATE DIGITS IN REVERSE ORDER */
	s[i++] = n % 10 + '0'; /* GET NEXT DIGIT */
  100324:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100326:	3b10      	sub	r3, #16  100328:	681c      	ldr	r4, [r3, #0]  10032a:	1c3b      	mov	r3, r7		(add r3, r7, #0)  10032c:	3b20      	sub	r3, #32  10032e:	681b      	ldr	r3, [r3, #0]  100330:	1c18      	mov	r0, r3		(add r0, r3, #0)  100332:	210a      	mov	r1, #10  100334:	fb58f001 	bl	1019e8 <__modsi3>  100338:	1c03      	mov	r3, r0		(add r3, r0, #0)  10033a:	061b      	lsl	r3, r3, #24  10033c:	0e1b      	lsr	r3, r3, #24  10033e:	3330      	add	r3, #48  100340:	061b      	lsl	r3, r3, #24  100342:	0e1b      	lsr	r3, r3, #24  100344:	061b      	lsl	r3, r3, #24  100346:	0e1b      	lsr	r3, r3, #24  100348:	1c3a      	mov	r2, r7		(add r2, r7, #0)  10034a:	3a1a      	sub	r2, #26  10034c:	5513      	strb	r3, [r2, r4]  10034e:	1c3a      	mov	r2, r7		(add r2, r7, #0)  100350:	3a10      	sub	r2, #16  100352:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100354:	3b10      	sub	r3, #16  100356:	681b      	ldr	r3, [r3, #0]  100358:	3301      	add	r3, #1  10035a:	6013      	str	r3, [r2, #0]}   while ((n /=10) > 0); /* DELETE IT */
  10035c:	1c3c      	mov	r4, r7		(add r4, r7, #0)  10035e:	3c20      	sub	r4, #32  100360:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100362:	3b20      	sub	r3, #32  100364:	681b      	ldr	r3, [r3, #0]  100366:	1c18      	mov	r0, r3		(add r0, r3, #0)  100368:	210a      	mov	r1, #10  10036a:	fa87f001 	bl	10187c <__divsi3>  10036e:	1c03      	mov	r3, r0		(add r3, r0, #0)  100370:	6023      	str	r3, [r4, #0]  100372:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100374:	3b20      	sub	r3, #32  100376:	681b      	ldr	r3, [r3, #0]  100378:	2b00      	cmp	r3, #0  10037a:	dcd3      	bgt	100324 <ITOA+0x58>if (sign < 0)
  10037c:	1f3b      	sub	r3, r7, #4  10037e:	681b      	ldr	r3, [r3, #0]  100380:	2b00      	cmp	r3, #0  100382:	da0d      	bge	1003a0 <ITOA+0xd4>	s[i++] = '-';
  100384:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100386:	3b10      	sub	r3, #16  100388:	6819      	ldr	r1, [r3, #0]  10038a:	1c3a      	mov	r2, r7		(add r2, r7, #0)  10038c:	3a1a      	sub	r2, #26  10038e:	232d      	mov	r3, #45  100390:	5453      	strb	r3, [r2, r1]  100392:	1c3a      	mov	r2, r7		(add r2, r7, #0)  100394:	3a10      	sub	r2, #16  100396:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100398:	3b10      	sub	r3, #16  10039a:	681b      	ldr	r3, [r3, #0]  10039c:	3301      	add	r3, #1  10039e:	6013      	str	r3, [r2, #0]	s[i] = '\0';
  1003a0:	1c3b      	mov	r3, r7		(add r3, r7, #0)  1003a2:	3b10      	sub	r3, #16  1003a4:	6819      	ldr	r1, [r3, #0]  1003a6:	1c3a      	mov	r2, r7		(add r2, r7, #0)  1003a8:	3a1a      	sub	r2, #26  1003aa:	2300      	mov	r3, #0  1003ac:	5453      	strb	r3, [r2, r1]	c = i;
  1003ae:	1c3a      	mov	r2, r7		(add r2, r7, #0)  1003b0:	3a08      	sub	r2, #8  1003b2:	1c3b      	mov	r3, r7		(add r3, r7, #0)  1003b4:	3b10      	sub	r3, #16  1003b6:	681b      	ldr	r3, [r3, #0]  1003b8:	6013      	str	r3, [r2, #0]
	j=0;
  1003ba:	1c3a      	mov	r2, r7		(add r2, r7, #0)  1003bc:	3a0c      	sub	r2, #12  1003be:	2300      	mov	r3, #0  1003c0:	6013      	str	r3, [r2, #0]for (i = c-1; i >= 0; i-- ) {
  1003c2:	1c3a      	mov	r2, r7		(add r2, r7, #0)  1003c4:	3a10      	sub	r2, #16  1003c6:	1c3b      	mov	r3, r7		(add r3, r7, #0)  1003c8:	3b08      	sub	r3, #8  1003ca:	681b      	ldr	r3, [r3, #0]  1003cc:	3b01      	sub	r3, #1  1003ce:	6013      	str	r3, [r2, #0]  1003d0:	e01c      	b	10040c <ITOA+0x140>	r[j] = s[i];
  1003d2:	1c3b      	mov	r3, r7		(add r3, r7, #0)  1003d4:	3b0c      	sub	r3, #12  1003d6:	681b      	ldr	r3, [r3, #0]  1003d8:	1c1a      	mov	r2, r3		(add r2, r3, #0)  1003da:	1c3b      	mov	r3, r7		(add r3, r7, #0)  1003dc:	3b24      	sub	r3, #36  1003de:	681b      	ldr	r3, [r3, #0]  1003e0:	18d1      	add	r1, r2, r3  1003e2:	1c3b      	mov	r3, r7		(add r3, r7, #0)  1003e4:	3b10      	sub	r3, #16  1003e6:	681a      	ldr	r2, [r3, #0]  1003e8:	1c3b      	mov	r3, r7		(add r3, r7, #0)  1003ea:	3b1a      	sub	r3, #26  1003ec:	5c9b      	ldrb	r3, [r3, r2]  1003ee:	700b      	strb	r3, [r1, #0]	j++; 
  1003f0:	1c3a      	mov	r2, r7		(add r2, r7, #0)  1003f2:	3a0c      	sub	r2, #12  1003f4:	1c3b      	mov	r3, r7		(add r3, r7, #0)  1003f6:	3b0c      	sub	r3, #12  1003f8:	681b      	ldr	r3, [r3, #0]  1003fa:	3301      	add	r3, #1  1003fc:	6013      	str	r3, [r2, #0]  1003fe:	1c3a      	mov	r2, r7		(add r2, r7, #0)  100400:	3a10      	sub	r2, #16  100402:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100404:	3b10      	sub	r3, #16  100406:	681b      	ldr	r3, [r3, #0]  100408:	3b01      	sub	r3, #1  10040a:	6013      	str	r3, [r2, #0]  10040c:	1c3b      	mov	r3, r7		(add r3, r7, #0)  10040e:	3b10      	sub	r3, #16  100410:	681b      	ldr	r3, [r3, #0]  100412:	2b00      	cmp	r3, #0  100414:	dadd      	bge	1003d2 <ITOA+0x106>}
return;
}
  100416:	46bd      	mov	sp, r7  100418:	bc90      	pop	{r4, r7}  10041a:	bc01      	pop	{r0}  10041c:	4700      	bx	r0	...00100420 <delay>:
void delay(unsigned long ms) {
  100420:	b580      	push	{r7, lr}  100422:	466f      	mov	r7, sp  100424:	b082      	sub	sp, #8  100426:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100428:	3b08      	sub	r3, #8  10042a:	6018      	str	r0, [r3, #0]		unsigned long	j;
		
		for (j = 2825*ms; j != 0; j-- );		
  10042c:	1f39      	sub	r1, r7, #4  10042e:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100430:	3b08      	sub	r3, #8  100432:	681a      	ldr	r2, [r3, #0]  100434:	4b08      	ldr	r3, [pc, #32]	(100458 <.text+0x458>)  100436:	4353      	mul	r3, r2  100438:	600b      	str	r3, [r1, #0]  10043a:	e004      	b	100446 <delay+0x26>  10043c:	1f3a      	sub	r2, r7, #4  10043e:	1f3b      	sub	r3, r7, #4  100440:	681b      	ldr	r3, [r3, #0]  100442:	3b01      	sub	r3, #1  100444:	6013      	str	r3, [r2, #0]  100446:	1f3b      	sub	r3, r7, #4  100448:	681b      	ldr	r3, [r3, #0]  10044a:	2b00      	cmp	r3, #0  10044c:	d1f6      	bne	10043c <delay+0x1c>};
  10044e:	46bd      	mov	sp, r7  100450:	bc80      	pop	{r7}  100452:	bc01      	pop	{r0}  100454:	4700      	bx	r0  100456:	0000      	lsl	r0, r0, #0  100458:	0b09      	lsr	r1, r1, #12	...0010045c <undelay>:
void undelay(unsigned long un) {
  10045c:	b590      	push	{r4, r7, lr}  10045e:	466f      	mov	r7, sp  100460:	b082      	sub	sp, #8  100462:	1c3b      	mov	r3, r7		(add r3, r7, #0)  100464:	3b08      	sub	r3, #8  100466:	6018      	str	r0, [r3, #0]		unsigned long	j;
		
		for (j = 2825*un/1000; j != 0; j-- );				
  100468:	1c3b      	mov	r3, r7		(add r3, r7, #0)  10046a:	3b08      	sub	r3, #8  10046c:	681a      	ldr	r2, [r3, #0]  10046e:	4b0c      	ldr	r3, [pc, #48]	(1004a0 <.text+0x4a0>)  100470:	4353      	mul	r3, r2  100472:	1f3c      	sub	r4, r7, #4  100474:	1c18      	mov	r0, r3		(add r0, r3, #0)  100476:	21fa      	mov	r1, #250  100478:	0089      	lsl	r1, r1, #2  10047a:	f9b9f001 	bl	1017f0 <__udivsi3>  10047e:	1c03      	mov	r3, r0		(add r3, r0, #0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -