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

📄 main.lss

📁 基于CC1100和ATMEGA128的无线通信程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
 800:	45 cf       	rjmp	.-374    	; 0x68c <Motion_Excute+0x19a>
  TCCR1B = 0x00; //stop Timer
 802:	1e bc       	out	0x2e, r1	; 46
 804:	2e 96       	adiw	r28, 0x0e	; 14
 806:	0f b6       	in	r0, 0x3f	; 63
 808:	f8 94       	cli
 80a:	de bf       	out	0x3e, r29	; 62
 80c:	0f be       	out	0x3f, r0	; 63
 80e:	cd bf       	out	0x3d, r28	; 61
 810:	df 91       	pop	r29
 812:	cf 91       	pop	r28
 814:	1f 91       	pop	r17
 816:	0f 91       	pop	r16
 818:	ff 90       	pop	r15
 81a:	ef 90       	pop	r14
 81c:	df 90       	pop	r13
 81e:	cf 90       	pop	r12
 820:	bf 90       	pop	r11
 822:	af 90       	pop	r10
 824:	9f 90       	pop	r9
 826:	8f 90       	pop	r8
 828:	7f 90       	pop	r7
 82a:	6f 90       	pop	r6
 82c:	5f 90       	pop	r5
 82e:	4f 90       	pop	r4
 830:	3f 90       	pop	r3
 832:	2f 90       	pop	r2
 834:	08 95       	ret

00000836 <write>:
BYTE asciiString[11];


void  write(unsigned char *str)
{ 
 836:	fc 01       	movw	r30, r24
	while (*str != 0) 
	{ 
		UART1_WAIT_AND_SEND(*str++); 
 838:	80 81       	ld	r24, Z
 83a:	88 23       	and	r24, r24
 83c:	69 f0       	breq	.+26     	; 0x858 <write+0x22>
 83e:	80 91 9b 00 	lds	r24, 0x009B
 842:	85 ff       	sbrs	r24, 5
 844:	fc cf       	rjmp	.-8      	; 0x83e <write+0x8>
 846:	80 91 9b 00 	lds	r24, 0x009B
 84a:	8f 7d       	andi	r24, 0xDF	; 223
 84c:	80 93 9b 00 	sts	0x009B, r24
 850:	81 91       	ld	r24, Z+
 852:	80 93 9c 00 	sts	0x009C, r24
 856:	f0 cf       	rjmp	.-32     	; 0x838 <write+0x2>
 858:	08 95       	ret

0000085a <writeln>:
	} 
} 

void writeln(unsigned char *str) 
{ 
	write(str); 
 85a:	0e 94 1b 04 	call	0x836 <write>
	write("\n\r"); 
 85e:	87 e4       	ldi	r24, 0x47	; 71
 860:	93 e0       	ldi	r25, 0x03	; 3
 862:	0e 94 1b 04 	call	0x836 <write>
 866:	08 95       	ret

00000868 <intToAscii>:
} 


void sysInit(void);

int main(void)
{   UINT32 i;
	UINT32 packetsReceived = 0;
	UINT8 length;
	BOOL flag=0;
	BOOL flag1=0;
	BYTE choice;
	UINT8   (*p)[13];
    UINT16  n1,n2,n3;
	
    for (i=0;i<100;i++) Wait(200);	
	//系统初始化
	sysInit();	
	//一些提示信息
	writeln("Welcome to IBSS");	
	writeln("This is written by Wang Chaoyan");
	writeln("This is a Simple Demo RX  for CCxx00...");
	// Reset CCxx00 and write rf setting to config registers
	// CC1100芯片上电复位
    TI_CC_PowerupResetCCxxx0();
	//寄存器设置
	TI_CC_RfWriteRfSettings(&rfSettings);
	//提示信息
	writeln("Now Enjoying the show!!!");
    Motion_Init();	
	while(1)
	{
		
	   //初始化接收的数据包长度
		length = sizeof(rxBuffer);
		//若收到显示接收结果
		flag=TI_CC_RfReceivePacket(rxBuffer, length);
        		
		if (flag)
        {					
		  SET_LED_RDY();
          intToAscii(++packetsReceived);
          write("Received: ");
		  write("  -  "); 
		  write(asciiString);  
          CLR_LED_RDY();
		  for (i=0;i<200;i++) Wait(200);
		  TI_CC_RfSendPacket(txBuffer, sizeof(txBuffer));
		  choice=rxBuffer[0];
		  switch(choice)
          {
		  case 0x01: p=angle1;n1=17;n2=9;n3=10;flag1=1;break;
		  case 0x02: p=angle2;n1=11;n2=3;n3=10;flag1=1;break;
		  case 0x03: p=angle3; n1=6; n2=2;n3=10;flag1=1;break;
		  case 0x04: p=angle4; n1=7; n2=2;n3=10;flag1=1;break;
		  }
           if(flag1) 
		  { Motion_Init();          
		    Motion_Excute(p,n1,n2,n3);
			Motion_Init();
			flag1=0;	
		  }
               
        }
		
		
    }
	
	
}
void Port_Init(void)
{     
      MCUCR=0x00;
      XDIV=0x00;
	  XMCRA=0x00;  
      PA_INIT;
	  PB_INIT;
	  PC_INIT;
      PD_INIT;
}
void Timer1_Setup(void)
{    TCCR1A=0x00;
     TCNT1=0x00; 
}


void sysInit(void)
{
	unsigned char i;
	//口初始化
	Port_Init();
	//SPI 初始化
    Spi_Setup();
	Timer1_Setup();
	//等待一下,晶振稳定
	for (i=0;i<5;i++) Wait(200);
	//初始化串口为: 9600,8N1
	INIT_UART1 ( UART_BAUDRATE_9K6, (
				UART_OPT_8_BITS_PER_CHAR |
				UART_OPT_NO_PARITY |
				UART_OPT_ONE_STOP_BIT ) );
	//串口开			
	ENABLE_UART1();	
	DISABLE_UART1_INT();
	CLR_LED_RDY();
	
}




//-------------------------------------------------------------------------------------------------------
//  void intToAscii(UINT32 value)
//
//  DESCRIPTION:
//		Takes a 32 bits interger as input and converts it to ascii. Puts the result in the global
//      variable asciiString[]
//
//	ARGUMENTS:
//		UINT32 value
//			The value to be converted
//-------------------------------------------------------------------------------------------------------
void intToAscii(UINT32 value) {
 868:	7f 92       	push	r7
 86a:	8f 92       	push	r8
 86c:	9f 92       	push	r9
 86e:	af 92       	push	r10
 870:	bf 92       	push	r11
 872:	cf 92       	push	r12
 874:	df 92       	push	r13
 876:	ef 92       	push	r14
 878:	ff 92       	push	r15
 87a:	0f 93       	push	r16
 87c:	1f 93       	push	r17
 87e:	cf 93       	push	r28
 880:	df 93       	push	r29
 882:	7b 01       	movw	r14, r22
 884:	8c 01       	movw	r16, r24
    UINT8 i;
    UINT8 j = 0;
 886:	99 24       	eor	r9, r9
    UINT8 digit_start = 0;
 888:	79 2c       	mov	r7, r9
    UINT16 digit = 0;
    UINT32 denom = 1000000000;
 88a:	a1 2c       	mov	r10, r1
 88c:	aa ec       	ldi	r26, 0xCA	; 202
 88e:	ba 2e       	mov	r11, r26
 890:	aa e9       	ldi	r26, 0x9A	; 154
 892:	ca 2e       	mov	r12, r26
 894:	ab e3       	ldi	r26, 0x3B	; 59
 896:	da 2e       	mov	r13, r26

    if (value == 0) {
 898:	61 15       	cp	r22, r1
 89a:	71 05       	cpc	r23, r1
 89c:	81 05       	cpc	r24, r1
 89e:	91 05       	cpc	r25, r1
 8a0:	31 f4       	brne	.+12     	; 0x8ae <intToAscii+0x46>
        asciiString[0] = '0';
 8a2:	80 e3       	ldi	r24, 0x30	; 48
 8a4:	80 93 cc 03 	sts	0x03CC, r24
        asciiString[1] = NULL;
 8a8:	90 92 cd 03 	sts	0x03CD, r9
 8ac:	33 c0       	rjmp	.+102    	; 0x914 <intToAscii+0xac>
    } else {
        for(i = 10; i > 0; i--) {
 8ae:	fa e0       	ldi	r31, 0x0A	; 10
 8b0:	8f 2e       	mov	r8, r31
            digit = value / denom;
 8b2:	c8 01       	movw	r24, r16
 8b4:	b7 01       	movw	r22, r14
 8b6:	a6 01       	movw	r20, r12
 8b8:	95 01       	movw	r18, r10
 8ba:	0e 94 91 05 	call	0xb22 <__udivmodsi4>
 8be:	e9 01       	movw	r28, r18
            if((digit_start == 1) || (digit != 0)) {
 8c0:	81 e0       	ldi	r24, 0x01	; 1
 8c2:	78 16       	cp	r7, r24
 8c4:	11 f0       	breq	.+4      	; 0x8ca <intToAscii+0x62>
 8c6:	23 2b       	or	r18, r19
 8c8:	a1 f0       	breq	.+40     	; 0x8f2 <intToAscii+0x8a>
                digit_start = 1;
 8ca:	e1 e0       	ldi	r30, 0x01	; 1
 8cc:	7e 2e       	mov	r7, r30
                value %= denom;
 8ce:	c8 01       	movw	r24, r16
 8d0:	b7 01       	movw	r22, r14
 8d2:	a6 01       	movw	r20, r12
 8d4:	95 01       	movw	r18, r10
 8d6:	0e 94 91 05 	call	0xb22 <__udivmodsi4>
 8da:	dc 01       	movw	r26, r24
 8dc:	cb 01       	movw	r24, r22
 8de:	7c 01       	movw	r14, r24
 8e0:	8d 01       	movw	r16, r26
                asciiString[j++] = (digit + '0');
 8e2:	e9 2d       	mov	r30, r9
 8e4:	ff 27       	eor	r31, r31
 8e6:	e4 53       	subi	r30, 0x34	; 52
 8e8:	fc 4f       	sbci	r31, 0xFC	; 252
 8ea:	8c 2f       	mov	r24, r28
 8ec:	80 5d       	subi	r24, 0xD0	; 208
 8ee:	80 83       	st	Z, r24
 8f0:	97 0c       	add	r9, r7
            }
            denom /= 10;
 8f2:	c6 01       	movw	r24, r12
 8f4:	b5 01       	movw	r22, r10
 8f6:	2a e0       	ldi	r18, 0x0A	; 10
 8f8:	30 e0       	ldi	r19, 0x00	; 0
 8fa:	40 e0       	ldi	r20, 0x00	; 0
 8fc:	50 e0       	ldi	r21, 0x00	; 0
 8fe:	0e 94 91 05 	call	0xb22 <__udivmodsi4>
 902:	59 01       	movw	r10, r18
 904:	6a 01       	movw	r12, r20
 906:	8a 94       	dec	r8
 908:	a1 f6       	brne	.-88     	; 0x8b2 <intToAscii+0x4a>
        }
        asciiString[j++] = NULL;
 90a:	e9 2d       	mov	r30, r9
 90c:	ff 27       	eor	r31, r31
 90e:	e4 53       	subi	r30, 0x34	; 52
 910:	fc 4f       	sbci	r31, 0xFC	; 252
 912:	80 82       	st	Z, r8
 914:	df 91       	pop	r29
 916:	cf 91       	pop	r28
 918:	1f 91       	pop	r17
 91a:	0f 91       	pop	r16
 91c:	ff 90       	pop	r15
 91e:	ef 90       	pop	r14
 920:	df 90       	pop	r13
 922:	cf 90       	pop	r12
 924:	bf 90       	pop	r11
 926:	af 90       	pop	r10
 928:	9f 90       	pop	r9
 92a:	8f 90       	pop	r8
 92c:	7f 90       	pop	r7
 92e:	08 95       	ret

00000930 <Port_Init>:
 930:	15 be       	out	0x35, r1	; 53
 932:	1c be       	out	0x3c, r1	; 60
 934:	10 92 6d 00 	sts	0x006D, r1
 938:	9f ef       	ldi	r25, 0xFF	; 255
 93a:	9a bb       	out	0x1a, r25	; 26
 93c:	1b ba       	out	0x1b, r1	; 27
 93e:	87 e0       	ldi	r24, 0x07	; 7
 940:	87 bb       	out	0x17, r24	; 23
 942:	8f e3       	ldi	r24, 0x3F	; 63
 944:	88 bb       	out	0x18, r24	; 24
 946:	94 bb       	out	0x14, r25	; 20
 948:	15 ba       	out	0x15, r1	; 21
 94a:	88 e8       	ldi	r24, 0x88	; 136
 94c:	81 bb       	out	0x11, r24	; 17
 94e:	8f e7       	ldi	r24, 0x7F	; 127
 950:	82 bb       	out	0x12, r24	; 18
 952:	08 95       	ret

00000954 <Timer1_Setup>:
 954:	1f bc       	out	0x2f, r1	; 47
 956:	1d bc       	out	0x2d, r1	; 45
 958:	1c bc       	out	0x2c, r1	; 44
 95a:	08 95       	ret

0000095c <sysInit>:
 95c:	cf 93       	push	r28
 95e:	0e 94 98 04 	call	0x930 <Port_Init>
 962:	0e 94 6c 00 	call	0xd8 <Spi_Setup>
 966:	0e 94 aa 04 	call	0x954 <Timer1_Setup>
 96a:	c4 e0       	ldi	r28, 0x04	; 4
 96c:	88 ec       	ldi	r24, 0xC8	; 200
 96e:	0e 94 65 00 	call	0xca <Wait>
 972:	c1 50       	subi	r28, 0x01	; 1
 974:	c7 ff       	sbrs	r28, 7
 976:	fa cf       	rjmp	.-12     	; 0x96c <sysInit+0x10>
 978:	10 92 98 00 	sts	0x0098, r1
 97c:	83 e3       	ldi	r24, 0x33	; 51
 97e:	80 93 99 00 	sts	0x0099, r24
 982:	86 e8       	ldi	r24, 0x86	; 134
 984:	80 93 9d 00 	sts	0x009D, r24
 988:	80 91 9a 00 	lds	r24, 0x009A
 98c:	88 61       	ori	r24, 0x18	; 24
 98e:	80 93 9a 00 	sts	0x009A, r24
 992:	80 91 9a 00 	lds	r24, 0x009A
 996:	8f 75       	andi	r24, 0x5F	; 95
 998:	80 93 9a 00 	sts	0x009A, r24
 99c:	97 98       	cbi	0x12, 7	; 18
 99e:	cf 91       	pop	r28
 9a0:	08 95       	ret

000009a2 <main>:
 9a2:	cf ef       	ldi	r28, 0xFF	; 255
 9a4:	d0 e1       	ldi	r29, 0x10	; 16
 9a6:	de bf       	o

⌨️ 快捷键说明

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