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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? f34x_msd_usb_main.c

?? 有關單片機的學習文檔
?? C
字號:
//-----------------------------------------------------------------------------
// F34x_MSD_USB_Main.c
//-----------------------------------------------------------------------------
// Copyright 2007 Silicon Laboratories, Inc.
// http://www.silabs.com
//
// Program Description:
//
// File contains the main loop of application. It also contains small delay
// function and some simple initializations (CPU, Ports)
//
// How To Test:    See Readme.txt
//
//
// FID:            34X000062
// Target:         C8051F34x
// Tool chain:     Keil
// Command Line:   See Readme.txt
// Project Name:   F34x_USB_MSD
//
// REVISIONS:  11/22/02 - DM:  Added support for switches and sample USB
// interrupt application.
//
// Release 1.2
//    -All changes by BD and PD
//    -5 OCT 2007
//    -No changes; incremented revision number to match project revision
//
// Release 1.1
//    -All changes by PKC
//    -09 JUN 2006
//    -Replaced SFR definitions file "c8051f320.h" with "c8051f340.h"
//
// Release 1.0
//    -Initial Release
//

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

#include "F34x_MSD_Definitions.h"
#include "F34x_MSD_Physical_Settings.h"
#include "F34x_MSD_CF_Basic_Functions.h"
#include "c8051f340.h"
#include "F34x_MSD_USB_Register.h"
#include "F34x_MSD_USB_Main.h"
#include "F34x_MSD_USB_Descriptor.h"
#include "F34x_MSD_VBUS_Functions.h"

#include "F34x_MSD_Sect_Serv.h"
#include "F34x_MSD_Msd.h"
#include "F34x_MSD_UART.h"
#include "F34x_MSD_File_System.h"
#include <stdio.h>


#include "F34x_MSD_Cmd.h" //wozb - 27-09-2005 - it's not need it was used to communicate via uart
#include "F34x_MSD_Log.h" //wozb - 27-09-2005 - it's not need it was used to communicate via uart

#include "F34x_MSD_Temp_Sensor.h"

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

sfr16 TMR2RL   = 0xca;                   // Timer2 reload value
sfr16 TMR2     = 0xcc;                   // Timer2 counter

sbit C_PWR = P1^7;
//-----------------------------------------------------------------------------
// Main Routine
//-----------------------------------------------------------------------------
volatile DWORD xdata tickcount=0;

extern void Wait_ms(unsigned int count);

//----------------------------------------------------------------------------
// main
//----------------------------------------------------------------------------
//
// Main loop
//
// Parameters   :
// Return Value :
//----------------------------------------------------------------------------

void main(void) {
	PCA0MD &= ~0x40;                       // Disable Watchdog timer

	Sys_Clk_Init();                         // Initialize oscillator

	Port_Init();                           // Initialize crossbar and GPIO



	UART0_Init();

#ifdef __F340_VER__
	Init_Temp_Sensor();						// initialize temerature sensor
#endif
	Sect_Init();

	Timer_Init();                          // Initialize timer2

	USB0_Init();                           // Initialize USB0



#ifdef __F340_VER__
	FileSys_Init();
#endif

	Cmd_Init();



	USB_Bulk_Init();

	while (1) {
		Cmd_Step();
		Msd_Step();
		Log_Step();
#ifdef __F340_VER__
		Temp_Log_Step();
		Switch_On_Off_UART();
#endif
	}
}

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

//----------------------------------------------------------------------------
// Sys_Clk_Init
//----------------------------------------------------------------------------
//
// This routine initilizes the system clock and USB clock
//
// Parameters   :
// Return Value :
//----------------------------------------------------------------------------

void Sys_Clk_Init(void)
{
#ifdef _USB_LOW_SPEED_

   OSCICN |= 0x03;                       // Configure internal oscillator for
                                         // its maximum frequency and enable
                                         // missing clock detector

   CLKSEL  = SYS_INT_OSC;                // Select System clock
   CLKSEL |= USB_INT_OSC_DIV_2;          // Select USB clock
#else
   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();

   while(!(CLKMUL & 0x20));                // Wait for multiplier to lock
#ifdef __F340_VER__
#ifdef F340_24M
  CLKSEL = SYS_4X_DIV_2;
#else
  CLKSEL = SYS_4X_MUL;
#endif
#else
#ifdef __F326_VER__
   CLKSEL  = SYS_4X_DIV_2;
#else
   CLKSEL  = SYS_INT_OSC;                // Select system clock
#endif
#endif
   CLKSEL |= USB_4X_CLOCK;               // Select USB clock
#endif  /* _USB_LOW_SPEED_ */
}


//----------------------------------------------------------------------------
// Port_Init
//----------------------------------------------------------------------------
//
// Configure the Crossbar and GPIO ports.
//
// Parameters   :
// Return Value :
//----------------------------------------------------------------------------

void Port_Init(void) {
	// Default values on reset:
	// P0MDIN=0xFF;		P1MDIN=0xFF;	P2MDIN=0xFF;	P3MDIN=0xFF;
	// P0MDOUT=0x00;	P1MDOUT=0x00;	P2MDOUT=0x00;	P3MDOUT=0x00;
	// P0SKIP=0x00;		P1SKIP=0x00;	P2SKIP=0x00;
	// XBR0=0x00;
	data	int i;
#ifdef __F326_VER__

	GPIOCN |= 0x40;
	P0MDOUT = 0x0d;
	P0 |= 0x02;
	SCS = 1;
	SCLK = 1;
#else
	P1MDIN = 0xff;

//   P1MDIN  = 0x7F;                        // Port 1 pin 7 set as analog input
   ////p1.0 - out,p1.1-out,p1.2 - out,p1.3 -in,p1.4 - in p1.6 - out
   P1MDOUT = 0xC7;
   P1 = 0x18;
   P3MDIN = 0xff;
   P3MDOUT = 0xFF;
   P3 &= ~(0xe0) ;
   P4MDIN = 0xff;
   P4MDOUT = 0x00;
   P4  = 0xff;
   P0MDOUT = 0x1D;                    // enable TX0,SCK,MOSI as a push-pull
   P2MDOUT = 0x0C;                    // enable LEDs as a push-pull output
   XBR0    = 0x03;                     // UART0 TX and RX pins enabled, SPI enabled
   XBR1=(0x40 | 0x80); // Enable crossbar, disable weak pull-up
  // XBR1=0x40 ;
   CF_OE = 0;
   C_PWR = 1;
	for(i=0;i<5000;i++)
	   Delay();
   XBR1 &= ~ 0x80;
   CF_OE = 1;
   C_PWR = 0;
   	for(i=0;i<5000;i++)
	   Delay();
   XBR1 |= 0x80; // week pull-up off for CF
#endif

}


//----------------------------------------------------------------------------
// USB0_Init
//----------------------------------------------------------------------------
//
// USB Initialization
// - Initialize USB0
// - Enable USB0 interrupts
// - Enable USB0 transceiver
// - Enable USB0 with suspend detection
//
// Parameters   :
// Return Value :
//----------------------------------------------------------------------------

void USB0_Init(void)
{
   POLL_WRITE_BYTE(POWER,  0x08);          // Force Asynchronous USB Reset
   POLL_WRITE_BYTE(IN1IE,  0x07);          // Enable Endpoint 0-2 in interrupts
   POLL_WRITE_BYTE(OUT1IE, 0x07);          // Enable Endpoint 0-2 out interrupts
   POLL_WRITE_BYTE(CMIE,   0x07);          // Enable Reset, Resume, and Suspend interrupts
#ifdef _USB_LOW_SPEED_
   USB0XCN = 0xC0;                         // Enable transceiver; select low speed
   POLL_WRITE_BYTE(CLKREC, 0xA0);          // Enable clock recovery; single-step mode
                                           // disabled; low speed mode enabled
#else
   USB0XCN = 0xE0;                         // Enable transceiver; select full speed
   POLL_WRITE_BYTE(CLKREC, 0x80);          // Enable clock recovery, single-step mode
                                           // disabled
#endif /* _USB_LOW_SPEED_ */

   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


}


//----------------------------------------------------------------------------
// Timer_Init
//----------------------------------------------------------------------------
//
// Timer initialization
// - Timer 2 reload, used to check if switch pressed on overflow and
// used for ADC continuous conversion
//
// Parameters   :
// Return Value :
//----------------------------------------------------------------------------

void Timer_Init(void)
{
#ifdef __F326_VER__
	TMOD = 0x01;						//Timer 0 - 16 bit timer
	CKCON = 0x00;
	TL0		= 0x2e;
	TH0		= 0xf8;
	ET0		= 1;						// enable timer 0 interrupt
    TR0		= 1;						// start timer 0
#else

   TMR2CN  = 0x00;                        // Stop Timer2; Clear TF2;

   CKCON  &= ~0xF0;                       // Timer2 clocked based on T2XCLK;
   TMR2RL  = 0xF000;                      // Initialize reload value
   TMR2    = 0xffff;                      // Set to reload immediately

   ET2     = 1;                           // Enable Timer2 interrupts
   TR2     = 1;                           // Start Timer2
#endif
}


//----------------------------------------------------------------------------
// Timer2_ISR
//----------------------------------------------------------------------------
//
// Timer 2 interrupt routine
// Called when timer 2 overflows
//
// Parameters   :
// Return Value :
//----------------------------------------------------------------------------

#ifndef __F326_VER__
void Timer2_ISR(void) interrupt 5 {
	tickcount++;
#ifdef __F340_VER__
#ifdef F340_24M
	TMR2RL = 0xF82e;
#endif
	TMR2RL = 0xF05e;
//	TMR2RL = 0xFC16;
#else
	TMR2RL = 0xFC16; 		// Re-initialize reload value (1kHz, 1ms)
#endif
	//TMR2RL = 0xE0B0; 		// Re-initialize reload value (125Hz, 8ms)
	TF2H=0; 				// Clear interrupt
}

#else

//----------------------------------------------------------------------------
// Timer0_ISR
//----------------------------------------------------------------------------
//
// Timer 0 interrupt routine
// Called when timer 0 overflows
//
// Parameters   :
// Return Value :
//----------------------------------------------------------------------------
void Timer0_ISR(void) interrupt 1
{

	TL0		+= 0x2e;
	TH0		= 0xf8;
	tickcount++;
}
#endif


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

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


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜在线影院| 国产精品一二三在| 欧美日韩1区2区| 婷婷一区二区三区| 69久久99精品久久久久婷婷| 性做久久久久久免费观看| 91精品国产色综合久久| 精品一区免费av| 中文字幕成人在线观看| 在线观看日韩一区| 免费观看一级特黄欧美大片| 久久美女艺术照精彩视频福利播放 | 精品一区二区三区久久| 26uuu亚洲婷婷狠狠天堂| 国产传媒一区在线| 亚洲少妇最新在线视频| 成人h精品动漫一区二区三区| 国产成人精品免费| 日韩一区中文字幕| 欧美三级日韩三级国产三级| 免费观看30秒视频久久| 国产婷婷色一区二区三区在线| 91色在线porny| 奇米色777欧美一区二区| 精品久久一区二区| 久久99精品久久久久| 一色桃子久久精品亚洲| 久久伊人蜜桃av一区二区| 欧美疯狂做受xxxx富婆| 国产精一区二区三区| 亚洲国产视频一区| 国产亚洲一区二区在线观看| 色婷婷av一区二区三区之一色屋| 青青国产91久久久久久| 18欧美亚洲精品| 精品国产凹凸成av人导航| 日本韩国精品在线| 国产剧情一区二区| 日韩综合小视频| 亚洲免费色视频| 国产校园另类小说区| 3d动漫精品啪啪1区2区免费| 99re这里都是精品| 国模少妇一区二区三区| 亚洲不卡在线观看| 国产精品不卡视频| 久久伊99综合婷婷久久伊| 欧美福利电影网| 色菇凉天天综合网| 国产v综合v亚洲欧| 激情图片小说一区| 肉肉av福利一精品导航| 一区二区三区不卡视频在线观看| 国产日韩影视精品| 日韩欧美高清在线| 欧美精品aⅴ在线视频| 色88888久久久久久影院野外| 豆国产96在线|亚洲| 麻豆精品蜜桃视频网站| 亚洲一区二区三区不卡国产欧美| 中文字幕欧美激情| 久久久精品综合| 精品国产乱码久久久久久夜甘婷婷| 欧美视频日韩视频| 色94色欧美sute亚洲线路一ni | 成人高清伦理免费影院在线观看| 免费人成精品欧美精品| 亚洲电影一级片| 一区2区3区在线看| 亚洲激情在线激情| 亚洲人精品一区| 亚洲人妖av一区二区| 中文字幕一区二区在线播放 | 91蜜桃视频在线| 白白色 亚洲乱淫| 成人视屏免费看| 丰满亚洲少妇av| 丁香婷婷综合五月| 成人理论电影网| 不卡的电影网站| av成人免费在线| 五月天丁香久久| 国产视频一区不卡| 久久久亚洲欧洲日产国码αv| 久久综合九色欧美综合狠狠| 精品久久久久久久久久久院品网| 日韩精品中午字幕| 欧美精品一区二区三区一线天视频 | 91蝌蚪porny| 99视频超级精品| 91丨porny丨首页| 在线中文字幕一区| 在线视频一区二区三区| 国产成人8x视频一区二区| 韩国av一区二区| 日本一不卡视频| 国产在线视频一区二区三区| 中文字幕av不卡| 一区二区三区在线高清| 亚洲va欧美va人人爽| 久久激五月天综合精品| 国产高清不卡一区| 一本久久综合亚洲鲁鲁五月天| 欧美视频在线观看一区二区| 日韩一区二区在线观看视频| 久久精品视频免费| 亚洲精品日韩综合观看成人91| 午夜精品久久久久| 国产乱理伦片在线观看夜一区 | 成人一区二区三区视频在线观看| 中文字幕av一区二区三区| 不卡视频在线观看| 日本韩国欧美在线| 日韩欧美一区二区视频| 久久久久99精品国产片| 一区二区三区日韩欧美| 日本欧美在线观看| 成人午夜激情在线| 欧美一区二区人人喊爽| 国产精品水嫩水嫩| 日韩电影在线一区二区三区| 成人免费观看视频| 在线电影欧美成精品| 国产精品欧美久久久久一区二区| 亚洲二区在线视频| 懂色av中文一区二区三区 | 国产 欧美在线| 欧美日韩在线三级| 国产女人水真多18毛片18精品视频| 亚洲国产精品久久久久秋霞影院| 国产伦精品一区二区三区免费| 在线视频你懂得一区二区三区| xfplay精品久久| 日日夜夜精品视频天天综合网| 成人国产电影网| 精品入口麻豆88视频| 国产精品综合一区二区三区| 一区二区三区免费网站| 久久精品国产**网站演员| 欧洲日韩一区二区三区| 欧美—级在线免费片| 精品一区二区三区久久| 在线播放亚洲一区| 一区二区在线观看视频| 成人小视频免费观看| 久久综合丝袜日本网| 婷婷一区二区三区| 欧美日韩一区二区欧美激情| 国产精品麻豆久久久| 在线观看91av| 亚洲精品乱码久久久久久日本蜜臀| 国产一区二区伦理| 日韩欧美一区二区视频| 午夜欧美2019年伦理| 色婷婷狠狠综合| 中文字幕亚洲精品在线观看 | 亚洲一区在线观看免费观看电影高清| 国产成人亚洲综合a∨婷婷图片 | 国模冰冰炮一区二区| 91精品欧美一区二区三区综合在 | 成人av电影在线播放| 久久亚洲一区二区三区明星换脸| 日日摸夜夜添夜夜添亚洲女人| 欧洲精品在线观看| 亚洲男人的天堂av| 91麻豆高清视频| 亚洲日本丝袜连裤袜办公室| 成人av网在线| 中文字幕免费一区| gogo大胆日本视频一区| 中文字幕综合网| 日本电影欧美片| 亚洲国产成人porn| 91精品综合久久久久久| 日韩av网站在线观看| 日韩精品中文字幕在线不卡尤物 | 美女在线观看视频一区二区| 欧美日韩国产首页在线观看| 视频一区二区中文字幕| 91精品婷婷国产综合久久性色| 蜜臀av一区二区三区| 欧美mv日韩mv国产| 国产精品一区二区在线观看不卡| 国产日韩影视精品| 91亚洲精品一区二区乱码| 亚洲自拍都市欧美小说| 欧美美女网站色| 另类小说综合欧美亚洲| 久久久久久免费网| 99麻豆久久久国产精品免费| 亚洲线精品一区二区三区| 欧美高清hd18日本| 国产伦理精品不卡| 亚洲伦理在线精品| 欧美一区二区三区影视| 国产精品自拍毛片| 亚洲一区二区三区中文字幕在线| 欧美精品电影在线播放| 国产99久久久国产精品潘金| 亚洲视频在线一区|