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

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

?? pwm.c

?? Hello I Send som Source Code Aboat LPC2000
?? C
字號:
/*****************************************************************************
 *   pwm.c:  PWM module file for NXP LPC23xx/24xx Family Microprocessors
 *
 *   Copyright(C) 2006, NXP Semiconductor
 *   All rights reserved.
 *
 *   History
 *   2006.07.20  ver 1.00    Prelimnary version, first Release
 *
******************************************************************************/
#include "LPC23xx.h"                        /* LPC23xx/24xx definitions */
#include "type.h"
#include "irq.h"
#include "timer.h"
#include "pwm.h"

volatile DWORD match_counter0, match_counter1;

/******************************************************************************
** Function name:		PWM0Handler
**
** Descriptions:		PWM0 interrupt handler
**						For now, it only deals with PWM1 match 0
**
** parameters:			None
** Returned value:		None
** 
******************************************************************************/
void PWMHandler (void) __irq 
{
  DWORD regVal;

  IENABLE;				/* handles nested interrupt */
  regVal = PWM0IR;
  if ( regVal & MR0_INT )
  {
	match_counter0++;	
  }
  PWM0IR |= regVal;		/* clear interrupt flag on match 0 */

  regVal = PWM1IR;
  if ( regVal & MR0_INT )
  {
	match_counter1++;	
  }
  PWM1IR |= regVal;		/* clear interrupt flag on match 0 */
  IDISABLE;
  VICVectAddr = 0;		/* Acknowledge Interrupt */
  return;
}

/******************************************************************************
** Function name:		PWM_Init
**
** Descriptions:		PWM initialization, setup all GPIOs to PWM0~6,
**				reset counter, all latches are enabled, interrupt
**				on PWMMR0, install PWM interrupt to the VIC table.
**
** parameters:			ChannelNum, Duty cycle
** Returned value:		true or fase, if VIC table is full, return false
** 
******************************************************************************/
DWORD PWM_Init( DWORD ChannelNum, DWORD cycle )
{
  if ( ChannelNum == 0 )
  {
	match_counter0 = 0;
	PINSEL7 = 0x00002AAA;	/* set GPIOs for all PWM pins on PWM0 */

	PWM0TCR = TCR_RESET;	/* Counter Reset */ 
		
	PWM0PR = 0x00;			/* count frequency:Fpclk */
	PWM0MCR = PWMMR0I | PWMMR0R;	/* interrupt on PWMMR0, reset on PWMMR0, reset 
									TC if PWM0 matches */				
	PWM0MR0 = cycle;		/* set PWM cycle */
	PWM0MR1 = cycle * 5/6;
	PWM0MR2 = cycle * 2/3;
	PWM0MR3 = cycle * 1/2;
	PWM0MR4 = cycle * 1/3;
	PWM0MR5 = cycle * 1/6;	

    /* all PWM latch enabled */
    PWM0LER = LER0_EN | LER1_EN | LER2_EN | LER3_EN | LER4_EN | LER5_EN | LER6_EN;
  }
  else if ( ChannelNum == 1 )
  {
	match_counter1 = 0;
	PINSEL4 = 0x00001555;	/* set GPIOs for all PWM pins on PWM0 */

	PWM1TCR = TCR_RESET;	/* Counter Reset */ 
		
	PWM1PR = 0x00;			/* count frequency:Fpclk */
	PWM1MCR = PWMMR0I | PWMMR0R;	/* interrupt on PWMMR0, reset on PWMMR0, reset 
									TC if PWM0 matches */				
	PWM1MR0 = cycle;		/* set PWM cycle */
	PWM1MR1 = cycle * 5/6;
	PWM1MR2 = cycle * 2/3;
	PWM1MR3 = cycle * 1/2;
	PWM1MR4 = cycle * 1/3;
	PWM1MR5 = cycle * 1/6;	

	/* all PWM latch enabled */
	PWM1LER = LER0_EN | LER1_EN | LER2_EN | LER3_EN | LER4_EN | LER5_EN | LER6_EN;
  }
  else
  {
	return ( FALSE );		/* Unknown channel number */
  }
	
  if ( install_irq( PWM0_1_INT, (void *)PWMHandler, HIGHEST_PRIORITY ) == FALSE )
  {
	return ( FALSE );
  }
  return (TRUE);
}

/******************************************************************************
** Function name:		PWM_Set
**
** Descriptions:		PWM cycle setup
**
** parameters:			Channel number, PWM cycle, and offset
** Returned value:		None
** 
******************************************************************************/
void PWM_Set( DWORD ChannelNum, DWORD cycle, DWORD offset )
{			
  if ( ChannelNum == 0 )
  {
	PWM0MR0 = cycle;		/* set PWM cycle */
	PWM0MR1 = cycle * 5/6 + offset;
	PWM0MR2 = cycle * 2/3 + offset;
	PWM0MR3 = cycle * 1/2 + offset;
	PWM0MR4 = cycle * 1/3 + offset;
	PWM0MR5 = cycle * 1/6 + offset;

	/* The LER will be cleared when the Match 0 takes place, in order to
	load and execute the new value of match registers, all the PWMLERs need to
	reloaded. all PWM latch enabled */
	PWM0LER = LER0_EN | LER1_EN | LER2_EN | LER3_EN | LER4_EN | LER5_EN | LER6_EN;
  }
  else if ( ChannelNum == 1 )
  {
	PWM1MR0 = cycle;		/* set PWM cycle */
	PWM1MR1 = cycle * 5/6 + offset;
	PWM1MR2 = cycle * 2/3 + offset;
	PWM1MR3 = cycle * 1/2 + offset;
	PWM1MR4 = cycle * 1/3 + offset;
	PWM1MR5 = cycle * 1/6 + offset;

	/* The LER will be cleared when the Match 0 takes place, in order to
	load and execute the new value of match registers, all the PWMLERs need to
	reloaded. all PWM latch enabled */
	PWM1LER = LER0_EN | LER1_EN | LER2_EN | LER3_EN | LER4_EN | LER5_EN | LER6_EN;
  }
  return;
}

/******************************************************************************
** Function name:		PWM_Start
**
** Descriptions:		Enable PWM by setting the PCR, PTCR registers
**
** parameters:			channel number
** Returned value:		None
** 
******************************************************************************/
void PWM_Start( DWORD channelNum )
{
  if ( channelNum == 0 )
  {
	/* All single edge, all enable */
	PWM0PCR = PWMENA1 | PWMENA2 | PWMENA3 | PWMENA4 | PWMENA5 | PWMENA6;
	PWM0TCR = TCR_CNT_EN | TCR_PWM_EN;	/* counter enable, PWM enable */
  }
  else if ( channelNum == 1 )
  {
	/* All single edge, all enable */
	PWM1PCR = PWMENA1 | PWMENA2 | PWMENA3 | PWMENA4 | PWMENA5 | PWMENA6;
	PWM1TCR = TCR_CNT_EN | TCR_PWM_EN;	/* counter enable, PWM enable */
  }
  return;
}

/******************************************************************************
** Function name:		PWM_Stop
**
** Descriptions:		Stop all PWM channels
**
** parameters:			channel number
** Returned value:		None
** 
******************************************************************************/
void PWM_Stop( DWORD channelNum )
{
  if ( channelNum == 0 )
  {
	PWM0PCR = 0;
	PWM0TCR = 0x00;		/* Stop all PWMs */
  }
  else if ( channelNum == 1 )
  {
	PWM1PCR = 0;
	PWM1TCR = 0x00;		/* Stop all PWMs */
  }
  return;
}

/******************************************************************************
**                            End Of File
******************************************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久久久久浪潮 | 在线亚洲精品福利网址导航| 欧美视频日韩视频在线观看| 久久综合九色综合欧美98| 国产精品久久久久毛片软件| 蜜桃视频一区二区三区在线观看| 99久久婷婷国产| 久久这里只精品最新地址| 亚洲1区2区3区4区| 色老汉一区二区三区| 精品乱人伦小说| 亚洲成人午夜电影| 色婷婷国产精品| 亚洲日本欧美天堂| 成人免费视频免费观看| 久久久久免费观看| 毛片一区二区三区| 制服丝袜亚洲播放| 亚洲不卡在线观看| 欧美中文字幕一区| 国产精品对白交换视频| 国产91精品一区二区| 精品国产乱码久久久久久图片| 免费国产亚洲视频| 欧美高清视频不卡网| 亚洲一区在线观看免费观看电影高清 | 国产人成一区二区三区影院| 麻豆专区一区二区三区四区五区| 综合久久一区二区三区| 狠狠色狠狠色综合日日91app| 欧美一区二区免费观在线| 日韩在线播放一区二区| 91麻豆精品国产自产在线观看一区| 一区二区三区欧美在线观看| 色播五月激情综合网| 一区二区三区欧美亚洲| 欧美日韩高清一区二区| 亚洲香肠在线观看| 欧美精品精品一区| 免费在线成人网| 欧美精品一区男女天堂| 国产精品77777| 国产精品麻豆网站| 欧美在线一二三| 丝袜美腿亚洲综合| 精品少妇一区二区三区视频免付费| 久久er精品视频| 日本一区二区久久| 北条麻妃国产九九精品视频| 亚洲男人的天堂一区二区| 日本高清视频一区二区| 日韩中文字幕不卡| 国产亚洲欧美色| 91在线看国产| 日本成人在线不卡视频| 欧美精品一区二区三区很污很色的 | 青娱乐精品视频| 久久久三级国产网站| 国产91精品免费| 亚洲一区二区视频在线| 精品欧美黑人一区二区三区| 岛国一区二区三区| 亚洲午夜久久久久久久久久久| 日韩欧美一二三四区| bt欧美亚洲午夜电影天堂| 亚洲va欧美va天堂v国产综合| 日韩女优视频免费观看| caoporm超碰国产精品| 日韩激情一二三区| 中文乱码免费一区二区| 亚洲精品水蜜桃| 日韩一区二区精品在线观看| 不卡在线视频中文字幕| 日本午夜一本久久久综合| 国产精品国产三级国产有无不卡| 91精品国产日韩91久久久久久| 夫妻av一区二区| 午夜影视日本亚洲欧洲精品| 国产欧美日韩不卡| 欧美一区在线视频| 一本一本久久a久久精品综合麻豆| 美女在线视频一区| 一区二区三区中文字幕精品精品| 久久午夜电影网| 欧美老女人在线| 一本一道综合狠狠老| 狠狠色丁香婷婷综合久久片| 亚洲成a人片在线观看中文| 欧美激情自拍偷拍| 精品国产制服丝袜高跟| 欧美日韩一区久久| 91免费小视频| 成人动漫中文字幕| 国产乱码精品一区二区三| 日本中文字幕一区二区视频| 又紧又大又爽精品一区二区| 国产女主播在线一区二区| 日韩免费看网站| 欧美精品色一区二区三区| 91视频你懂的| 97se亚洲国产综合在线| 豆国产96在线|亚洲| 经典三级在线一区| 日本视频在线一区| 秋霞影院一区二区| 午夜av一区二区| 亚洲国产精品久久人人爱| 亚洲精选视频免费看| 国产精品不卡在线| 国产精品久久久久久久久免费桃花 | 香蕉成人啪国产精品视频综合网| 亚洲欧美另类久久久精品| 国产三级久久久| 国产精品三级电影| 国产精品网站在线播放| 精品一区二区三区在线播放| 日韩成人免费在线| 蜜桃视频一区二区三区在线观看| 蜜桃精品在线观看| 毛片不卡一区二区| 韩国中文字幕2020精品| 国产一区二区三区在线观看精品 | 亚洲免费视频中文字幕| 亚洲激情男女视频| 亚洲一区二区三区美女| 一卡二卡欧美日韩| 午夜精品久久久久久久99水蜜桃| 午夜精品久久久久久久久久久 | 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久嫩草精品久久久久| 久久久久久日产精品| 国产女主播一区| 亚洲美女在线国产| 五月天精品一区二区三区| 精品无人码麻豆乱码1区2区| 福利一区二区在线观看| 91亚洲资源网| 7777精品伊人久久久大香线蕉的| 欧美一区二区成人| 国产欧美日韩麻豆91| 樱花影视一区二区| 麻豆国产精品官网| proumb性欧美在线观看| 欧美私人免费视频| 久久九九99视频| 亚洲精品中文在线影院| 日本在线观看不卡视频| 粉嫩绯色av一区二区在线观看| 欧美唯美清纯偷拍| 久久综合五月天婷婷伊人| 亚洲品质自拍视频| 奇米亚洲午夜久久精品| 白白色亚洲国产精品| 亚洲免费色视频| 极品少妇一区二区| 91老师片黄在线观看| 日韩一区二区电影| 亚洲欧美福利一区二区| 美脚の诱脚舐め脚责91| 一本色道综合亚洲| 久久久久亚洲蜜桃| 日日夜夜免费精品| 91麻豆视频网站| 国产日韩精品一区二区三区| 亚洲一区欧美一区| 成人av先锋影音| 欧美mv日韩mv国产网站| 尤物视频一区二区| 成人黄色国产精品网站大全在线免费观看 | 欧美日韩中文字幕一区| 久久精品视频免费| 日韩中文字幕一区二区三区| 成人app网站| 久久蜜桃av一区二区天堂| 午夜av电影一区| 色一情一伦一子一伦一区| 国产欧美综合在线观看第十页| 日本欧洲一区二区| 欧美日韩国产电影| 亚洲精品国产无天堂网2021| 国产不卡高清在线观看视频| 日韩视频国产视频| 天堂在线一区二区| 欧美羞羞免费网站| 亚洲色欲色欲www| 成人黄色网址在线观看| 国产色爱av资源综合区| 国产综合久久久久久久久久久久| 日韩一区二区三区视频在线观看| 伊人色综合久久天天| jlzzjlzz欧美大全| 国产精品久久久久久久蜜臀| 国产成人免费视频| 日本一区二区三区在线观看| 国产九色sp调教91| 2020国产精品| 国产凹凸在线观看一区二区| 国产午夜亚洲精品理论片色戒| 极品美女销魂一区二区三区免费| 精品91自产拍在线观看一区|