亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usb_main.c

?? C8051F320做的USB示波器。簡單實(shí)現(xiàn)
?? C
字號:
//-----------------------------------------------------------------------------
// F32x_USB_Main.c
//-----------------------------------------------------------------------------
// Copyright 2005 Silicon Laboratories, Inc.
// http://www.silabs.com
//
// Program Description:
//
// This application note covers the implementation of a simple USB application 
// using the interrupt transfer type. This includes support for device
// enumeration, control and interrupt transactions, and definitions of 
// descriptor data. The purpose of this software is to give a simple working 
// example of an interrupt transfer application; it does not include
// support for multiple configurations or other transfer types.
//
// How To Test:    See Readme.txt
//
//
// FID:            32X000024
// Target:         C8051F32x
// Tool chain:     Keil C51 7.50 / Keil EVAL C51
//                 Silicon Laboratories IDE version 2.6
// Command Line:   See Readme.txt
// Project Name:   F32x_USB_Interrupt
//
//
// Release 1.3
//    -All changes by GP
//    -22 NOV 2005
//    -Changed revision number to match project revision
//     No content changes to this file
//    -Modified file to fit new formatting guidelines
//    -Changed file name from USB_MAIN.c

// Release 1.1
//    -All changes by DM
//    -22 NOV 2002
//    -Added support for switches and sample USB interrupt application.
//
// Release 1.0
//    -Initial Revision (JS)
//    -22 FEB 2002
//

//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------

#include <c8051f320.h>
#include "USB_Register.h"
#include "USB_Main.h"
#include "USB_Descriptor.h"
#include "intrins.h"


//-----------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F32x
//-----------------------------------------------------------------------------


//-----------------------------------------------------------------------------
// Globals
//-----------------------------------------------------------------------------

sbit Led1 = P0^2;                      // LED='1' means ON
sbit RESET_IN    	= P0^6;

sbit RESET_OUT   	= P1^2;
sbit BDM_DIR    	= P1^4;
sbit BDM_IO      	= P1^6;
sbit BDM_CAP     	= P1^7;

idata BYTE command_buffer[128];
unsigned char * xdata pIn;
unsigned char * xdata pOut;
xdata unsigned char buffer[512];

//-----------------------------------------------------------------------------
// Main Routine
//-----------------------------------------------------------------------------

unsigned int cnt;
unsigned int sync_length;

void main(void)
{
	
	Port_Init();                        // Initialize crossbar and GPIO
	PCA0MD &= ~0x40;                    // Disable Watchdog timer
	Delay();
	Delay();
	Delay();
	Delay();
	Delay();
	Sysclk_Init();                      // Initialize oscillator
	Usb0_Init();                        // Initialize USB0
	Timer_Init();                       // Initialize timer2
	pIn = pOut = buffer;
	EIE1 |= 0x08;
	ADC_Init();
	while (1)
	{
	
	}
}

//-----------------------------------------------------------------------------
// Initialization Subroutines
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// Sysclk_Init
//-----------------------------------------------------------------------------
//
// Return Value : None
// Parameters   : None
//
// Initialize the system clock and USB clock
//
//-----------------------------------------------------------------------------
void Sysclk_Init(void)
{
   OSCICN |= 0x03;                     // Configure internal oscillator for
                                       // its maximum frequency and enable
                                       // missing clock detector

   CLKMUL  = 0x00;                     // Select internal oscillator as	input to clock multiplier

   CLKMUL |= 0x80;                     // Enable clock multiplier
   Delay();                            // Delay for clock multiplier to begin
   CLKMUL |= 0xC0;                     // Initialize the clock multiplier
   Delay();                            // Delay for clock multiplier to begin

   while(!(CLKMUL & 0x20));            // Wait for multiplier to lock
   CLKSEL  = SYS_4X_DIV_2;             // Select system clock
   CLKSEL |= USB_4X_CLOCK;             // Select USB clock
}

//-----------------------------------------------------------------------------
// PORT_Init
//-----------------------------------------------------------------------------
//
// Return Value : None
// Parameters   : None
//
// This function configures the crossbar and GPIO ports.
//
// P1.7   analog                  Potentiometer
// P2.2   digital   push-pull     LED
// P2.3   digital   push-pull     LED
//-----------------------------------------------------------------------------
void Port_Init(void)
{
   P0SKIP   = 0xFF;	//0b11111111;	   // Port 0 pin 7 skipped by crossbar
   P0MDIN   = 0xFE;	//0b11111110;	   // Port 0 pin 6 set as no analog input
   P0MDOUT  = 0x00; //0b00000000;      // Port 0 pins 0-7 set push-pull

   P1SKIP   = 0x7F;	//0b01111111;      // Port 1 pin 7 skipped by crossbar
   P1MDIN   = 0xFE;	//0b11111111;      // Port 1 pin 6 set as no analog input
   P1MDOUT  = 0x14;	//0b00010100;      // Port 1 pins 0-7 set push-pull

   P2MDOUT |= 0x0C;                    // P2.2 and P2.3 set to push-pull

   XBR0     = 0x00;
   XBR1     = 0x41;                    // Enable Crossbar
}

//-----------------------------------------------------------------------------
// Usb0_Init
//-----------------------------------------------------------------------------
//
// Return Value : None
// Parameters   : None
// 
// - Initialize USB0
// - Enable USB0 interrupts
// - Enable USB0 transceiver
// - Enable USB0 with suspend detection
//-----------------------------------------------------------------------------
void Usb0_Init(void)
{
   // Set initial values of In_Packet and Out_Packet to zero
   // Initialized here so that WDT doesn't kick in first

   POLL_WRITE_BYTE(POWER,  0x08);      // Force Asynchronous USB Reset
   POLL_WRITE_BYTE(IN1IE,  0x0F);      // Enable Endpoint 0-2 in interrupts
   POLL_WRITE_BYTE(OUT1IE, 0x0F);      // Enable Endpoint 0-2 out interrupts
   POLL_WRITE_BYTE(CMIE,   0x07);      // Enable Reset,Resume,Suspend interrupts

   USB0XCN = 0xE0;                     // Enable transceiver; select full speed
   POLL_WRITE_BYTE(CLKREC, 0x80);      // Enable clock recovery, single-step mode disabled
  
   EIE1 |= 0x02;                       // Enable USB0 Interrupts
   EA = 1;                             // Global Interrupt enable
                                       // Enable USB0 by clearing the USB Inhibit bit

   POLL_WRITE_BYTE(POWER,  0x01);      // and enable suspend detection
}


//-----------------------------------------------------------------------------
// Delay
//-----------------------------------------------------------------------------
//
// Used for a small pause, approximately 80 us in Full Speed,
// and 1 ms when clock is configured for Low Speed
//
//-----------------------------------------------------------------------------

void Delay(void)
{
   int x;
   for(x = 0;x < 500;x)
      x++;
}

void Timer_Init(void)	  // Initialize timer3
{
	TMR3RLL = 0x30;
	TMR3RLH = 0xF8;
	TMR3CN = 0x04; 		  // start timer3
	EIE1 |= 0x80;		  //Enable Timer3 Interrupt
}                       

void ADC_Init(void)
{
	AMX0P = 0x00;
	AMX0N = 0x1F;
	ADC0CF = 0x44;
	ADC0CN = 0x90;
}

//1ms tick 
// handles general timing functions and blinks the LED 
void usb_1ms_tick(void) interrupt 14
{
	TMR3CN &= 0x7F;
}


void adcisr(void) interrupt 10
{
	*pIn = ADC0H;
	if(pIn < buffer + 512)
		pIn++;
	ADC0CN = 0x90;

}

//-----------------------------------------------------------------------------
// End Of File
//-----------------------------------------------------------------------------

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美综合在线| 91国内精品野花午夜精品| 欧美一区二区三区视频免费播放 | 精品一区二区三区不卡| 欧美日本国产视频| 亚洲午夜国产一区99re久久| 97se亚洲国产综合自在线观| 国产日韩成人精品| 成人av网站大全| 欧美一级精品在线| 美洲天堂一区二卡三卡四卡视频| 91精品国产手机| 一个色妞综合视频在线观看| 色婷婷久久99综合精品jk白丝| 最新日韩av在线| 91官网在线免费观看| 午夜激情久久久| 欧美不卡一区二区| 国产精品一二一区| 久久久久久久久岛国免费| 国产精品18久久久久久久久| 国产欧美中文在线| 蜜臀av一区二区在线免费观看| 日韩欧美国产综合| 国产成人精品1024| 国产偷国产偷精品高清尤物| 国产成人av电影在线观看| 国产精品不卡一区二区三区| 色综合久久久久| 热久久国产精品| 精品国产露脸精彩对白 | 亚洲综合成人网| 日韩一级片网站| 粉嫩嫩av羞羞动漫久久久 | 欧美一区二区三区人| 韩国v欧美v日本v亚洲v| 欧美精彩视频一区二区三区| 99久久免费视频.com| 五月天激情综合网| 久久久久国产免费免费| 欧美性色黄大片| 国产一区二区调教| 亚洲婷婷综合久久一本伊一区| 欧美日韩第一区日日骚| 国产福利一区二区三区视频| 亚洲精品久久久久久国产精华液| 日韩一区二区中文字幕| av电影在线观看一区| 免费的国产精品| 最新国产精品久久精品| 欧美一卡2卡三卡4卡5免费| 久久精品国产澳门| 久久精品视频在线免费观看| 欧美三级乱人伦电影| 国产成人在线视频免费播放| 亚洲欧美乱综合| 亚洲444eee在线观看| 精品粉嫩aⅴ一区二区三区四区 | 成人激情午夜影院| 久久精品国产精品亚洲综合| 亚洲国产aⅴ成人精品无吗| 亚洲丝袜美腿综合| 中文字幕免费不卡在线| 久久一日本道色综合| 日韩一区二区在线看| 欧美精品国产精品| 欧美性生活大片视频| 欧美最新大片在线看| 色欧美88888久久久久久影院| 波波电影院一区二区三区| 国产电影精品久久禁18| 国产一区二区按摩在线观看| 美洲天堂一区二卡三卡四卡视频| 亚洲成国产人片在线观看| 亚洲狠狠丁香婷婷综合久久久| 亚洲国产精品成人久久综合一区| 26uuu国产日韩综合| 精品成人一区二区三区四区| 日韩欧美亚洲国产另类| 日韩欧美成人一区二区| 欧美成人一区二区三区| 亚洲精品一区二区三区福利 | 国产精品美女视频| 国产精品色哟哟| 日韩美女视频一区二区| 亚洲码国产岛国毛片在线| 一区二区国产视频| 五月婷婷综合网| 蜜臀久久99精品久久久久宅男 | 成人一区二区三区在线观看| 成人免费黄色大片| 色综合中文字幕国产 | 日韩激情在线观看| 毛片一区二区三区| 国产一区在线观看麻豆| 成人激情小说网站| 欧美吻胸吃奶大尺度电影| 91精品国产91久久综合桃花| 久久综合久久鬼色中文字| 欧美国产激情二区三区| 午夜av一区二区| 另类综合日韩欧美亚洲| 国产麻豆成人精品| proumb性欧美在线观看| 欧美三级中文字| 欧美精品一区二区高清在线观看| 国产欧美精品一区二区色综合 | 精品亚洲免费视频| 成人午夜av电影| 日本韩国精品在线| 精品少妇一区二区三区视频免付费 | 99久久久久久| 91麻豆精品国产自产在线| 久久午夜国产精品| 亚洲男人都懂的| 美女精品一区二区| av在线不卡网| 日韩精品中文字幕一区二区三区 | 亚洲理论在线观看| 美国十次综合导航| 99re这里只有精品首页| 欧美一卡2卡3卡4卡| 1区2区3区精品视频| 蜜桃视频在线观看一区二区| 不卡的看片网站| 欧美一区二区三区免费| 中文字幕欧美激情| 免费人成在线不卡| www.亚洲在线| 日韩欧美一级二级| 一区二区三区日韩精品| 国产成a人亚洲精| 666欧美在线视频| 亚洲欧美二区三区| 国产精品一区二区在线观看网站 | 精品影院一区二区久久久| 色素色在线综合| 国产日韩精品一区二区三区在线| 亚洲gay无套男同| 972aa.com艺术欧美| 国产三级精品三级| 美腿丝袜亚洲一区| 欧美日韩一区二区在线观看视频| 国产日韩精品一区二区浪潮av| 日韩国产在线观看一区| 色播五月激情综合网| 国产欧美精品日韩区二区麻豆天美| 午夜精品视频一区| 欧美最新大片在线看| 国产精品护士白丝一区av| 国内精品伊人久久久久影院对白| 欧美日本乱大交xxxxx| 一区二区三区不卡视频| 色综合久久综合网| 国产精品福利电影一区二区三区四区 | 亚洲国产成人一区二区三区| 日韩av高清在线观看| 欧美在线一二三四区| 亚洲欧洲精品天堂一级| 岛国精品在线观看| 国产精品视频第一区| 风流少妇一区二区| 国产日产欧美一区二区视频| 国产在线精品国自产拍免费| 日韩一区二区三区四区| 亚洲成在线观看| 7777精品伊人久久久大香线蕉完整版 | 亚洲成人三级小说| 欧美日韩久久久久久| 亚洲成人av一区二区三区| 欧美专区日韩专区| 亚洲成a人在线观看| 欧美日韩一区久久| 午夜精品免费在线观看| 欧美精品在线视频| 日本不卡123| 久久九九久久九九| 成人a免费在线看| 亚洲人午夜精品天堂一二香蕉| 91在线视频免费观看| 亚洲人成7777| 欧美高清www午色夜在线视频| 三级影片在线观看欧美日韩一区二区| 欧美巨大另类极品videosbest | 久久女同精品一区二区| 国产精品一区二区果冻传媒| 国产无一区二区| 91蝌蚪porny| 午夜精品久久久久久久99水蜜桃| 91精品国产综合久久久久久漫画 | 久久久久久亚洲综合| www.亚洲免费av| 亚洲大片在线观看| 精品国产乱码久久久久久浪潮 | 午夜精品免费在线观看| 2022国产精品视频| 色婷婷久久一区二区三区麻豆| 日韩专区一卡二卡| 国产精品色呦呦| 91精品婷婷国产综合久久性色|