PIC32MZ tutorial -- Blinky LED

发布者:chenxiaohong68最新更新时间:2017-01-20 来源: eefocus关键字:PIC32MZ  tutorial  Blinky  LED 手机看文章 扫描二维码
随时随地手机看文章

  Today I finish the "Blinky LED" application on PIC32MZ starter kit. This application let LED1 blink with 0.5HZ frequency. The pseudo code is like


    LOOP:

        LED ON

        Delay 1 second

        LED OFF

        Delay 1 second

  It uses Timer1 to control the delay time. So first I implement the three Timer1 functions.



/**

 

Function: TMR1_Open


 

Summary: Initialization of Timer


 

Description: TMR1 on; 0.08 microsecond every tick


 

Remarks: Pre-scale 1:8; PB 100MHz; PR1 0xFFFF

 */

void TMR1_Open(void)

{

    T1CON = 0x8010;

    PR1 = 0xFFFF;

}

// Comment a function definition and leverage automatic documentation 

/**

 

Function: TMR1_Write


 

Summary: Write TMR1


 

Description: Write a value to TMR1


 

Remarks: the value is range of 0~65535

 */

void TMR1_Write(unsigned int value)

{

    TMR1 = value & 0xFFFF;

}

/**

 

Function: TMR1_Read


 

Summary: Read TMR1


 

Description: Read the value from TMR1


 

Remarks: the value is range of 0~65535

 */

unsigned int TMR1_Read(void)

{

    return (TMR1 & 0xFFFF);

}


  Second I finish the delay function, the implemention is like below



/**

 

Function: Delay_1S


 

Summary: Delay using TMR1


 

Description: Delay one second


 

Remarks: call TMR1_Open first

 */

void Delay_1S(void)

{

    unsigned int count = 12500;

    unsigned int ticks = 1000;

    while (count--)

    {

        TMR1_Write(0);

        while (TMR1_Read() < ticks)

        {

            ; // do nothing

        }

    }

}


  Actually we are also able to do that like below



/**

 

Function: Delay_1S


 

Summary: Delay using TMR1


 

Description: Delay one second


 

Remarks: call TMR1_Open first

 */

void Delay_1S(void)

{

    unsigned int count = 1000;

    unsigned int ticks = 12500;

    while (count--)

    {

        TMR1_Write(0);

        while (TMR1_Read() < ticks)

        {

            ; // do nothing

        }

    }

}


  I prefer to the second one. I believe the second one has higher accuracy than the first one.


  In the end, I finish the main function. In last blog, I already show how to implement LED_SETON. This time, we will the same LED_SETON funtion, and more, we need to implement LED_SETOFF. That's easy once you have read my last blog. If you don't know yet, please look at below.



#include

#include "Delay.h"

#include "ConfigurationBits.h"


#define LED_IOCTL()       TRISHCLR = (1<<0)

#define LED_SETON()       LATHSET = (1<<0)

#define LED_SETOFF()      LATHCLR = (1<<0)

#define LED_OPEN()        ANSELH &= 0xFFFFFFFE


void main(void)

{

    TMR1_Open();

    LED_OPEN();

    LED_IOCTL();

    while (1)

    {

        LED_SETON();

        Delay_1S();

        LED_SETOFF();

        Delay_1S();

    }

}


 


关键字:PIC32MZ  tutorial  Blinky  LED 引用地址:PIC32MZ tutorial -- Blinky LED

上一篇:PIC32MZ tutorial -- Timer Interrupt
下一篇:PIC32MZ tutorial -- Hello World

推荐阅读最新更新时间:2024-03-16 15:31

利用EL7516制作高效、高电流的白光LED驱动器
核心器件: EL7516       随着白光LED的发展,它的应用越来越广。从前,白光LED最常见的应用是作为小尺寸LCD彩屏的背光光源。现在,当白光LED的亮度加大后,它的应用已普及到其他方面,例如手电筒或手机照相辅助照明。下文将介绍一种利用普通的升压芯片来驱动大电流LED的高效电路。 电路介绍     一般白光LED的电流在20mA左右,但高亮度的LED需要200~300mA 电流。如果你的产品需要用三至四颗高亮度的白光LED,为了亮度平均,一般的做法是把它们串连接在一起。但市场上绝大部分的白光LED驱动芯片都只能驱动20mA左右的电流,碰上串联大电流LED的应用便要另想办法。Intersil的EL7516是一颗典型的升
[嵌入式]
LED主要参数及电学、光学、热学特性
led-display.cnLEDw.com/" LED电子显示屏 是利用化合物材料制成pn结的光电器件。它具备pn结结型器件的电学特性:I-V特性、C-V特性和光学特性:光谱响应特性、发光光强指向特性、时间特性以及热学特性。 1、LED电学特性 1.1 I-V特性表征LED芯片pn结制备性能主要参数。LED的I-V特性具有非线性、整流性质:单向导电性,即外加正偏压表现低接触电阻,反之为高接触电阻。 如左图: (1) 正向死区:(图oa或oa′段)a点对于V0 为开启电压,当V<Va,外加电场尚克服不少因载流子扩散而形成势垒电场,此时R很大;开启电压对于不同LED其值不同,GaAs为1V,红色GaAsP为
[电源管理]
生长LED有机层的晶圆制程
生长LED有机层的晶圆制程方法有气相晶圆(VPE)、液相晶圆(LPE)、金属有机化学气相淀积(MOCVD)、分子束晶圆(MBE)。它们生长LED有机层的材料分别有气相晶圆CaAsp、GaP,液相晶圆GaP,GaAlAs,金属有机物化学气相淀积InGaAlP、InCaN,分子束晶圆ZnSe等。 气相晶圆比较简单,往往在晶圆生长后要再通过用扩散的方法制作PN结,所以效率低。 液相晶圆已能一炉生长60-100片,生产效率较高,通过稼的重复使用成本也已降得很低,可用以制造高亮度GaP绿色发光器件和一般亮度的GaP红色发光器件,也可用它制造超高亮度GaAlAs发光器件。 金属有机化学气相淀积法(MOCVD)是目前生产超高亮度InCaN
[电源管理]
怎么解决LED单元板不亮的问题
   LED显示屏 单元板,又名LED显示屏模组或简称单元板是显示屏的主体组成单元,由LED发光二极管及驱动电路构成。   LED显示屏行业,目前对LED单元板分为两大类。室内单元板业内一般称为表贴(三合一表贴);户外和半户外一般称为模组。室内表贴的特性:图像清晰度高,色彩及其丰富,不足在于价格偏高;户外和半户外模组单元板特性:亮度高,能防水,色彩丰富,不足在于安装需要技术指导。   那么,在使用的过程中LED单元板会出现什么问题呢?又该如何解决?下面小编为您解答:    1 单元板不亮   连续几块板横方向不亮,检查正常单元板与异常单元板之间的排线连接是否接通;   或者芯片245是否正常。   连续几块板纵方向不亮,检查此列
[电源管理]
嵌入式学习②——STM32入门初步之LED闪烁
前言 为什么使用STM32而不是8051? 是因为51的频率太低,无法满足计算需求?是51的管脚太少,无法满足众多外设的IO? 是51的功耗太大,电池挺不住?是51的功能太弱,而你要使用SPI、I2C、ADC、DMA? 是51的内存太小而你要存储的东西太多? 当你需要使用STM32某些功能,而51实现不了的时候, 那STM32自然不需要学习,你会直接去寻找STM32某方面的使用方法。 现在我们就来一起从头开始学习STM32的技术 一、STM32实现LED闪烁 示例 1.安装mdk5和stm32 安装mdk5 安装STM32 完成下载 2.使用μVision5创建工程 打开软件 创建工程 选择单片机
[单片机]
嵌入式学习②——STM32入门初步之<font color='red'>LED</font>闪烁
LED路灯技术十个鲜为人知的小秘密
  LED 照明行业灯光亮化工程,既受全球大环境的影响,也有其行业特殊性。而 LED 路灯电源恰恰是目前 LED 发展的重中之重,对于LED技术上的相关设计,目前已经有多种的方案与独特的设计手法,我们就来一一了解一下。   1. LED路灯电源电源为什么一定要恒流的呢?   LED照明材料的特性决定其受环境影响较大,譬如温度变化升高,LED的电流会增加,电压的增加,LED的电流也会增加。长期超过额定电流工作,会大大缩短LED的灯珠使用寿命。而LED恒流就是在温度和电压等环境因素变化时,确保其工作电流值不变。   2. LED路灯电源电源恒流精度   市场上有的电源的恒流精度差,象市面上流行的推荐方案等恒流的方案,误差达到±
[电源管理]
泰克利用先进测试技术应对LED 照明应用挑战
今天,在绿色节能意识的推动下,节约能源已成为广大电子产品设计人员和消费者的共识。而高亮度LED在光输出、能效及成本方面的全面改善,以及具备小巧、低压工作及环保等众多优势,使之应用范围也在不断拓宽。未来,LED 照明在通用照明、景观照明、信号灯、广告显示牌、汽车照明、LCD 背光显示等领域的增长前景尤为可观,随之涌现了很多研发和制造企业以配套厂商。但是广大开发者也面临着一些棘手的瓶颈问题。本文将结合泰克公司的先进测试解决方案,谈谈如何应对LED照明应用的挑战,帮助照明设计工程师选择合适的方案,加快产品上市进程。 LED 照明应用的瓶颈 2009 年初,中国科技部推出“十城万盏”半导体照明应用示范城市方案,由此引发了LED 热在中
[电源管理]
泰克利用先进测试技术应对<font color='red'>LED</font> 照明应用挑战
使用STM32寄存器点亮LED
事先声明哦,我也是最近才开始学32的,不过我会尽可能详细的讲解这些小知识点 我们口中常说的LED灯其实是指LED发光二极管,关于这一点涉及到的知识点,我已经在51单片机教程中提及(同点亮LED灯),故而不再详述。 刚开始接触STM32的时候,觉得他的操作明显区别于51,比如我们点亮一个LED灯,直接控制相应的IO口即可;但32不一样,我们需要先设置时钟控制寄存器 RCC_APB2ENR|=1 4; //一共32位 然后设置它的工作方式,输出速度。 GPIOC_CRL&=~(0x0f (4*i)); //控制第i+1个led GPIOC_CRL|=(3 (4*i)); //3可以表示为0011,然后在它的前面补零,凑
[单片机]
使用STM32寄存器点亮<font color='red'>LED</font>灯
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved