📄 isr.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: ISR.C
// Author: Guo Yang Bin, Email: guo.yang.bin@philips.com
// Created: Nov.20, 2005
// Modified:
// Revision: 1.0
//*************************************************************************
//*************************************************************************
isr.c is mainly in charged of Interrupt proccessing
//*************************************************************************
*/
#include <stdio.h>
#include <string.h>
#include <dos.h>
#include "BasicTyp.h"
#include "HAL4Sys.h"
#include "isr.h"
#include "mainloop.h"
#include "function.h"
void interrupt (*OldUsbIsr)();
/*
//*************************************************************************
// ISR Subroutine
//*************************************************************************
*/
void interrupt usb_isr(void)
{
// Hal4Sys_ControlD09Interrupt(FALSE);
// fn_usb_isr();
// Hal4Sys_End_Int();
}
void fn_usb_isr(void)
{
UCHAR Int_flags;
UCHAR Int_source;
Int_source = Hal4Sys_Read(GET_INT_SOURCE);
Int_flags = Hal4Sys_Read(SET_INT_LATCH);
Hal4Sys_Write(Int_flags, CLR_INT_LATCH);
if(Int_flags & VBUS_DET)
{
if(Int_source & VBUS_DET)
Isr_vbus_det_high();
else
Isr_vbus_det_low();
}
if(Int_flags & SESS_VLD)
{
if(Int_source & SESS_VLD)
Isr_sess_vld_high();
else
Isr_sess_vld_low();
}
if(Int_flags & DP_HI)
{
if(Int_source & DP_HI)
Isr_dp_hi_high();
else
Isr_dp_hi_low();
}
if(Int_flags & ID_GND)
{
if(Int_source & ID_GND)
Isr_id_gnd_high();
else
Isr_id_gnd_low();
}
if(Int_flags & SE1)
{
if(Int_source & SE1)
Isr_se1_iel_high();
else
Isr_se1_iel_low();
}
if(Int_flags & ID_FLOAT)
{
if(Int_source & ID_FLOAT)
Isr_id_float_high();
else
Isr_id_float_low();
}
if(Int_flags & BDIS_ACON)
{
if(Int_source & BDIS_ACON)
Isr_bdis_int_high();
else
Isr_bdis_low();
}
if(Int_flags & DP_INT)
{
if(Int_source & DP_INT)
Isr_dp_int_high();
else
Isr_dp_int_low();
}
}
void Isr_vbus_det_high(void)
{
cprintf("VBUS Higher than Vbus_hi 3.0~3.6V\r\n");
cprintf("Please select: ");
}
void Isr_vbus_det_low(void)
{
cprintf("VBUS Lower than Vbus_hi 3.0~3.6V\r\n");
cprintf("Please select: ");
}
void Isr_sess_vld_high(void)
{
cprintf("VBUS Higher than Vsess_vld 0.8~2.0V\r\n");
cprintf("Please select: ");
}
void Isr_sess_vld_low(void)
{
cprintf("VBUS Lower than Vsess_vld 0.8~2.0V\r\n");
cprintf("Please select: ");
}
void Isr_dp_hi_high(void)
{
cprintf("DP High\r\n");
cprintf("Please select: ");
}
void Isr_dp_hi_low(void)
{
cprintf("DP Low\r\n");
cprintf("Please select: ");
}
void Isr_id_gnd_high(void)
{
cprintf("ID pin grounded\r\n");
cprintf("Please select: ");
}
void Isr_id_gnd_low(void)
{
cprintf("ID pin not grounded\r\n");
cprintf("Please select: ");
}
void Isr_se1_iel_high(void)
{
cprintf("SE1 detected\r\n");
cprintf("Please select: ");
}
void Isr_se1_iel_low(void)
{
cprintf("SE1 not detected\r\n");
cprintf("Please select: ");
}
void Isr_id_float_high(void)
{
cprintf("ID pin floating\r\n");
cprintf("Please select: ");
}
void Isr_id_float_low(void)
{
cprintf("ID pin not floating\r\n");
cprintf("Please select: ");
}
void Isr_bdis_int_high(void)
{
cprintf("BDIS detected\r\n");
cprintf("Please select: ");
}
void Isr_bdis_low(void)
{
cprintf("BDIS lost \r\n");
cprintf("Please select: ");
}
void Isr_dp_int_high(void)
{
cprintf("DP lower than 0.4~0.6 for TMR_DP_INT\r\n");
cprintf("Please select: ");
}
void Isr_dp_int_low(void)
{
cprintf("DP higher than 0.4~0.6 \r\n");
cprintf("Please select: ");
}
/*
//*********************************************************************
// supporting Functions
//*********************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -