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

📄 hello_led.c

📁 参加今年的比赛肯定要用的。谢谢支持。祝大家好运!
💻 C
字号:

#include "system.h"
#include "basic_io.h"
#include "LCD.h"
#include "Test.h"
#include "Open_I2C.h"
#include "sys/alt_irq.h"

//  for USB
#include "BASICTYP.H"
#include "COMMON.H"
#include "ISR.H"
#include "USB.H"
#include "MAINLOOP.H"
#include "ISR.C"
#include "HAL4D13.C"
#include "CHAP_9.C"
#include "D13BUS.C"
#include "ISO.C"
#include "MAINLOOP.C"



#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

//-------------------------------------------------------------------------
//  Global Variable
D13FLAGS bD13flags;
USBCHECK_DEVICE_STATES bUSBCheck_Device_State;
CONTROL_XFER ControlData;
IO_REQUEST idata ioRequest;

//-------------------------------------------------------------------------
int main(void)
{
unsigned long i,j;

START:
     IOWR(PIO_0_BASE, 2, 0);//DIS INT1
     IOWR(LED_RED_BASE, 0 , 0 );
     disconnect_USB();
     for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}}
     IOWR(LED_RED_BASE, 0 , 1 );
     for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}}
     IOWR(LED_RED_BASE, 0 , 0 );
     for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}}
     IOWR(LED_RED_BASE, 0 , 1 );
     
     IOWR(LED_RED_BASE, 0 , 0 );
     for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}}
     IOWR(LED_RED_BASE, 0 , 1 );
     for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}}
     IOWR(LED_RED_BASE, 0 , 0 );
     for (i=0 ;i < 0xff;i++) {for (j=0;j<0xffff;j++) {}}
     IOWR(LED_RED_BASE, 0 , 1 );
     IOWR(PIO_0_BASE, 3, 0);//CLAER
  //Hal4D13_ResetDevice();
  bUSBCheck_Device_State.State_bits.DEVICE_DEFAULT_STATE = 1;
  bUSBCheck_Device_State.State_bits.DEVICE_ADDRESS_STATE = 0;
  bUSBCheck_Device_State.State_bits.DEVICE_CONFIGURATION_STATE = 0;
  bUSBCheck_Device_State.State_bits.RESET_BITS = 0;  
  //basic_test();
  
 //test all STRUCTURE SIZE
  printf("DEVICE_REQUEST_size:%d\n",sizeof(DEVICE_REQUEST));								//<<//is 8
	printf("DeviceRequest.bmRequestType_size:%d\n",sizeof(ControlData.DeviceRequest.bmRequestType));   //1BYTE
	printf("DeviceRequest.bRequest_size:%d\n",sizeof(ControlData.DeviceRequest.bRequest));				//1BYTE
	printf("DeviceRequest.wValue_size:%d\n",sizeof(ControlData.DeviceRequest.wValue)); 					//2BYTE
	printf("DeviceRequest.wIndex_size:%d\n",sizeof(ControlData.DeviceRequest.wIndex)); 					//2BYTE
	printf("DeviceRequest.wLength_size:%d\n",sizeof(ControlData.DeviceRequest.wLength));				//2BYTE


	printf("USB_DEVICE_DESCRIPTOR_size :%d\n",sizeof(USB_DEVICE_DESCRIPTOR));                	//18
	printf("USB_CONFIGURATION_DESCRIPTOR_a_size :%d\n",sizeof(USB_CONFIGURATION_DESCRIPTOR_a));	//9*3+7*4
	printf("USB_CONFIGURATION_DESCRIPTOR_size :%d\n",sizeof(USB_CONFIGURATION_DESCRIPTOR));		//9
	printf("USB_INTERFACE_DESCRIPTOR_size :%d\n",sizeof(USB_INTERFACE_DESCRIPTOR));				//9
	printf("USB_INTERFACE_DESCRIPTOR_size :%d\n",sizeof(USB_INTERFACE_DESCRIPTOR));				//9
	printf("USB_ENDPOINT_DESCRIPTOR_size :%d\n",sizeof(USB_ENDPOINT_DESCRIPTOR));	


   
   printf("any key=======>\n");
  // IOWR(ISP1362_BASE,D13_COMMAND_PORT,0x62);
  // printf("%x\n",IORD(ISP1362_BASE,D13_DATA_PORT));
  // while ( (inport(BUTTON_PIO_BASE) & 0xf)==0xf) {}

  // while ( (inport(BUTTON_PIO_BASE) & 0xf)!=0xf) {}
//     for (i=0 ;i < 0xfff;i++) {for (j=0;j<0xffff;j++) {}}
  //IOWR(PIO_0_BASE, 2, 2);//INT1 ENABLE
  for (i=0 ;i < 0xf;i++) {for (j=0;j<0xffff;j++) {}}
  //Hal4D13_ResetDevice(); /*Reset the Device Controller*/
  reconnect_USB();       /* Programs the DC's Register*/
//  IOWR(PIO_0_BASE, 2, 2);//INT1 ENABLE
  //Hal4D13_AcquireD13(ISP1362_IRQ);
  //IOWR(PIO_0_BASE, 2, 2);//INT1 ENABLE 
 // Hal4D13_AcquireD13(PIO_0_IRQ);
 
  //Hal4D13_SetMode(
  //D13REG_MODE_DMA16
    //       |D13REG_MODE_SOFTCONNECT
      //     |D13REG_MODE_INT_EN /*Enableing Device Interrupts*/
        //   );
           
  CHECK_CHIP_ID();
  Hal4D13_AcquireD13(PIO_0_IRQ);
  IOWR(PIO_0_BASE, 2, 2);//INT1 ENABLE
  bD13flags.bits.verbose=1;
  
  while (1)
  
  {
    if (bUSBCheck_Device_State.State_bits.RESET_BITS == 1) {
           IOWR(PIO_0_BASE, 2, 0);//DIS INT1
           break;  
    }
    if (bD13flags.bits.suspend)
    {
    //  printf("\nSuspend Change Handler!!\n");
      RaiseIRQL();
      bD13flags.bits.suspend= 0;
      LowerIRQL();
      //disconnect_USB();
 
      suspend_change();
    
    } // Suspend Change Handler

    if (bD13flags.bits.DCP_state == USBFSM4DCP_SETUPPROC)
    {
     // printf("\nSetup Token Handler!!\n");
      RaiseIRQL();
      SetupToken_Handler();
      LowerIRQL();
    } // Setup Token Handler
 
    if ((bD13flags.bits.DCP_state == USBFSM4DCP_REQUESTPROC) && !ControlData.Abort)
    {
   //   printf("\nDevice Request Handler!!\n");
      RaiseIRQL();
      bD13flags.bits.DCP_state = 0x00;
      DeviceRequest_Handler();
      LowerIRQL();
    } // Device Request Handler
    
    usleep(1);
  }
//  return 0;
goto START;
}

//-------------------------------------------------------------------------


⌨️ 快捷键说明

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