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

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

?? banking.c

?? UPSD單片機驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*------------------------------------------------------------------------------
banking.c

Version: 
November 23, 2004 Version 2.0 - This is the initial release of the banking demo
for the DK3300-ELCD board.

Description:
This is the banking demo for the uPSD33xx.  This demo is composed of four Demo 
Applications (PWM-ADC, I2C-RTC, Banking and Benchmark) and makes use of the 
Encoder located on the DK boards to select the various menus and control the 
demo.  

This demo is an adaption of the banking demo that runs on the original DK3300 
(that has a 2 line x 16 character dot matrix LCD).  The changes are mainly 
related to the device driver for the enhanced LCD (ELCD) and storage of the 
Tamper Event records in the RTC RAM instead of the SPI EEPROM.  Also added to 
the demo is an option to select whether it runs with English or Chinese 
messages.  


Hardware Platform:
DK3300-ELCD


Copyright (c) 2004 STMicroelectronics Inc.

This example demo code is provided as is and has no warranty,
implied or otherwise.  You are free to use/modify any of the provided
code at your own risk in your applications with the expressed limitation
of liability (see below) so long as your product using the code contains
at least one uPSD products (device).

LIMITATION OF LIABILITY:   NEITHER STMicroelectronics NOR ITS VENDORS OR 
AGENTS SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA,
INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER THIS AGREEMENT OR
OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
------------------------------------------------------------------------------*/
#include "upsd3300.h"
#include "upsd3300_hardware.h"
#include "upsd3300_adc.h"
#include "upsd3300_timer.h"
#include "upsd3300_lcd.h"
#include "upsd3300_pca-pwm.h"
#include "upsd3300_i2c.h"
#include "st87.h"
#include "encoder.h"

#include "math.h"
#include "key.h"
#include "intrins.h"

unsigned int benchmark(void);   // external proto type definition for assembly benchmark routine

unsigned char idata  msg_buff[20];
xdata PSD_REGS PSD_reg _at_ PSD_REG_ADDR; 
extern xdata unsigned char i2c_xmit_buf[256];
extern xdata unsigned char i2c_rcv_buf[256];
extern Time st87;
unsigned char idata flag = 0;
extern void STname(void);

void init_msgbuff(unsigned char *dataptr, unsigned char *buffptr)
{
   unsigned char i;
   unsigned char code * temp_add;
   unsigned char src_code;
   unsigned char * dest_add;
   
   for (i=0; i<20; i++)
   {
      temp_add =  (unsigned char code*) (dataptr + i);    // get message byte
      src_code =  *  temp_add;
      dest_add = (unsigned char *) (buffptr + i);         // put message byte
      * dest_add = src_code;
   }
}

// Display selected item in main menu based on Menu_Index
void Show_Menu(unsigned char m_Menu_Index)
{
   lcd_clear();
   switch(m_Menu_Index)
   {
   case 0:
      printfLCD(">PWM/ADC  I2CRTC" );
      printfLCD("\n Banking  Bench\n" );
   break;
   case 1:
      printfLCD(" PWM/ADC >I2CRTC" );
      printfLCD("\n Banking  Bench\n" );
   break;
   case 2:
      printfLCD(" PWM/ADC  I2CRTC" );
      printfLCD("\n Banking >Bench\n" );
   break;
   case 3:
      printfLCD(" PWM/ADC  I2CRTC" );
      printfLCD("\n>Banking  Bench\n" );
   break;
   }
}

void Show_Menu2(unsigned char m_Menu_Index)
{
	lcd_clear();
	switch(m_Menu_Index)
	{
	case 0:

		printfLCD(">  ENGLISH" );
		printfLCD("\n    中文" );
		flag = 1;
	
	break;
	case 1:
	
		printfLCD("   ENGLISH" );
		ulayer = 3;
		ucol = 0;
	
	printfLCD(">   中文" );
		flag =0;
	break;
	}
}

void Tamper_check()
{
	unsigned char Tamper_sum,Tamper_No;
	signed char Menu_Index;
	unsigned char temp,temp_Dir = 0;

	if((ST87_tamper_check())==1)
	{
        lcd_clear();
		if(flag)
		{
        	printfLCD("New Tamper event" );
    		printfLCD("\n--record saved--" );
		}
		else
	 	{
			printfLCD("新觸發事件" );
    		printfLCD("\n--已記錄--" );
	 	}
		ST87_tamper_save();
		delay_1sec();
		delay_1sec();

        lcd_clear();
		if(flag)
		{
       		printfLCD("Turn Enc. to see" );
        	printfLCD("\nTamper Records" );
		}
		else
		 {
			printfLCD("轉動編碼器查看" );
        	printfLCD("\n觸發記錄" );
	 	}
		delay_1sec();
		delay_1sec();
		delay_1sec();
			
		i2c_xmit_buf[0] = 0x20;		// Setup ST87 start address
		Turbo_i2c_MX (0xD0,1);		// send 1 bytes for st87: addr 0xD0, @ 0x00
	 	Turbo_i2c_MR (0xD0,2);	    // Read address 0x0F for check TB1 and TB2 bits   
		Tamper_sum=i2c_rcv_buf[0];
		Tamper_No=i2c_rcv_buf[1];

		if(Tamper_sum>Tamper_No)temp=Tamper_sum;
		else temp=Tamper_No;
		Menu_Index=0;
		ST87_tamper_Show(Menu_Index);
	
		temp_Dir = 0; 
		while(temp_Dir!=3) 
		{
			temp_Dir=Polling_Encoder();
			if(temp_Dir==2)	
			{
				Menu_Index++;
				if(Menu_Index>=temp)Menu_Index=0;
				ST87_tamper_Show(Menu_Index);
			}
			else if(temp_Dir==1)
			{
				Menu_Index--;
				if(Menu_Index<0)Menu_Index=temp-1;
				ST87_tamper_Show(Menu_Index);
			}
				
			PSD_reg.DIRECTION_B|=0x80;
			PSD_reg.DATAOUT_B|=0x80;
			PSD_reg.DIRECTION_B&=0x7F;	// IN direction
		}
        lcd_clear();
	}
}


// Main Program

main()
{  
   unsigned char temp_Dir =0;
   unsigned char event, k, ADC_channel;
   signed char Menu_Index;
   unsigned int ADC_result;
   unsigned char tmp;
   unsigned int end_time, delta_time, mips, instr, ns_T0, T0_clks, instructions; 

   PSD_reg.VM |= 0x80;                       //Enable peripheral I/O
   timer0_init(); 
   ADC_Init(7);
   lcd_init();  
   lcd_clear();    
   printfLCD("DK3300-ELCD Demo");      
   printfLCD("\nV2.0 Turbo uPSD");
   delay_1sec();
   delay_1sec();
   delay_1sec();
   lcd_clear();               
   printfLCD("Turn Encoder R/L");                     
   printfLCD("\nPress to Select");
   delay_1sec();
   delay_1sec();
   delay_1sec();
   
//------------------------------------------------------------------------------
Menu_Index=0;
	PSD_reg.OMC_AB&=0xF8;
	PSD_reg.OMC_AB|=0x04;
	Show_Menu2 (Menu_Index);
temp_Dir = 0;
	while(temp_Dir!=3)
	{
		temp_Dir=Polling_Encoder();
		if(temp_Dir==2)
		{
				Menu_Index++;
				if(Menu_Index==2)Menu_Index=0;
				Show_Menu2 (Menu_Index);
		}
		else if(temp_Dir==1)
		{
				Menu_Index--;
				if(Menu_Index==-1)Menu_Index=1;
				Show_Menu2 (Menu_Index);
		}
		
		PSD_reg.DIRECTION_B|=0x80;
		PSD_reg.DATAOUT_B|=0x80;
		PSD_reg.DIRECTION_B&=0x7F;	// IN direction
		
	}
//----------------------------------------------------------------------------------------

RESTART:
	//-----Waiting user select a demo to run-----------------------------------------
	//	use OMC_AB[0,1] as a 2-bit counter to identify running of Encoder
	//	use OMC_AB[2] as a running direction indication of Encoder
	//-------------------------------------------------------------------------------
	Menu_Index=0;
	PSD_reg.OMC_AB&=0xF8;
	PSD_reg.OMC_AB|=0x04;
	Show_Menu (Menu_Index);

	temp_Dir = 0;
	while(temp_Dir!=3)
	{
		temp_Dir=Polling_Encoder();
		if(temp_Dir==2)
		{
				Menu_Index++;
				if(Menu_Index==4)Menu_Index=0;
				Show_Menu (Menu_Index);
		}
		else if(temp_Dir==1)
		{
				Menu_Index--;
				if(Menu_Index==-1)Menu_Index=3;
				Show_Menu (Menu_Index);
		}
		
		PSD_reg.DIRECTION_B|=0x80;
		PSD_reg.DATAOUT_B|=0x80;
		PSD_reg.DIRECTION_B&=0x7F;	// IN direction
		
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品91久久久久久清纯| 一区二区日韩电影| 麻豆精品国产91久久久久久| 欧美日本在线一区| 天堂资源在线中文精品| 欧美一区二区三区四区高清| 蜜臀精品一区二区三区在线观看 | 国产精品久久久久三级| 不卡电影一区二区三区| 亚洲精品国产视频| 欧美日韩中文国产| 精品一区二区在线观看| 日本一区二区三区国色天香 | 国产成人在线网站| 日本一区二区三区四区在线视频 | 欧美亚洲国产一区二区三区| 天堂资源在线中文精品| 国产日韩欧美精品综合| 97久久精品人人澡人人爽| 亚洲高清免费视频| 日韩欧美电影在线| aaa国产一区| 五月天激情综合网| 国产日韩精品一区二区三区| 91丝袜美女网| 丝袜a∨在线一区二区三区不卡| 欧美tickling挠脚心丨vk| 成人h版在线观看| 五月激情六月综合| 亚洲国产精品二十页| 欧美性大战久久久| 国产高清亚洲一区| 亚洲成年人影院| 国产欧美日韩精品一区| 欧美日韩国产经典色站一区二区三区 | 亚洲成a人v欧美综合天堂 | 国产精品久久99| 在线不卡免费欧美| 成人动漫在线一区| 免费成人深夜小野草| 中文字幕一区二区三区在线不卡 | 欧美少妇一区二区| 国产成人欧美日韩在线电影| 欧美成人一区二区三区| 成人免费黄色大片| 国产欧美精品一区二区色综合 | 久久久国产午夜精品| 亚洲天堂免费看| 成人av在线网站| 樱花影视一区二区| 亚洲国产中文字幕在线视频综合| 国产成人a级片| 三级不卡在线观看| 色综合中文综合网| 欧美精品三级日韩久久| 成人黄色av电影| 黄色资源网久久资源365| 一区二区三区在线免费观看| 国产日韩欧美麻豆| 精品第一国产综合精品aⅴ| 欧美精品一级二级| 色综合咪咪久久| 成人激情视频网站| 国产综合成人久久大片91| 日韩黄色免费网站| 亚洲国产日韩a在线播放性色| 久久97超碰国产精品超碰| 欧美激情综合在线| 成人激情电影免费在线观看| 中文av一区二区| 国产.精品.日韩.另类.中文.在线.播放| 欧美国产亚洲另类动漫| 日韩色视频在线观看| 日韩区在线观看| 国模套图日韩精品一区二区| 久久五月婷婷丁香社区| 亚洲成人自拍网| 国产精品久久看| 中文字幕欧美国产| 欧美激情一区在线观看| 国产欧美精品在线观看| 日韩国产精品久久久| 丝袜美腿亚洲综合| 日本aⅴ亚洲精品中文乱码| 亚洲成av人片在线观看无码| 9人人澡人人爽人人精品| 国产一区二区女| 一区二区三区在线影院| 亚洲免费观看高清完整版在线观看熊 | 国产一区在线观看麻豆| 久久综合色播五月| 在线电影欧美成精品| 亚洲成人在线观看视频| 欧美一区二区三区视频免费播放| 成人激情免费网站| 青青草精品视频| 国产精品中文字幕欧美| 不卡一区二区在线| 欧美三区在线观看| 日韩视频免费观看高清完整版 | 久久精品一区二区| 国产精品久久久久9999吃药| 一区二区三区欧美在线观看| 蜜桃久久久久久| 91亚洲精品一区二区乱码| 日韩欧美视频在线| 国产欧美日本一区视频| 亚洲精品久久久久久国产精华液| 日本不卡一区二区| 99免费精品视频| 久久免费午夜影院| 天天色图综合网| 在线免费观看视频一区| 国产精品午夜电影| 成人污污视频在线观看| 国产精品亚洲人在线观看| 欧美日韩一二三区| 亚洲综合一区在线| 欧美综合久久久| 亚洲欧美在线视频| 波波电影院一区二区三区| 日韩免费电影网站| 美腿丝袜亚洲色图| 日韩一级大片在线观看| 亚洲成人免费视频| 91视频在线观看免费| 欧美一卡2卡三卡4卡5免费| 亚洲国产日韩a在线播放| 欧美影院午夜播放| 日韩中文字幕av电影| 欧美一三区三区四区免费在线看| 亚洲综合一区二区| 欧美丰满嫩嫩电影| 国产一区二区三区四区在线观看| 亚洲精品在线观看视频| 亚洲欧洲色图综合| 国产精品一二三四| 国产精品国产自产拍高清av王其| 粉嫩绯色av一区二区在线观看| 国产三区在线成人av| 91亚洲精品一区二区乱码| 亚洲精品高清视频在线观看| 在线观看不卡一区| 久久精品国产亚洲a| 26uuu欧美| 首页国产丝袜综合| 久久久精品日韩欧美| 91麻豆视频网站| 捆绑调教美女网站视频一区| 中文字幕av一区二区三区免费看 | 亚洲欧美日韩中文字幕一区二区三区| 高清不卡在线观看| 亚洲日本乱码在线观看| 首页国产欧美日韩丝袜| 国产精品久久一卡二卡| 欧美日韩大陆一区二区| av在线播放不卡| 精品亚洲免费视频| 一区二区三区国产豹纹内裤在线| 久久亚洲精品国产精品紫薇| 欧美日本在线一区| 欧美日韩综合不卡| 91丨九色丨国产丨porny| 精品国产欧美一区二区| 国产精品18久久久久久久久久久久| 亚洲一卡二卡三卡四卡| 国产精品国产三级国产aⅴ中文| 欧美变态口味重另类| 欧美精品v国产精品v日韩精品| 美日韩黄色大片| 青草国产精品久久久久久| 一区二区三区在线视频免费| 中文字幕色av一区二区三区| 国产三级一区二区| 激情综合色播激情啊| 亚洲图片欧美综合| 日韩福利电影在线观看| 免费精品99久久国产综合精品| 日本美女视频一区二区| 另类专区欧美蜜桃臀第一页| 国产剧情av麻豆香蕉精品| 蜜乳av一区二区| 国产91高潮流白浆在线麻豆| 91小视频在线免费看| 欧美视频在线观看一区二区| 亚洲国产精品成人综合| 精品国产一区二区三区不卡| 国产精品日日摸夜夜摸av| 一区二区三区中文免费| 日本美女一区二区三区视频| 成人a区在线观看| 日韩一区二区不卡| 一区二区免费看| 国产一区二区三区在线观看精品| 国产精品一区二区免费不卡 | 亚洲图片激情小说| 亚洲黄一区二区三区| 日本免费在线视频不卡一不卡二| 岛国一区二区在线观看| 欧美一区二区精品|