的定时器我们已经是相当熟悉啦。但是,对于第一次接触新唐,第一次接触cortex的定时器一样,都是加1计数,但是功能和容量变大了),包括4个32位定时器(里面放24位的数据),还有分频功能。TMER0到TMER3中我们用的是计数)。这是一种简单的24位写清零、递减、子封装灵活控制的计数器。他可以作为rtos变成一样的啦),也就是中断函数放在、首先为系统时钟选择时钟源(晶振)。

、之后配置系统定时控制寄存器SysTick
到23位

到23位

、和上面一样,首先配置时钟控制寄存器,选择时钟源(晶振)
、定时控制器TMR配置
种模式5个时钟源什么的,好多,所以我们基本上是先查自己需要的模式,在进行设置。
位。

跳新唐cortex——思想转变和程序详解中,都是以讲述新唐思想、编程思想为主。但是近期看了一下大家的笔记,可能更是热衷于贴出来程序。呵呵 不过我也从大家的程序中找到了许多应用的知识。所以,在此,我也贴上一个定时器有关的例程,以供大家对照、比对、参考学习。
   本例程led_bee_timer 主要是使用新唐中的两种定时器,分别用作led灯和蜂鸣器的计时。其中,使用系统定时器(SYSTICK)来为蜂鸣器定时,蜂鸣器间歇性开关发声;使用定时器(TMR0)来控制LED流水灯定时。两种定时器都使用了中断函数进行目标的控制,大家要注意两种中断的异同。例程中保留了调试时的东西,希望大家也可以从中看到些许调试技巧。例程中为了方便,并没有套用程序框架,是进行的裸编程,而适合新唐的程序框架,笔者也正在摸索之中,哪位有比较成熟的框架结构,还希望共享一下。呵呵,先啰嗦到这里,下面附上例程:

#include"include.h"

E_TYPE_LED temp_led;
;

//uint8_t test = 0;

void AllLedOff()
{
DrvGPIO_SetBit(E_GPA,);
DrvGPIO_SetBit(E_GPA,);
DrvGPIO_SetBit(E_GPA,);
DrvGPIO_SetBit(E_GPA,);
}

void Tim0CALLBACK(void) //定时器0中断函数 执行LED
{
// DrvGPIO_ClrBit(E_GPA,2);
// DrvGPIO_ClrBit(E_GPA,5);
switch(temp_led++)//(test++)
{
case LED1 ://1:
AllLedOff();
DrvGPIO_ClrBit(E_GPA,);
break;
case LED2 ://2:
AllLedOff();
DrvGPIO_ClrBit(E_GPA,);
break;
case LED3 ://3:
AllLedOff();
DrvGPIO_ClrBit(E_GPA,);
break;
case LED4 : //4:
AllLedOff();
DrvGPIO_ClrBit(E_GPA,);
break;
default :
AllLedOff();
temp_led = LED1;//test = 1;
break;
}
} 

void BeeOn() //蜂鸣器
{
DrvGPIO_SetBit(E_GPB,); //怎么读入某位的值
}

void BeeOff()
{
DrvGPIO_ClrBit(E_GPB,);
}

void SysTick_Handler(void) //系统定时器中断函数
{
flag_100ms++;
)
{
// DrvGPIO_ClrBit(E_GPA,4);
// DrvGPIO_SetBit(E_GPA,5);
BeeOn();
}
) && (flag_100ms <= ))
{
// DrvGPIO_ClrBit(E_GPA,5);
// DrvGPIO_SetBit(E_GPA,4);
BeeOff();
}
)
{
flag_100ms = ;
}
} 

void GPIOInit()
{
DrvGPIO_Open(E_GPA,,E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,,E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,,E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,,E_IO_OUTPUT);

DrvGPIO_Open(E_GPB,,E_IO_OUTPUT);
}

void TIMERInit()
{
DrvTIMER_Init();

DrvSYS_SelectIPClockSource(E_SYS_TMR0_CLKSRC,);

DrvTIMER_Open(E_TMR0,,E_PERIODIC_MODE); //每秒tick数 每秒tick一次

DrvTIMER_SetTimerEvent(E_TMR0,,(TIMER_CALLBACK) Tim0CALLBACK,); //定时器的tick周期 每秒1次
// DrvTIMER_Open(E_TMR0,1,E_PERIODIC_MODE); //每秒tick数 每秒tick一次

DrvTIMER_EnableInt(E_TMR0);

DrvTIMER_Start(E_TMR0);
} 

void SYSCLKInit()
{
DrvSYS_SelectSysTickSource();
SysTick->CTRL = 0x00000003; SysTick->VAL = 0x00000000;
SysTick->LOAD = 0x6000; //100ms
} 

void SysInit()
{
UNLOCKREG();
SYSCLK->PWRCON.XTL12M_EN = ;
LOCKREG();

GPIOInit(); //GPIO 初始化
TIMERInit();
SYSCLKInit();
}

int main()
{
SysInit();

)
{
;
}
}

从51跳新唐cortex学习3——细说新唐两种定时器的更多相关文章

  1. ElasticSearch 学习记录之Text keyword 两种基本类型区别

    ElasticSearch 系列文章 1 ES 入门之一 安装ElasticSearcha 2 ES 记录之如何创建一个索引映射 3 ElasticSearch 学习记录之Text keyword 两 ...

  2. JavaWeb学习 (二十)————JavaWeb的两种开发模式

    一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示

  3. ToStringBuilder学习(二):两种方法用法优缺点及一个问题

    研究ApacheCommon源码, 先从一个最简单的开始,即围绕Object类里的toString方法自动化实现的一系列类.         怎么来自动化地实现toString方法, 有两种:反射和手 ...

  4. 五分钟学习React(五):React两种构建应用方式选择

    经过这四期的讲解,我们从Hello World应用入手,解释了React最重要的概念JSX,以及两种不同模式的应用构建方法.这一讲我们着重对比传统模式和新模式下的React项目构建,从而为初学者提供学 ...

  5. SQLite3学习笔记----创建数据库的两种方式

    今天研究学习SQLite,刚开始创建数据库,就遇到了一个坑,是自己粗心了,特记录一下. 实验环境: OS:Ubuntu18.04 创建数据库名称:test.db 实验步骤: 1.检查是否已经安装了SQ ...

  6. 【原】iOS学习之XML与JSON两种数据结构比较和各自底层实现

    1.XML与JSON两种数据结构的优缺点 1> XML 优点:
 格式统一, 符合标准
 容易与其他系统进行远程交互, 数据共享比较方便 
 缺点: XML文件格式文件庞大, 格式复杂, 传输占 ...

  7. TestLink学习三:发送邮件的两种配置方法

    第一种:修改config.inc.php中的[smtp],配置为默认本地发送,用hotmail用户做接收,调试成功!(本人未尝试这种) // ----------------------------- ...

  8. python 学习笔记(二)两种方式实现第一个python程序

    在交互模式下: 如果要让Python打印出指定的文字,可以用print语句,然后把希望打印的文字用单引号或者双引号括起来,但不能混用单引号和双引号: >>> print 'hello ...

  9. Python开发【笔记】:pymsyql 插入一条数据同时获取新插数据的自增id的两种方式

    一.通过cursor.lastrowid import pymysql.cursors # Connect to the database connection = pymysql.connect(h ...

随机推荐

  1. image元素的src属性值与getAttribute('src')值

    采集的时候,当采集到一些不可用的照片就将其剔除掉 我的解决思路是new一个img对象, 然后将采集过来的图片赋值给这个img, 然后分别处理img的onerror和 onload, 当在onerror ...

  2. SQL 2008升级SQL 2008 R2完全教程或者10.00.4000升级10.50.1600

    今天将由于需要就将我的SQL 2008升级到SQL 2008 R2. 说到为什么要升级是因为,从另一台机器上备份了一个数据库,到我的机器上还原的时候提示“System.Data.SqlClient.S ...

  3. android入门——UI(6)——ViewPager+Menu+PopupWindow

    一.使用ViewPager开发新特性引导界面 <?xml version="1.0" encoding="utf-8"?> <Relative ...

  4. excel导出、导入功能

    public class ExcelHelper { #region 数据导出至Excel文件 /// </summary> /// web导出Excel文件,自动返回可下载的文件流 // ...

  5. java 笔试

    单例设计模式: public class Singliton { //no new private Singliton (){ } static Singliton ins = null; publi ...

  6. oracle习题SQL语句练习

    表(一)Student (学生表) 属性名 数据类型 可否为空 含 义 Sno Varchar2(3) 否 学号(主码) Sname Varchar2(8) 否 学生姓名 Ssex Varchar2( ...

  7. sql语句中特殊函数的用法

    1.concat CONCAT(字串1, 字串2, 字串3, ...): 将字串1.字串2.字串3,等字串连在一起. 例如: Geography 表格 region_name     store_na ...

  8. FSM(有限状态机)

    游戏引擎是有限状态机最为成功的应用领域之一,由于设计良好的状态机能够被用来取代部分的人工智能算法,因此游戏中的每个角色或者器件都有可能内嵌一个状态机.考虑RPG游戏中城门这样一个简单对象,它具有打开( ...

  9. Java学习之字符串练习

    1.给定一个字符串数组.按照字典顺序进行从小到大的排序. * 思路: * 1,对数组排序.可以用选择,冒泡都行. * 2,for嵌套和比较以及换位. * 3,问题:以前排的是整数,比较用的比较运算符, ...

  10. rsyslog 日志归类思路--根据syslog local5 nginx-zjzc01;

    Aug 5 16:36:12 jrhwpt01 nginx-zjzc01: www.zjcap.cn 10.252.105.157 10.171.246.184 [05/Aug/2016:16:36: ...