//p2.0 pwm1.1

void ALS_Init(void)     //初始化

{

LPC_SC->PCONP |= (1<<1)|(1<<2)|(1<<15);//打开时钟

LPC_SC->PCLKSEL0 &= ~(3<<2);    //时钟25M

LPC_SC->PCLKSEL0 &= ~(3<<4);

//p2.0

LPC_PINCON->PINSEL4 &= ~(0X03L<<0);     //GPIO

LPC_PINCON->PINMODE4 &= ~(0X03L<<0);    //使能上拉

LPC_PINCON->PINMODE_OD2 &= ~(0X01<<1);  //推挽正常模式

P2dir(0) = 1;//输出

LPC_TIM1->TCR |= (1<<1);                        //复位定时器

LPC_TIM1->CTCR = 0x00;                          //定时器模式

LPC_TIM1->PC = 0X00;

LPC_TIM1->PR   = 25-1;                          //预分频,计数频率1m

LPC_TIM1->MR0  = 20;                            //25*100  2500 频率10K

LPC_TIM1->MR1  = 100;

LPC_TIM1->MCR |= ((1<<0)|(1<<3)|(1<<4));                //MR0与TC值匹配时将产生复位 产生中断 MR1匹配时产生中断 不复位

LPC_TIM1->IR  |= 0XFF;                          //清所有中断标志位

LPC_TIM1->TCR  = (1<<0);                        //启动定时器

NVIC_EnableIRQ(TIMER1_IRQn);

}

void ALS_Set_Duty(u8 duty)      //设置占空比

{

LPC_TIM1->TCR  = 0;                     //暂停定时器

if(duty >= 100)duty = 99;

if(duty == 0)duty = 1;

LPC_TIM1->MR0 = duty;

LPC_TIM1->TCR  = (1<<0);                        //启动定时器

}

void ALS_Stop(void)

{

LPC_TIM1->TCR  = 0;                     //暂停定时器

P2low(0) = 1;                           //电平恒定

}

void TIMER1_IRQHandler(void)

{

NVIC_ClearPendingIRQ(TIMER1_IRQn);

if( LPC_TIM1->IR &0x01) //mr0中断

{

P2low(0) = 1;

LPC_TIM1->IR |= (1<<0);         //清中断标志

}

else if(LPC_TIM1->IR &0x02)

{

P2high(0) = 1;

LPC_TIM1->IR |= (1<<1);         //清中断标志

}

}

lpc1768的PWM使用的更多相关文章

  1. LPC1768\1769之中断优先级与中断优先级组

    一.背景 USB在持续通信几十万次后,会出现USB IN中断丢失几次的情况,分析是中断优先级不够高,导 致USB中断在排队,然而排队还未完成,又有新的USB中断发生,致使其中断丢失.LPC1769的所 ...

  2. STM32之PWM君

    PWM..英语好的人估计又知道这三个大写字母代表哪三个英语单词了.小弟不才,就说中文意思好了:脉冲宽度调制,玩过飞思卡尔的人估计对PWM非常的不陌生吧.电机驱动需要PWM,控制舵机的转向需要PWM,总 ...

  3. [nRF51822] 12、基础实验代码解析大全 · 实验19 - PWM

    一.PWM概述: PWM(Pulse Width Modulation):脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形. PWM 的几个基本概念: 1) 占空比:占空比是指 ...

  4. Windows on Device 项目实践 1 - PWM调光灯制作

    在前一篇文章<Wintel物联网平台-Windows IoT新手入门指南>中,我们讲解了Windows on Device硬件准备和软件开发环境的搭建,以及Hello Blinky项目的演 ...

  5. LPC1768/1769之CAN控制器概述(附库函数下载地址)

    一.背景: 使用LPC1769来做CAN的收发,在此对使用LPC1769的CAN控制器进行收发做个总结和记录,以备下 次开发快速上手使用. 附:LPC1768/1769除了支持最高频率不同以外,其它基 ...

  6. 用Arduino剖析PWM脉宽调制

    PWM(Pulse Width Modulation)简介 PWM,也就是脉冲宽度调制,用于将一段信号编码为脉冲信号,也就是方波信号.多用于在数字电路中驱动负载随时间变化的电子元件,如LED,电机等. ...

  7. Arduino学习经验(一)之解决舵机库和pwm输出冲突

    一.前言 最近在公司学习Arduino uno ,用它实现小车超声波避障功能.实现的功能很简单,就是在小车前方挂一个超声波模块,当碰到障碍物时,会通过舵机进行摆头,判断两边的距离,进行左右转弯.但是碰 ...

  8. stm8s103 PWM

    stm8s103 PWM的设置不难,但是很多人不注意选项字节这个问题,PWM是IO口的第二功能,要用ST Visual Programmer 修改选项字节. 只需要修改AFR0的功能就可以了

  9. 驱动实现led,pwm和中断基础知识

    2015.4.8星期三 晴天 今天老师讲的内容是内核编写led和pwm驱动,实现花样灯和放歌的功能.理解应用和驱动的对接,最后自己实现了在放歌的时候根据歌曲的节奏亮灭一个小灯,应为两个独立的驱动都已经 ...

随机推荐

  1. C语言根据函数名调用对应的函数

    通过函数指针定义,调用时加上参数 struct Command { const char *name; const char *desc; // return -1 to force monitor ...

  2. java中list的使用方法

    LIST是个容器接口,可以理解为动态数组,传统数组必须定义好数组的个数才可以使用,而容器对象无须定义好数组下标总数, 用add()方法即可添加新的成员对象,他可以添加的仅仅只能为对象,不能添加基本数据 ...

  3. (转)Windows管道(Pipe)重定向stdout,stderr,stdin

    参考: http://qiusuoge.com/11496.html http://www.cnblogs.com/BoyXiao/archive/2011/01/01/1923828.html st ...

  4. 把Wordpress集成到zen-cart里方法 各种修改 经典机制

    作者: 闻庭牛 | 分类: zen cart插件精解 | 浏览: 4 | 评论: 暂时没有评论 如果你的Zen-cart需要一个Blog来发布一些你的最新动态,可以试试Wordpress,并且用WOZ ...

  5. QQ的邮我功能

    首先是从QQ邮箱中获取到“邮我”的功能获取代码,然后点击后就可以直接的设定好收件人为自己了. 给我写信

  6. HTML center tag

    <center>This text will be center-aligned.</center> 或者可以把一个div给center了,例如将一个html表格给center ...

  7. android脚步---数字时钟和模拟时钟

    时钟UI组件是两个非常简单的组件,分为Digitalclock  和Analogclock, main.xml文件,书中程序有问题,加了两个组件,一个Button和一个<Chronometer ...

  8. win7 64位andriod开发环境搭建

    本文转自:http://www.cfanz.cn/index.php?c=article&a=read&id=65289 最近换了新电脑,装了win7 64位系统,安装了各种开发环境, ...

  9. ios复制到剪贴板

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...

  10. fopen()函数中参数mode的取值

    FILE * fopen(const char * path,const char * mode); 参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存 ...