⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm.c

📁 最新的LPC214X PWM驱动程序
💻 C
字号:
////  $Id: pwm.c 350 2009-01-12 01:25:46Z jcw $//  $Revision: 350 $//  $Author: jcw $//  $Date: 2009-01-11 20:25:46 -0500 (Sun, 11 Jan 2009) $//  $HeadURL: http://tinymicros.com/svn_public/arm/lpc2148_demo/trunk/pwm/pwm.c $//#include "FreeRTOS.h"#include "pwm.h"//////static int pwmPulseWidth = 20000;static int pwmPercentage = 50;//////int pwmDutyCycle (int percentage){  if ((percentage < 0) || (percentage > 100))    return -1;  PWM_MR5 = ((configCPU_CLOCK_HZ / pwmPulseWidth) * (pwmPercentage = percentage)) / 100;  PWM_LER = PWM_LER_M5L;  return 0;}//////int pwmPulseWidthInMicroseconds (int us){  unsigned int count = (configCPU_CLOCK_HZ / 1000000) * us;  if (count > PWM_MR0)    return -1;  PWM_MR5 = count;  PWM_LER = PWM_LER_M5L;  return 0;}//////int pwmFrequency (int frequency){  if ((frequency < 1) || (frequency >= (int) configCPU_CLOCK_HZ))    return -1;  PWM_MR0 = (configCPU_CLOCK_HZ / (pwmPulseWidth = frequency));  PWM_MR5 = ((configCPU_CLOCK_HZ / pwmPulseWidth) * pwmPercentage) / 100;  PWM_LER = PWM_LER_M5L | PWM_LER_M0L;  return 0;}//////void pwmInit (void){  SCB_PCONP |= SCB_PCONP_PCPWM0;  PCB_PINSEL1 = (PCB_PINSEL1 & ~PCB_PINSEL1_P021_MASK) | PCB_PINSEL1_P021_PWM5;  PWM_TCR  = PWM_TCR_CR;  PWM_PR   = 0;  PWM_MR0  = (configCPU_CLOCK_HZ / pwmPulseWidth);  PWM_MCR |= PWM_MCR_MR0R;  PWM_PCR |= PWM_PCR_ENA5;  PWM_TCR  = (PWM_TCR_CE | PWM_TCR_PWME);  pwmDutyCycle (50);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -