📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 02/03/2009 10:53:16 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*************************************************
2 ** 版权 : 杭州利尔达科技有限公司
3 ** 文件名 : 1100/2500测试用
4 ** 版本 : v1.0
5 ** 工作环境: IAR4.11b
6 ** 作者 : panxiaojiang
7 ** 生成日期: 2008.11
8 ** 功能 : 基本通信功能测试
9 ** 使用说明: 更改主程序中#if 后的值切换发送和接收,
10 当为“#if 0”为接收,否则为发送;
11 发送数据为变长数据包,发送60个字节,CRC校验+地址校验
12 接收方收到数据后显示发送的数据个数并切换亮灯状态
13 ** 测试硬件: LSD-TEST430FG461X-20XX-U V1.0b
14 ** 修改日志: 2008.11
15 **************************************************/
16 #include "include.h"
17
18 //变量声明
19 char paTable[8] = {0x17,0x1c,0x26,0x57,0x60,0x85,0xc8,0xc0};//cc1100对应功率值-20,-15,-10,-5,0,5,7,1
-0
20 //char paTable[] = {0x97,0x6e,0x7f,0x97,0xa9,0xbb,0xfe,0xff,};//cc2500对应功率值-10,-8,-6,-4,-2,0,1
21 char paTableLen = 4; //对应功率值,默认4则为0dbm发送
22
23 char txBuffer[60]={59,1,3,4,5,6,7,8,9,4,5,5,6,2};
24 char rxBuffer[5];
25 char delay=1;
26 //char* LCD = LCDMEM;
27
28 /*#define SEG_a 0x01
29 #define SEG_b 0x02
30 #define SEG_d 0x04
31 #define SEG_g 0x08
32 #define SEG_c 0x10
33 #define SEG_f 0x20
34 #define SEG_h 0x40
35 #define SEG_e 0x80
36
37 #define CHAR_ALL (SEG_a|SEG_b|SEG_c|SEG_d|SEG_e|SEG_f|SEG_g|SEG_h)
38 #define CHAR_SPACE 0
39 #define CHAR_MINUS (SEG_g)
40 #define CHAR_0 (SEG_a|SEG_b|SEG_c|SEG_d|SEG_e|SEG_f)
41 #define CHAR_1 (SEG_b|SEG_c)
42 #define CHAR_2 (SEG_a|SEG_b|SEG_d|SEG_e|SEG_g)
43 #define CHAR_3 (SEG_a|SEG_b|SEG_c|SEG_d|SEG_g)
44 #define CHAR_4 (SEG_b|SEG_c|SEG_f|SEG_g)
45 #define CHAR_5 (SEG_a|SEG_c|SEG_d|SEG_f|SEG_g)
46 #define CHAR_6 (SEG_a|SEG_c|SEG_d|SEG_e|SEG_f|SEG_g)
47 #define CHAR_7 (SEG_a|SEG_b|SEG_c)
48 #define CHAR_8 (SEG_a|SEG_b|SEG_c|SEG_d|SEG_e|SEG_f|SEG_g)
49 #define CHAR_9 (SEG_a|SEG_b|SEG_c|SEG_d|SEG_f|SEG_g)
50 #define CHAR_A (SEG_a|SEG_b|SEG_c|SEG_e|SEG_f|SEG_g)
51 #define CHAR_B (SEG_c|SEG_d|SEG_e|SEG_f|SEG_g)
52 #define CHAR_C (SEG_a|SEG_d|SEG_e|SEG_f)
53 #define CHAR_D (SEG_b|SEG_c|SEG_d|SEG_e|SEG_g)
54 #define CHAR_E (SEG_a|SEG_d|SEG_e|SEG_f|SEG_g)
C51 COMPILER V7.06 MAIN 02/03/2009 10:53:16 PAGE 2
55 #define CHAR_F (SEG_a|SEG_e|SEG_f|SEG_g)
56 #define CHAR_t (SEG_d|SEG_e|SEG_f|SEG_g)
57 #define CHAR_L (SEG_d|SEG_e|SEG_f)
58 #define CHAR_X (SEG_g)
59 #define CHAR_SA (SEG_d)
60 #define CHAR_MA (SEG_g|SEG_a)
61
62 const char digit[15] =
63 {
64 CHAR_0, // "0"
65 CHAR_1, // "1"
66 CHAR_2, // "2"
67 CHAR_3, // "3"
68 CHAR_4, // "4"
69 CHAR_5, // "5"
70 CHAR_6, // "6"
71 CHAR_7, // "7"
72 CHAR_8, // "8"
73 CHAR_9, // "9"
74 CHAR_X, // "10"
75 CHAR_D, //"11"
76 CHAR_L, // "12"
77 CHAR_SA, //"13"
78 CHAR_MA //"14"
79 };*/
80 unsigned char send_num=0;
81 unsigned char iii;
82 //函数声明
83 void LCDinit(void);
84 void TimerSet(void);
85 void glit_light( unsigned int delay);
86 void delay1(unsigned int i);
87 void delay1(unsigned int i)
88 {
89 1 unsigned int j;
90 1 for(j=0;j<i;j++)
91 1 {
92 2 _NOP();
*** WARNING C206 IN LINE 92 OF MAIN.C: '_NOP': missing function-prototype
93 2 //_NOP();
94 2 //_NOP();
95 2 }
96 1
97 1
98 1 }
99 void main (void)
100 {
101 1 WDTCTL = WDTPW + WDTHOLD; // Stop WDT
*** ERROR C202 IN LINE 101 OF MAIN.C: 'WDTCTL': undefined identifier
102 1 DCOCTL = CALDCO_1MHZ;
*** ERROR C202 IN LINE 102 OF MAIN.C: 'DCOCTL': undefined identifier
103 1 BCSCTL1 = CALBC1_1MHZ;
*** ERROR C202 IN LINE 103 OF MAIN.C: 'BCSCTL1': undefined identifier
104 1 P1OUT=0;
*** ERROR C202 IN LINE 104 OF MAIN.C: 'P1OUT': undefined identifier
105 1 TI_CC_LED_PxDIR |=TI_CC_LED1; //LED灯设置
106 1 TI_CC_LED_PxOUT &=~(TI_CC_LED1);
107 1 // LCDinit(); //液晶初始化
108 1 TI_CC_SPISetup(); // spi设置初始化
109 1 TI_CC_PowerupResetCCxxxx(); // 复位RF
110 1 writeRFSettings(); // 写RF配置信息
111 1
C51 COMPILER V7.06 MAIN 02/03/2009 10:53:16 PAGE 3
112 1 //SPI验证用于测试无线模块是否连接(工作)正常
113 1 // txBuffer[63]= TI_CC_SPIReadReg(TI_CCxxx0_IOCFG2); //如果不等于0x06为错误
114 1 // txBuffer[63]= TI_CC_SPIReadReg(TI_CCxxx0_IOCFG0); //如果不等于0x06为错误
115 1 txBuffer[3]= TI_CC_SPIReadReg(0x08); //如果不等于0x00为错误
116 1 //输出功率设置
117 1 TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, &paTable[paTableLen], 1);
118 1 //配置发送功率
119 1 delay1(50000);
120 1 TI_CC_GDO0_PxIES |= 0X02; // Int on falling edge (end of pkt)
*** ERROR C202 IN LINE 120 OF MAIN.C: 'TI_CC_GDO0_PxIES': undefined identifier
121 1 // TI_CC_GDO0_PxIES &= ~TI_CC_GDO0_PIN;
122 1 //address_bind=TI_CC_SPIReadReg(3);
123 1 P1OUT=0x02;//输入上拉
*** ERROR C202 IN LINE 123 OF MAIN.C: 'P1OUT': undefined identifier
124 1 TI_CC_GDO0_PxIFG &= ~0X02; // Clear flag
*** ERROR C202 IN LINE 124 OF MAIN.C: 'TI_CC_GDO0_PxIFG': undefined identifier
125 1 TI_CC_GDO0_PxIE |= 0X02; // Enable int on end of packet
*** ERROR C202 IN LINE 125 OF MAIN.C: 'TI_CC_GDO0_PxIE': undefined identifier
126 1 P1REN|=0X02;
*** ERROR C202 IN LINE 126 OF MAIN.C: 'P1REN': undefined identifier
127 1
128 1 _EINT();
129 1 _BIS_SR(GIE);
130 1 txBuffer[1] = 0x01;
131 1 while(1)
132 1 {
133 2 // WDTCTL=WDT_ARST_1000;
134 2 TI_CC_LED_PxOUT ^=TI_CC_LED1;
135 2 send_num++; //发送数据个数累加
136 2 TI_CC_SPIStrobe(TI_CCxxx0_SIDLE); //进入IDLE模式
137 2 txBuffer[0] =6; // Packet length
138 2 if(txBuffer[1] == 0x02)
139 2 txBuffer[1] = 0x01; // Packet address
140 2 else if(txBuffer[1] == 0x01)
141 2 txBuffer[1] = 0x02; // Packet address
142 2 txBuffer[3] = send_num; //写入当前发送数据个数
143 2 RFSendPacket(txBuffer, 7); // 发送数据
144 2
145 2 TimerSet(); //设置TimerA定时器--定时大约一秒
146 2 TI_CC_SPIStrobe(TI_CCxxx0_SPWD); //进入IDLE模式
147 2 // WDTCTL=WDT_ARST_1000;
148 2 // TI_CC_LED_PxOUT ^=TI_CC_LED1;
149 2 LPM3;
150 2
151 2 }
152 1
153 1 }
154
155 void TimerSet(void)
156 {
157 1 TACTL =TASSEL_1+TACLR;
158 1 TACCR0 =10000;
159 1 TACCTL0 =CCIE;
160 1 TACTL |= MC_1;
161 1 }
162
163 /*void LCDinit(void)
164 {
165 volatile unsigned int i;
166 BTCTL = BT_fCLK2_DIV128 | BT_fCLK2_ACLK_DIV256;
167 // 设置基本定时器
168 for (i = 0; i < 20; i++)
C51 COMPILER V7.06 MAIN 02/03/2009 10:53:16 PAGE 4
169 LCDMEM[i] = 0;
170 P5SEL |= (BIT4 | BIT3 | BIT2);
171 P5DIR |= (BIT4 | BIT3 | BIT2);
172 LCDACTL = LCDFREQ_128 | LCD4MUX | LCDSON | LCDON;
173 LCDAPCTL0 = LCDS0 | LCDS4 | LCDS8 | LCDS12 | LCDS16 | LCDS20 | LCDS24;
174 LCDAPCTL1 = 0;
175 LCDAVCTL0 = LCDCPEN;
176 LCDAVCTL1 = 1 << 1;
177 }*/
178
179 #pragma vector=TIMERA0_VECTOR
180 __interrupt void TimerA(void)
181 {
182 LPM3_EXIT;
183 //iii++;
184 }
185
186 #pragma vector=PORT1_VECTOR
187 __interrupt void port1_ISR (void)
188 {
189 /* char len=64; //读取最多数据个数
190 if (RFReceivePacket(rxBuffer,&len)) // 读数据并判断正确与否
191 {
192 if((rxBuffer[1]==3)&&(rxBuffer[58]==6)) //校验接收到数据
193 {
194 TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);
195 TI_CC_LED_PxOUT ^=TI_CC_LED1; //闪烁灯表示数据接收正常
196
197 }
198 }
199 TI_CC_SPIStrobe(TI_CCxxx0_SFRX); //清接收缓存
200 TI_CC_SPIStrobe(TI_CCxxx0_SIDLE); //进空闲模式
201 TI_CC_Wait(800); //延时
202 TI_CC_SPIStrobe(TI_CCxxx0_SRX); //进入接收状态
203 TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN; // 清中断标示*/
204 LPM3_EXIT;
205 if(P1IFG&0X02) // If int comes from rx'ed packet
206 {
207
208 delay1(5000);
209
210 if((P1IN&0X02)==0)
211 {
212 TI_CC_LED_PxOUT ^=TI_CC_LED1;
213 send_num++; //发送数据个数累加
214 TI_CC_SPIStrobe(TI_CCxxx0_SIDLE); //进入IDLE模式
215 txBuffer[0] =6; // Packet length
216 if(txBuffer[1] == 0x02)
217 txBuffer[1] = 0x01; // Packet address
218 else if(txBuffer[1] == 0x01)
219 txBuffer[1] = 0x02; // Packet address
220 txBuffer[3] = send_num; //写入当前发送数据个数
221 RFSendPacket(txBuffer, 7); // 发送数据
222
223 // TimerSet(); //设置TimerA定时器--定时大约一秒
224 TI_CC_SPIStrobe(TI_CCxxx0_SPWD); //进入IDLE模式
225 }
226 }
227
228 P1IFG &= ~0X02; // Clr flags set by switch and GDO0
229 }
C51 COMPILATION COMPLETE. 1 WARNING(S), 9 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -