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

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

?? hms7202lib.c

?? 基于HMS7202的波形發生器源程序
?? C
字號:
 #include "reg7202.h"
 #include "utils.h"
 #include "ddscommand.h"


 static int ser0_open();
 static int ser1_open();
 static unsigned char serial0_inb(int);
 static unsigned char serial1_inb(int);
 static void interrupt_init();
 static void keyboard_init();
 static void lcd_init();
 static void pll_init();
 static void ser0_close();
 static void ser1_close();
 static void set_gpio_pin();
 static void ser0_putchar(char);
 static void ser1_putchar(char);

 int f_nDelayLoopCount;
/****************************************************************/
/*   set the Programmable Input /Output module (PIO)	*/
/****************************************************************/
 static void set_gpio_pin()
 {

/****************************************************************/
/*            set port a                              ***********/
/****************************************************************/

 *(volatile unsigned short *)PioAmuxctl =0x0000;
 *(volatile unsigned short *)PioAmuxsel =0x0000;
 *(volatile unsigned short *)PioADDR    =0xff00;//置位則設置為輸入口
 *(volatile unsigned short *)PioADR     =0xffff;//數據寄存器
 *(volatile unsigned short *)PioAIM     =0x0000;//置位則設置相應引腳為中斷源
 *(volatile unsigned short *)PioAIS     =0x0000;//無中斷
 *(volatile unsigned short *)PioAIE     =0x0000;//設置為電平觸發模式
 *(volatile unsigned short *)PioAIC     =0xffff;//清除中斷掛起位
 *(volatile unsigned short *)PioAIP     =0xffff;//低電平有效

/****************************************************************/
/*            set port b                              ***********/
/****************************************************************/

 *(volatile unsigned short *)PioBmuxctl =0x000;
 *(volatile unsigned short *)PioBDDR    =0x035;
 *(volatile unsigned short *)PioBDR     =0xfff;
 *(volatile unsigned short *)PioBIM     =0x000;
 *(volatile unsigned short *)PioBIS     =0x000;
 *(volatile unsigned short *)PioBIE     =0x000;
 *(volatile unsigned short *)PioBIC     =0xfff;
 *(volatile unsigned short *)PioBIP     =0xfff;
/****************************************************************/
/*            set port c                              ***********/
/****************************************************************/

 *(volatile unsigned short *)PioCmuxctl =0x000;
 *(volatile unsigned short *)PioCDDR    =0x084;
 *(volatile unsigned short *)PioCDR     =0x7ff;
 *(volatile unsigned short *)PioCIM     =0x000;
 *(volatile unsigned short *)PioCIS     =0x000;
 *(volatile unsigned short *)PioCIE     =0x000;
 *(volatile unsigned short *)PioCIC     =0x7ff;
 *(volatile unsigned short *)PioCIP     =0x7ff;
/****************************************************************/
/*            set port d                              ***********/
/****************************************************************/

 *(volatile unsigned short *)PioDmuxctl =0x000;
 *(volatile unsigned short *)PioDDDR    =0x000;
 *(volatile unsigned short *)PioDDR     =0x1ff;
 *(volatile unsigned short *)PioDIM     =0x000; 
 *(volatile unsigned short *)PioDIS     =0x000;
 *(volatile unsigned short *)PioDIE     =0x000;
 *(volatile unsigned short *)PioDIC     =0x1ff;
 *(volatile unsigned short *)PioDIP     =0x1ff;
/****************************************************************/
/*            set port e                              ***********/
/****************************************************************/
/****************************************************************
 PE0  PE1  PE2  PE3  PE4  PE5  PE6  PE7  PE8  PE9  PE10 PE11 PE12
 RD16 RD17 RD18 RD19 RD20 RD21 RD22 RD23 RD24 RD25 RD26 RD27 RD28
 
 PE13 PE14 PE15 PE16 PE17 PE18 PE19 PE20 PE21 PE22 PE23 PE24
 RD29 RD30 RD31 nRW2 nRW3 SSDI ZERO SSDO      pul1 pul2 RA24*/
 /*PE22 PE23作為旋鈕中段信號輸入線,上升沿有效*/ 

 *(volatile unsigned *)PioEmuxctl =0x0c00000;
 *(volatile unsigned *)PioEDDR    =0x0c00000;
 *(volatile unsigned *)PioEDR     =0x0000000;
 *(volatile unsigned *)PioEIM     =0x0c00000;
 *(volatile unsigned *)PioEIS     =0x0000000;
 *(volatile unsigned *)PioEIE     =0x0c00000;
 *(volatile unsigned *)PioEIC     =0x1ffffff;
 *(volatile unsigned *)PioEIP     =0x13fffff;
 *(volatile unsigned char *)PioSwap    =0x0;

 *(volatile unsigned char *)PioTictMDR =0x0;

 }



 static void pll_init()
 {	
	int val;
	val = _inw(PmuClkCtl);
//	_outw(PmuClkCtl, val | PmuPLL1En | PmuPLL2En );
	_outw(PmuClkCtl, val | PmuPLL1En | PmuPLL2En | PmuPLL3Mute);
	
//	for(val=0; val< 0xf0000;val++); // delay 
	
	
 }

 /* Register Offset */
 #define SERIAL_THR		0
 #define SERIAL_RBR		0
 #define SERIAL_DLL		0
 #define SERIAL_DLM		0x04
 #define SERIAL_IER		0x04
 #define SERIAL_IIR		0x08
 #define SERIAL_FCR		0x08
 #define SERIAL_LCR		0x0C
 #define SERIAL_MCR		0x10
 #define SERIAL_LSR		0x14
 #define SERIAL_MSR		0x18
 #define SERIAL_SCR		0x1c

 #define DEBUG_PORT_LEVEL 8

 typedef enum {
	tty_baud1200,
	tty_baud2400,
	tty_baud4800,
	tty_baud9600,
	tty_baud19200,
	tty_baud38400,
	tty_baud57600,
	tty_baud115200,
	tty_baud230400
 } tty_baud_t;

 int baud_data[] = {
	192,  // tty_baud1200
	96,   // tty_baud2400
	48,   // tty_baud4800
	24,   // tty_baud9600
	12,   // tty_baud19200
	6,    // tty_baud38400
	4,    // tty_baud57600
	2,    // tty_baud115200
	1     // tty_baud230400
 };
 
 typedef enum {TEXT_MODE, BINARY_MODE } ser_mode_t;

 static int ser0_opened = 0;
 static int ser1_opened = 0;
 static ser_mode_t ser_mode = TEXT_MODE;
 static unsigned int ser_base = UART0_BASE;
 static unsigned int ser_level = DEBUG_PORT_LEVEL;
 static tty_baud_t cur_baud = tty_baud38400;

 static unsigned char serial0_inb(int offset)
 {
	unsigned char ch= _inb(UART0_BASE + offset);
	return ch;
 }
 
  static unsigned char serial1_inb(int offset)
 {
	unsigned char ch= _inb(UART1_BASE + offset);
	return ch;
 }

 static int ser0_open()
 {
	if(ser0_opened) return 0;

	ser_base = UART0_BASE;//0x80020000 Uart0
	ser_level = DEBUG_PORT_LEVEL;//0x8
	cur_baud = tty_baud38400;


	_outb(ser_base+0x30,1);//使能UART0
	_outw(0x8002301c, 0x0);
	_outw(0x800230A4, 0x0);//

	_outb(ser_base+SERIAL_LCR,0x80);//置位 DLAB 
	
	_outb(ser_base+SERIAL_DLL,baud_data[cur_baud]);
	_outb(ser_base+SERIAL_DLM,0x0);//設置波特率.DLL=4,即波特率=57600
	_outb(ser_base+SERIAL_LCR,0x03);//DLAB 清0,8位字長,1_stop,無奇偶校驗
	_outb(ser_base+SERIAL_FCR,0x01);//使能FIFO
	_outb(ser_base+SERIAL_IER,0x00);//禁止UART中斷
	_outb(ser_base+SERIAL_MCR,0x03);//使NRTS和NDTR信號輸出為0,nUDTR和nURTS信號輸出為0
	                             //即UART已準備好接收和發送

	ser0_opened = 1;
	return 1;
 }
 
 static int ser1_open()
 {
	if(ser1_opened) return 0;

	ser_base = UART1_BASE;//0x80021000 Uart1
	ser_level = DEBUG_PORT_LEVEL;//0x8
	cur_baud = tty_baud38400;


	_outb(ser_base+0x30,1);//使能UART1
	_outw(0x8002301c, 0x0);//AEn=0,KSCANI/O
	_outw(0x800230A4, 0x0);//AMULSEL=0,GPIO

	_outb(ser_base+SERIAL_LCR,0x80);//置位 DLAB 
	
	_outb(ser_base+SERIAL_DLL,baud_data[cur_baud]);
	_outb(ser_base+SERIAL_DLM,0x0);//設置波特率.DLL=4,即波特率=38400
	_outb(ser_base+SERIAL_LCR,0x03);//DLAB 清0,8位字長,1_stop,無奇偶校驗
	_outb(ser_base+SERIAL_FCR,0x01);//使能FIFO
	_outb(ser_base+SERIAL_IER,0x00);//禁止UART中斷
	_outb(ser_base+SERIAL_MCR,0x03);//使NRTS和NDTR信號輸出為0,nUDTR和nURTS信號輸出為0
	                             //即UART已準備好接收和發送

	ser1_opened = 1;
	return 1;
 }

 static void ser0_close()
 {
	ser0_opened = 0;
 }
 
  static void ser1_close()
 {
	ser1_opened = 0;
 }



 #include <string.h>
 #include <stdarg.h>

 char ser0_getchar()
 {
	char ch;
	int lsr;
	if(ser0_opened == 0)
		return -1;

	do {
		lsr = (int) serial0_inb(SERIAL_LSR);
	}while( (lsr&0x1) != 0x1);

	ch = serial0_inb(SERIAL_RBR);
	return ch;
 }


 static void ser0_putchar(char ch)
 {
	int lsr;

	if(ser0_opened == 0)
		return;

	do {
		lsr = serial0_inb(SERIAL_LSR);
	}while( (lsr&0x60) != 0x60);
	_outb(UART0_BASE+SERIAL_THR,ch);
	if(ser_mode == TEXT_MODE && ch == '\n')
		_outb(UART0_BASE+SERIAL_THR,'\r');
 }
 
 static void ser1_putchar(char ch)
 {
	int lsr;

	if(ser1_opened == 0)
		return;

	do {
		lsr = serial1_inb(SERIAL_LSR);
	}while( (lsr&0x60) != 0x60);
	_outb(UART1_BASE+SERIAL_THR,ch);
 }
 
 int ser_printf(const char *format, ...)
 {
    char buff[256];
    int chars, i;
    va_list ap;
    va_start(ap, format);
    chars = vsprintf(buff, format, ap);
    va_end(ap);

    i = 0;
    while (buff[i])
		ser0_putchar(buff[i++]);

    return 0;
 }
 
 void delay(int nTime)
 {
	int nAdjust;
	int i;

	nAdjust = 0;

	if(nTime == 0)
	{
		nTime = 200;
		nAdjust = 1;
		f_nDelayLoopCount = 400;
		//rWTCON = ((MCLK/1000000-1)<<8)|(2<<3);			// 1M/64, Watch-dog, nRESET, interrupt disable
		*((volatile char *)TM0_CTRL) = 0x4;//stop count,reset counter register
		*((int *)TM0_BASE) = 0xffffffff;//溢出值設為最大
		*((volatile char *)TM0_CTRL) = 0x1;//開始計數
	}

	for(; nTime>0; nTime--)
	{
		for(i=0; i<f_nDelayLoopCount; i++)
			;
	}

	if(nAdjust==1)
	{
		*((volatile char *)TM0_CTRL) = 0x0;//停止計數
		i =*((volatile int *)TM0_COUNT);//讀取計數值
		f_nDelayLoopCount = 3686400*8/i;
	}
 }

 static void interrupt_init(void)
 {
    /*
    add interrupt init code here;
    */
 }

 static void keyboard_init(void)
 {
	//設置PORTA管腳功能
  *(volatile unsigned short *)PioAmuxctl =0x0000;
  *(volatile unsigned short *)PioAmuxsel =0x0000;
  *(volatile unsigned short *)PioADDR    =0xff00;//置位則設置為輸入口
  //將中斷服務程序入口地址放入中斷向量寄存器中
  //pISR_KBD = (unsigned int)Key_IsrCode;
  //開鍵盤中斷
  //*(volatile unsigned int *)IntEnR |= 0x1000;
  //設置掃描頻率
  *(volatile unsigned char*)KBCr &= 0xfc;
  *(volatile unsigned char*)KBCr |=0x03;
  //開始鍵盤掃描
  *(volatile unsigned char*)KBCr |= (KbScnStart + KbPwrUp);
 }
 
 static void lcd_init(void)
 {
	/*
	add lcd display init code here;
	*/
 }
 void system_init(void)
 {
    set_gpio_pin();
    
   	pll_init();
   	
   	delay(0);
   	
   	interrupt_init();
   	
   	ser0_open();
   	ser1_open();
   	
   	keyboard_init();
   	
   	lcd_init();
 }

 void FrameHead_Send(FRAME_HEAD_t * p)
 {
    int i;
    ser1_putchar(0x7f);
    ser1_putchar(0xfe);
    ser1_putchar(p->m_WWaveType);
    ser1_putchar(p->m_WDataLen & 0xff);
    ser1_putchar(p->m_WDataLen>>8 & 0xff);
    ser1_putchar(p->m_WFrameCount);
    ser1_putchar(p->m_WFrameIndex);
    ser1_putchar(p->m_WFreMode);
    
    for(i=0;i<6;i++) ser1_putchar(p->m_WFrequency[i]);
 }

 void FrameData_Send(char *p, int size)
 {
	int i;
	for(i=0;i<size;i++)
	 ser1_putchar(*p++);
 }

 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉影视欧美成人| 国产成人在线观看免费网站| 亚洲素人一区二区| 精品欧美黑人一区二区三区| 欧美美女bb生活片| 欧美色精品天天在线观看视频| 成人高清免费在线播放| 国产一区久久久| 久久国产精品99久久人人澡| 天堂一区二区在线免费观看| 亚洲一二三四区| 亚洲三级小视频| 18成人在线观看| 综合久久国产九一剧情麻豆| 中文字幕一区二区三区在线观看| 国产欧美一二三区| 亚洲国产精华液网站w| 久久久久一区二区三区四区| 久久久久久一级片| 久久久av毛片精品| 日韩精品一区二区三区蜜臀| 日韩精品一区二区在线| 2020国产精品| 久久久亚洲综合| 国产清纯在线一区二区www| 久久精品一区二区三区不卡 | 精品一区二区久久久| 麻豆精品一二三| 精品一区二区三区视频| 国产剧情av麻豆香蕉精品| 粉嫩绯色av一区二区在线观看| 国产一区二区三区在线观看精品| 韩国女主播一区| 成人精品一区二区三区四区| 成人一级黄色片| 一本到三区不卡视频| 欧美色精品在线视频| 777久久久精品| 欧美不卡一二三| 国产亚洲一本大道中文在线| 日韩免费一区二区| 日韩午夜精品视频| 日韩一卡二卡三卡| 久久久亚洲精品一区二区三区| 国产精品久久久久久久久免费相片| ...中文天堂在线一区| 亚洲一区二区在线观看视频| 日韩电影在线观看一区| 国产一区二区三区av电影 | 精品日韩99亚洲| 欧美xxxxxxxxx| 精品久久久影院| 最新中文字幕一区二区三区| 亚洲国产va精品久久久不卡综合| 免费高清在线视频一区·| 国产盗摄一区二区| 色成年激情久久综合| 欧美一区二区三区成人| 国产精品欧美一级免费| 亚洲成a人片综合在线| 九九视频精品免费| 懂色av一区二区三区免费观看 | 欧美日韩中文字幕精品| 欧美综合天天夜夜久久| 精品不卡在线视频| 五月激情综合婷婷| 国产精品18久久久久久vr| 欧美色男人天堂| 国产欧美精品一区| 日韩 欧美一区二区三区| 成人av免费网站| 欧美在线视频全部完| 久久精品一区二区三区不卡 | 91丝袜美女网| 日韩免费电影一区| 亚洲欧洲一区二区三区| 日韩国产精品久久| jizz一区二区| 欧美精品一区二| 亚洲另类在线视频| 国产乱码精品一区二区三区av| 欧美日韩久久久一区| 国产精品天美传媒| 免费高清视频精品| 欧美亚一区二区| 欧美激情一区二区三区蜜桃视频| 亚洲va欧美va国产va天堂影院| 成人av网站大全| 久久综合狠狠综合久久综合88| 亚洲国产精品嫩草影院| 精品一区二区三区视频| 91在线一区二区三区| 亚洲精品一区二区三区影院| 一区二区三区四区乱视频| 日本亚洲免费观看| 欧美日韩一区成人| 中文字幕一区二区三区在线观看| 国产一区二区福利视频| 884aa四虎影成人精品一区| 亚洲日本丝袜连裤袜办公室| 久久精品国内一区二区三区| 欧美日韩一区二区三区视频| 亚洲三级在线观看| eeuss鲁片一区二区三区在线看| 久久综合999| 国产一区激情在线| 欧美videos中文字幕| 看电影不卡的网站| 91麻豆精品国产91久久久久久| 国产精品久久久久久久久免费桃花 | 精品国产一区二区三区av性色| 五月天激情综合| 欧美久久久一区| 水蜜桃久久夜色精品一区的特点| 日本韩国欧美一区二区三区| 亚洲精品一区二区三区福利| 亚洲高清一区二区三区| 欧美色综合网站| 亚洲国产一区二区三区| 亚洲男人天堂av| 亚洲第一电影网| 国内不卡的二区三区中文字幕 | 欧美电影免费观看高清完整版在线| 亚洲电影第三页| 欧美日韩亚洲综合在线| 日韩vs国产vs欧美| 日韩免费看的电影| 国产精品香蕉一区二区三区| 成人欧美一区二区三区视频网页| 99久久免费国产| 亚洲欧美日韩在线播放| 欧美军同video69gay| 免费在线成人网| 欧美一区二区三区四区在线观看| 精品一区二区三区免费播放| 久久久精品国产免费观看同学| 国内精品国产成人国产三级粉色 | 亚洲女同ⅹxx女同tv| 欧美亚洲综合色| 免费高清视频精品| 国产精品入口麻豆九色| 91免费国产在线| 亚洲大片在线观看| 久久久777精品电影网影网 | 日韩视频在线观看一区二区| 国产成人在线视频网站| 国产精品久久久久影院色老大| 一本色道久久综合亚洲91| 蜜臀国产一区二区三区在线播放| 欧美不卡在线视频| 99麻豆久久久国产精品免费优播| 午夜国产精品影院在线观看| 精品国产精品一区二区夜夜嗨| 高清国产一区二区三区| 亚洲高清在线视频| 久久久久久电影| 欧美午夜片在线看| 国产成人鲁色资源国产91色综| 亚洲欧美日韩精品久久久久| 欧美日韩国产高清一区二区三区 | 欧美曰成人黄网| 精品一区二区在线视频| 久久久一区二区三区| 亚洲成人av一区二区三区| 26uuu亚洲综合色欧美| 欧美在线免费观看视频| 成人一区二区三区中文字幕| 免费人成黄页网站在线一区二区| 亚洲三级在线免费观看| 久久久精品欧美丰满| 91精品国产综合久久久久久漫画| 99久久免费视频.com| 欧美一区二区福利视频| 视频在线观看一区| 欧美不卡视频一区| 成人黄色av电影| 中文字幕成人av| 丁香另类激情小说| 91官网在线观看| 亚洲一区二区三区四区在线免费观看| 成人动漫一区二区在线| 精品国偷自产国产一区| 99久久国产免费看| 中文字幕一区二区三| 美国欧美日韩国产在线播放| 日本精品视频一区二区三区| 久久精品人人做| 日韩中文字幕91| 欧美午夜精品一区| 亚洲免费色视频| 99re这里只有精品6| 国产欧美日韩另类一区| 激情综合网av| 日韩午夜电影av| 日韩精品一级中文字幕精品视频免费观看| 91丨porny丨户外露出| 中文字幕不卡在线观看| 国产乱码一区二区三区| 日韩欧美国产三级| 精品伊人久久久久7777人|