📄 mainloop.c
字号:
/*
//*************************************************************************
//
// P H I L I P S P R O P R I E T A R Y
//
// COPYRIGHT (c) 2005 BY PHILIPS SINGAPORE.
// -- ALL RIGHTS RESERVED --
//
// Project: ISP1302 Eva Kit
// File Name: MainLoop.C
// Author: Guo Yang Bin, Email: guo.yang.bin@philips.com
// Created: Nov.20, 2005
// Revision: 1.0
//*************************************************************************
*/
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <bios.h>
#include <dos.h>
#include <malloc.h>
#include "BasicTyp.h"
#include "mainloop.h"
#include "Hal4sys.h"
#include "function.h"
#include "test.h"
/*
//*************************************************************************
// Public static data
//*************************************************************************
*/
D09FLAGS bD09flags;
extern inten_state,speed;
/*
//*************************************************************************
// Main Function
//*************************************************************************
*/
void main(void)
{
BOOL in_loop = TRUE;
UCHAR key, power;
clrscr();
textattr(0x07);
printf("Paralle Port PC Kit\n");
printf("ISP1302 IC TEST FIRMWARE REV 1.10\n");
printf("Philips Electronics Singapore PTE. LTD. APIC\n");
printf("Getting more info on http://www.philips.com\n");
printf("or contact wired.support@philips.com\r\n");
Initialize();
printf("Waiting for Eva kit Power On......\r\n");
do{
power = Hal4Sys_PowerDet();
if( bioskey(1) )
{
key = bioskey(0);
key &= 0xff;
if(key==0x1b) /* ESC */
break;
}
}while(power==0);
printf("Eva kit Power On\r\n");
Main_Menu();
/* Main program loop */
while( in_loop )
{
if( bioskey(1) )
{
key = bioskey(0);
key &= 0xff;
switch(key)
{
case 0x1b: /* ESC */
in_loop = FALSE;
break;
case 'M':
case 'm':
Main_Menu();
break;
case 'S':
case 's':bD09flags.bits.bus_state = SPI;
Hal4Sys_SetSPI_Mode();
Main_Menu();
printf("Serial_Mode: SPI\n");
printf("Please select: ");
break;
case 'I':bD09flags.bits.bus_state = I2C;
bD09flags.bits.adr_state =0;
Hal4Sys_SetI2C_Mode();
Main_Menu();
printf("Serial_Mode: I2C, ADR=1 \n");
printf("Please select: ");
break;
case 'i':bD09flags.bits.bus_state = I2C;
bD09flags.bits.adr_state =1;
Hal4Sys_SetI2C_Mode();
Main_Menu();
printf("Serial_Mode: I2C, ADR=0 \n");
printf("Please select: ");
break;
case 't':
case 'T':printf("Test mode\n");
Test_mode();
break;
case 'f':
case 'F':printf("Functional mode\n");
Functional_mode();
break;
case 'h':
case 'H': bD09flags.value = 0;
Hal4Sys_ResetPCBA();
bD09flags.bits.bus_state = I2C;
Hal4Sys_SetI2C_Mode();
Main_Menu();
printf("Hard reset ISP1302\n");
cprintf("Please select: ");
break;
default:
break;
}
}
} // Main Loop
on_exit();
}
/*
//*************************************************************************
// Subroutines
//*************************************************************************
*/
void Initialize( void)
{
unsigned long privateBuffer, phys;
bD09flags.value = 0;
bD09flags.bits.mode_state = USB_DAT_SE0_U;
privateBuffer = (unsigned char far *)farmalloc(0X0400*2L);
if(privateBuffer == NULL)
{
printf("Error allocation memory!\n");
exit(1);
}
phys = (unsigned long)FP_SEG(privateBuffer)*16 + FP_OFF(privateBuffer);
Hal4Sys_ControlD09Interrupt(TRUE);
Hal4Sys_End_Int();
Hal4Sys_Initial_uP();
Hal4D09_Initial_1109();
Hal4Sys_ResetPCBA();
bD09flags.bits.bus_state = I2C;
Hal4Sys_SetI2C_Mode();
}
void on_exit(void)
{
Hal4Sys_ControlD09Interrupt(FALSE);
Hal4Sys_ReleaseD09();
Hal4Sys_Release_uP();
}
void Functional_mode(void)
{
UCHAR key;
BOOL in_loop = TRUE;
F_Main_Menu();
Hal4D09_Initial_1109();
while( in_loop )
{
key = 0;
if( bioskey(1) )
{
key = bioskey(0);
key &= 0xff;
switch(key)
{
case 0x1b: /* ESC */
in_loop = FALSE;
break;
case 'm':
case 'M':
F_Main_Menu();
break;
case 'e':
case 'E':bD09flags.bits.charge_state = 1;
F_Main_Menu();
printf("Enable charge pump\n");
printf("Please select: ");
Hal4D09_Enable_Chargepump();
break;
case 'd':
case 'D':bD09flags.bits.charge_state = 0;
F_Main_Menu();
printf("Disable charge pump\n");
cprintf("Please select: ");
Hal4D09_Disable_Chargepump();
break;
case '0':bD09flags.bits.service_state = 1;
F_Main_Menu();
printf("Service Pin Low, 2.8V signaling for UART Mode\n");
printf("Please select: ");
Hal4Sys_Service_Low();
break;
case '1':bD09flags.bits.service_state = 0;
F_Main_Menu();
printf("Service Pin High, 3.3V signaling \n");
cprintf("Please select: ");
Hal4Sys_Service_High();
break;
case '2': bD09flags.bits.OE_state = 1;
F_Main_Menu();
printf("OE Pin Low\n");
printf("Please select: ");
Hal4Sys_OE_Low();
break;
case '3': bD09flags.bits.OE_state = 0;
F_Main_Menu();
printf("OE Pin High\n");
cprintf("Please select: ");
Hal4Sys_OE_High();
break;
case 'l':
case 'L':bD09flags.bits.low_full_state = LOW;
F_Main_Menu();
printf("Go USB LowSpeed\n");
cprintf("Please select: ");
Hal4D09_USB_LowSpeed();
break;
case 'f':
case 'F':bD09flags.bits.low_full_state = FULL;
F_Main_Menu();
printf("Go USB FullSpeed\n");
cprintf("Please select: ");
Hal4D09_USB_FullSpeed();
break;
case 's':
case 'S':bD09flags.bits.suspend_state = SUSPEND;
F_Main_Menu();
printf("Go USB Suspend mode\n");
cprintf("Please select: ");
Hal4D09_USB_Suspend();
break;
case 'a':
case 'A':bD09flags.bits.suspend_state = ACTIVE;
F_Main_Menu();
printf("Active from USB suspend mode\n");
cprintf("Please select: ");
Hal4D09_USB_Active();
break;
/* case 'u':
case 'U':bD09flags.bits.mode_state = USB_VPVM_U;
F_Main_Menu();
printf("USB_VPVM_Unidirectional mode\n");
cprintf("Please select: ");
Hal4D09_USB_VPVM_U();
break;*/
case 'v':
case 'V':bD09flags.bits.mode_state = USB_VPVM_B;
F_Main_Menu();
printf("USB_VPVM_Bi-directional mode\n");
cprintf("Please select: ");
Hal4D09_USB_VPVM_B();
break;
/* case 'd':
case 'D':bD09flags.bits.mode_state = USB_DAT_SE0_U;
F_Main_Menu();
printf("USB_DAT_SE0_Unidirectional mode\n");
cprintf("Please select: ");
Hal4D09_USB_DAT_SE0_U();
break;*/
case 'b':
case 'B':bD09flags.bits.mode_state = USB_DAT_SE0_B;
F_Main_Menu();
printf("USB_DAT_SE0_Bi-directional mode\n");
cprintf("Please select: ");
Hal4D09_USB_DAT_SE0_B();
break;
case 'U':
case 'u':bD09flags.bits.mode_state = UART;
F_Main_Menu();
printf("Serial UART, SE0/VM -> D- D+ -> DAT_VP \n");
Hal4D09_UART1();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -