📄 ia443x_demo.lst
字号:
192 3 StopTmr3();
193 3 if( --LongDelay == 0 )
194 3 {
195 4 DemoStates = sDemoInitRf;
196 4 return;
197 4 }
198 3 else
199 3 {//restart timer
200 4 DemoTimer.U16 = START_SCREEN_DELAY;
201 4 StartTmr3(START_SCREEN_DELAY_DIV, DemoTimer, FALSE);
202 4 }
203 3 }
204 2 //enable the hidden menu if needed
205 2 if( (PB1_PIN == 0) && (PB2_PIN == 0) )
206 2 { //wait for releasing the buttons
207 3 while( (PB1_PIN == 0) && (PB2_PIN == 0) );
208 3 //enable the hidden menu
209 3 MenuItems.name.show_hidden_menu = TRUE;
210 3 DemoStates = sDemoInitRf;
211 3 return;
212 3 }
213 2 //skip the start screen if any of the PB is pressed
214 2 if( (PB1_PIN == 0) || (PB2_PIN == 0) || (PB3_PIN == 0) || (PB4_PIN == 0) )
215 2 {
216 3 while( (PB1_PIN == 0) || (PB2_PIN == 0) || (PB3_PIN == 0) || (PB4_PIN == 0) );
217 3 DemoStates = sDemoInitRf;
218 3 }
219 2 break;
220 2
221 2 case sDemoInitRf:
222 2 if( SpiReadByteFromTestcardEEPROM( EE_ADDRESS_FIRST_PLUG ) == 0xFF )
223 2 {//no data is saved previously into the EEPROM
224 3 //reset menu variables
225 3 for(i=0;i<NMBR_OF_MENU_ITEM;i++) MenuItems.value[i] = 0;
226 3 //-> set destination ID equal to the source ID
227 3 MenuItems.name.dest_id = (uint8)(TestcardData.serial_nmbr & 0x00FF);
228 3 MenuItems.name.self_id = (uint8)(TestcardData.serial_nmbr & 0x00FF);
229 3 MenuItems.name.max_packets = 4;
230 3 }
231 2 else
232 2 {//read menu items from the EEPROM
233 3 for(i=0;i<NMBR_OF_MENU_ITEM-1;i++)
234 3 {
235 4 MenuItems.value[i] = SpiReadByteFromTestcardEEPROM(EE_ADDRESS_FIRST_PLUG + i + 1);
236 4 }
237 3 MenuItems.name.self_id = (uint8)(TestcardData.serial_nmbr & 0x00FF);
238 3 }
239 2 ChangeSettingsIfNotvalid();
240 2
241 2 MenuSetCursorPosition(0);
C51 COMPILER V8.00 IA443X_DEMO 11/17/2008 10:50:31 PAGE 5
242 2 DemoStates = sDemoSettingScreen;
243 2 break;
244 2
245 2 case sDemoSettingScreen:
246 2 //draw first setting page
247 2 PerformMenu( sMenuDrawSystemFunctionScreen );
248 2 DemoStates = sDemoChangeSP1;
249 2 break;
250 2
251 2 case sDemoChangeSP1:
252 2 switch( PerformMenu(sMenuChangeSystemFunction) )
253 2 {
254 3 case UPDATE_PAGE: DemoStates = sDemoSettingScreen; break;
255 3 case NEXT_PAGE:
256 3 DemoStates = sDemoDrawSP2;
257 3 MenuSetCursorPosition(0);
258 3 break;
259 3 default: break;
260 3 }
261 2 break;
262 2
263 2 case sDemoDrawSP2:
264 2 PerformMenu( sMenuDrawRfParametersScreen );
265 2 DemoStates = sDemoChangeSP2;
266 2 break;
267 2
268 2 case sDemoChangeSP2:
269 2 switch( PerformMenu(sMenuChangeRfParameters) )
270 2 {
271 3 case UPDATE_PAGE: DemoStates = sDemoDrawSP2; break;
272 3 case NEXT_PAGE:
273 3 DemoStates = sDemoDrawSP3;
274 3 MenuSetCursorPosition(1);
275 3 break;
276 3 default: break;
277 3 }
278 2 break;
279 2
280 2 case sDemoDrawSP3:
281 2 PerformMenu( sMenuDrawNodeParametersScreen );
282 2 DemoStates = sDemoChangeSP3;
283 2 break;
284 2
285 2 case sDemoChangeSP3:
286 2 switch( PerformMenu( sMenuChangeNodeParameters ) )
287 2 {
288 3 case UPDATE_PAGE: DemoStates = sDemoDrawSP3; break;
289 3 case NEXT_PAGE:
290 3 if(MenuItems.name.show_hidden_menu == TRUE) DemoStates = sDemoDrawSP4;
291 3 else DemoStates = sDemoDefineDemoOrTest;
292 3 MenuSetCursorPosition(0);
293 3 break;
294 3 default: break;
295 3 }
296 2 break;
297 2
298 2 case sDemoDrawSP4:
299 2 PerformMenu( sMenuDrawHiddenScreen );
300 2 DemoStates = sDemoChangeSP4;
301 2 break;
302 2
303 2 case sDemoChangeSP4:
C51 COMPILER V8.00 IA443X_DEMO 11/17/2008 10:50:31 PAGE 6
304 2 switch( PerformMenu( sMenuChangeHiddenScreen ) )
305 2 {
306 3 case UPDATE_PAGE: DemoStates = sDemoDrawSP4; break;
307 3 case NEXT_PAGE: DemoStates = sDemoDefineDemoOrTest; break;
308 3 default: break;
309 3 }
310 2 break;
311 2
312 2 case sDemoDefineDemoOrTest:
313 2 ChangeSettingsIfNotvalid();
314 2 //save the settings into the EEPROM
315 2 for(i=0;i<NMBR_OF_MENU_ITEM;i++)
316 2 {
317 3 SpiWriteByteToTestcardEEPROM((EE_ADDRESS_FIRST_PLUG + i + 1), MenuItems.value[i]);
318 3 }
319 2 SpiWriteByteToTestcardEEPROM(EE_ADDRESS_FIRST_PLUG, 1);
320 2 //deefine the next state
321 2 if( MenuItems.name.system_function == DEMO_MODE )
322 2 {
323 3 switch( MenuItems.name.demo_mode )
324 3 {
325 4 case DEMO_MODE_TRX: DemoStates = sDemoRestartDemo; break;
326 4 case DEMO_MODE_TX: DemoStates = sDemoRestartTxDemo; break;
327 4 case DEMO_MODE_RX: DemoStates = sDemoRestartRxDemo; break;
328 4 default: DemoStates = sDemoRestartDemo; break;
329 4 }
330 3 }
331 2 else
332 2 {
333 3 switch( MenuItems.name.lab_mode )
334 3 {
335 4 case LAB_MODE_CW: DemoStates = sDemoStartCW; break;
336 4 case LAB_MODE_PN9: DemoStates = sDemoStartPN9; break;
337 4 case LAB_MODE_BER: DemoStates = sDemoStartBER; break;
338 4 case LAB_MODE_PER: DemoStates = sDemoStartPER; break;
339 4 default: DemoStates = sDemoStartCW; break;
340 4 }
341 3 }
342 2 /*************************************/
343 2 /* initialize RF stack and variables */
344 2 /*************************************/
345 2 SetRadio();
346 2 //clear flags and variables
347 2 NmbrOfSentPackets = 0;
348 2 NmbrOfReceivedPackets = 0;
349 2 NmbrOfMissedPackets = 0;
350 2 LastPacketId = 0;
351 2 AutoTx = FALSE;
352 2 fWaitForPacketOrAck = PING_PACKET;
353 2 fChangeDemoStates = FALSE;
354 2 LED_TX = 0;
355 2 LED_RX = 0;
356 2 BLED_PIN = 0;
357 2 break;
358 2
359 2 /*Extra function for CW-TEST mode*/
360 2 case sDemoStartCW:
361 2 PerformMenu( sMenuCWStartScreen );
362 2 //SET direct modulation mode: CW
363 2 rf_param[0] = TX_CLK_ON_GPIO | MOD_TYPE_CW;
364 2 RFSetParameter(pRfModulation, rf_param, 1);
365 2 //disable packet handler
C51 COMPILER V8.00 IA443X_DEMO 11/17/2008 10:50:31 PAGE 7
366 2 rf_param[0] = TX_PACKET_HANDLER_DIS | CRC_DIS;
367 2 RFSetParameter(pRfPacketHandler,rf_param,1);
368 2 //start CW mode
369 2 RFDirectTransmit();
370 2 //next state
371 2 DemoStates = sDemoCheckSettingButton;
372 2 break;
373 2
374 2 case sDemoCheckSettingButton:
375 2 if( PB3_PIN == 0 || PB4_PIN == 0 )
376 2 {
377 3 while( PB3_PIN == 0 || PB4_PIN == 0 );
378 3 //goto setting page
379 3 MenuSetCursorPosition(0);
380 3 DemoStates = sDemoSettingScreen;
381 3 return;
382 3 }
383 2 break;
384 2
385 2 /*Extra function for PN9-TEST mode*/
386 2 case sDemoStartPN9:
387 2 PerformMenu( sMenuPN9StartScreen );
388 2 //SET direct modulation mode: PN9
389 2 temp8 = SpiRfReadRegister( ModulationModeControl2 );
390 2 temp8 &= 0x0F;
391 2 temp8 += TX_CLK_ON_GPIO | MOD_PN9;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -