Atmel_TC 定时器/计数器- 轩辕赤血的日志- 网易博客
Atmel_TC 定时器/计数器
2010-06-07 13:56:49
阅读
6
评论
0
字号:
大
中
小
TC 定时器/计数器
TC包含三个相同的16位定时器/计数器通道,两种模式(捕获模式和波形模式)
功能:频率测量、事件计数、间隔测量、脉冲产生、延时时间及脉宽调制
各通道包含:三个外部时钟输入,五个内部时钟输入,两个多功能输入/输出信号,可配置产生中断
内部时钟源:TIMER_CLOCK1(MCK/2)、TIMER_CLOCK2(MCK/8)、TIMER_CLOCK3(MCK/32)、TIMER_CLOCK4(MCK/128)、TIMER_CLOCK5(MCK/1024)
外部时钟信号:XC0、XC1、XC2
四种触发类型:SYNC信号、软件触发器、RC比较寄存器和外部触发
定时的周期 T = (1/时钟源)*TC_RC 例如这里MCK=18.432M T =(1024/MCK)* 18432 = 1S 那么一秒钟中断一次
TC_BCR TC块控制寄存器
[0]SYNC:同步命令 1-每个通道同事产生软件触发
TC_BMR TC块模式寄存器
[0-1]TX0XC0S:外部时钟信号0选择 0-TCLK0 1-无 2-TIOA1 3-TIOA2
[2-3]TX1XC1S:外部时钟信号1选择 0-TCLK1 1-无 2-TIOA0 3-TIOA2
[4-5]TX2XC2S:外部时钟信号2选择 0-TCLK2 1-无 2-TIOA0 3-TIOA1
TC_CCR TC通道控制寄存器
[0]CLKEN:计数器时钟使能命令
[1]CLKDIS:计数器时钟禁用命令
[2]SWTRG:软件触发命令 1-软触发 计数器复位 时钟启动
TC_CMR TC通道模式寄存器(捕获模式)
[0-2]TCCLKS:时钟选择 0-TIMER_CLOCK1 ... 4-TIMER_CLOCK5 5-XC0 6-XC1 7-XC2
[3]CLKI:时钟反转 0-上升沿计数器增加 1-下降沿
[4-5]BURST:脉冲信号选择
[6]LDBSTOP:RB载入时,计数器时钟停止
[7]LDBDIS:RB载入时,计数器时钟禁用
[8-9]ETRGEDG:外部触发边沿选择 0-无 1-上升沿 2-下降沿
[10]ABETRG:TIOA或TIOB外部触发选择 0-TIOB用作外部触发器 1-TIOA
[14]CPCTRG:RC比较触发使能 1-RC比较复位计数器并启动计数器时钟
[15]WAVE 0-捕获模式使能 1-禁用(波形模式使能)
[16-17]LDRA:RA载入选择 1-TIOA上升沿 2-下降沿 3-任意
[18-19]LDRB:RB载入选择
TC_CMR TC通道模式寄存器(波形模式)
[0-2]TCCLKS:时钟选择 0-TIMER_CLOCK1 ... 4-TIMER_CLOCK5 5-XC0 6-XC1 7-XC2
[3]CLKI:时钟反转 0-上升沿计数器增加 1-下降沿
[4-5]BURST:脉冲信号选择
[6]CPCSTOP:RC比较时,计数器时钟停止
[7]CPCDIS:RC比较时,计数器时钟禁用
[8-9]EEVTEDG:外部事件边沿选择 0-无 1-上升沿 2-下降沿 3-任意
[10-11]EEVT:外部事件选择 0-TIOB 1-XC0 2-XC1 3-XC2
[12]ENETRG:外部事件触发使能 1-复位计数器并启动计数器时钟
[13-14]WAVSEL:波形选择
[15]WAVE 1-波形模式使能
[16-17]ACPA:TIOA上RA比较效果 1-置位 2-清零 3-切换
[18-19]ACPC:TIOC上RC比较效果
[20-21]AEEVT:TIOA上外部事件效果
[22-23]ASWTRG:TIOA上软件触发效果
[24-25]BCPB:TIOB上RB比较效果
[26-27]BCPC:TIOB上RC比较效果
[28-29]BEEVT:TIOB上外部事件效果
[30-31]BSWTRG:TIOB上软件触发效果
TC_CV TC计数器值寄存器
[0-15]CV:实时计数器值
TC_RA TC寄存器A
[0-15]RA:实时寄存器A值
TC_RB TC寄存器B
[0-15]RB: 实时寄存器B值
TC_RC TC寄存器C
[0-15]RC: 实时寄存器C值
TC_SR TC状态寄存器
[0]COVFS:计数器溢出状态
[1]LOVRS:载入溢出状态
[2]CPAS:RA比较状态
[3]CPBS:RB比较状态
[4]CPCS:RC比较状态
[5]LDRAS:RA载入状态
[6]LDRBS:RB载入状态
[7]ETRGS:外部触发状态
[16]CLKSTA:时钟使能状态
[17]MTIOA:TIOA镜像
[18]MTIOB:TIOB镜像
TC_IER TC中断使能寄存器
[0]COVFS:计数器溢出
[1]LOVRS:载入溢出
[2]CPAS:RA比较
[3]CPBS:RB比较
[4]CPCS:RC比较
[5]LDRAS:RA载入
[6]LDRBS:RB载入
[7]ETRGS:外部触发
0-无效 1-中断使能
TC_IDR TC中断禁用寄存器
[0]COVFS:计数器溢出
[1]LOVRS:载入溢出
[2]CPAS:RA比较
[3]CPBS:RB比较
[4]CPCS:RC比较
[5]LDRAS:RA载入
[6]LDRBS:RB载入
[7]ETRGS:外部触发
0-无效 1-中断禁用
TC_IMR TC中断屏蔽寄存器
[0]COVFS:计数器溢出
[1]LOVRS:载入溢出
[2]CPAS:RA比较
[3]CPBS:RB比较
[4]CPCS:RC比较
[5]LDRAS:RA载入
[6]LDRBS:RB载入
[7]ETRGS:外部触发
0-禁用 1-使能
//============================TC调试 wang@20080612==================================
#include "../Startup/Board.h"
void Timer0ISR(void);
/*
* 初始化定时器T0
*/
void Timer0Init(void)
{
AT91F_TC0_CfgPMC();
*AT91C_PIOA_PDR = AT91C_PA0_TIOA0;
*AT91C_PIOA_BSR = AT91C_PA0_TIOA0;
AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS; // Disable TC.
AT91C_BASE_TC0->TC_IDR = 0xFFFFFFFF;
*AT91C_TC0_CMR =(AT91C_TC_CLKS_TIMER_DIV5_CLOCK
| AT91C_TC_BURST_NONE
| AT91C_TC_WAVE
| AT91C_TC_WAVESEL_UP_AUTO
| AT91C_TC_ACPA_SET
| AT91C_TC_ACPC_CLEAR
);
AT91C_BASE_TC0->TC_RC = MCK/1024;// 1/(1/(MCK/1024)) 1秒中断一次 定时的周期 T = (1/时钟源)*TC_RC // T=1 时钟源=MCK/1024 1=(1/(MCK/1024))*TC_RC
AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKEN;
AT91F_AIC_ConfigureIt (
AT91C_BASE_AIC, // AIC base address
AT91C_ID_TC0, // SYSTEM peripheral ID
AT91C_AIC_PRIOR_HIGHEST, // Max priority
AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL, // Internal Sources Code Label Edge triggered
Timer0ISR );
AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS; // RC比较使能
AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_TC0);//使能时钟中断
AT91C_BASE_TC0->TC_CCR = AT91C_TC_SWTRG; // 软件触发命令 1-软触发 计数器复位 时钟启动
}
/*
* 定时器T0中断
*/
void Timer0ISR(void)
{
int status;
status = *AT91C_TC0_SR;
if ( (AT91F_PIO_GetInput(AT91C_BASE_PIOA) & LED2) == LED2 )
{
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LED2);
}
else
{
AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LED2);
}
}
void main(void)
{
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
AT91F_PIO_CfgOutput( AT91C_BASE_PIOA, LED_MASK ) ;
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED_MASK ) ;
Timer0Init();
while(1)
{
;
}
}
//============================end=================================
引文来源 fly511
this.p={ m:2, b:2, id:'fks_080075092086086064092080080095082094082066086083095069', blogTitle:'Atmel_TC 定时器/计数器', blogUrl:'blog/static/6831259620105715649234', isPublished:1, istop:false, type:1, modifyTime:1275890275413, publishTime:1275890209234, permalink:'blog/static/6831259620105715649234', commentCount:0, mainCommentCount:0, recommendCount:0, friendstatus:'none', followstatus:'unFollow', pubSucc:'' }
{list a as x} {if !!x} {/if} {/list}
{if !!a} {/if}
<#--{zx1}日志-->
{list a as x} {if !!x}
{/if} {/list}
<#--推荐日志-->
推荐过这篇日志的人:
{if !!b&&b.length>0}
他们还推荐了:
{list b as y} {if !!y}
·
{/if} {/list}
{/if}
<#--引用记录-->
引用记录:
{list d as x}
·
{/list}
<#--相关日志-->
{list a as x} {if !!x}
{/if} {/list}
<#--推荐日志-->
{list a as x} {if !!x}
{/if} {/list}
<#--推荐阅读-->
{list a as x} {if !!x}
{/if} {/list}
<#--相关文章-->
{list a as x} {if x_index>9}{break}{/if} {if !!x}
${fn2(x.date,'yyyy-MM-dd HH:mm:ss')}
{/if} {/list}
<#--历史上的今天-->
{list a as x} {if x_index>4}{break}{/if} {if !!x}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{/if} {/list}
<#--右边模块结构-->
{zx1}日志
博主推荐
相关日志
推荐阅读
随机阅读
<#--评论模块结构-->
<#--引用模块结构-->
#--引用模块结构-->#--评论模块结构-->#--右边模块结构-->#--历史上的今天-->#--相关文章-->#--推荐阅读-->#--推荐日志-->#--相关日志-->#--引用记录-->#--推荐日志-->#--{zx1}日志-->
郑重声明:资讯 【Atmel_TC 定时器/计数器- 轩辕赤血的日志- 网易博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【
在线投诉
】,我们审核后将会尽快处理。
——
相关资讯
——
智能安防行业的兴起带动硬盘厂家的技术变革
2022/6/10
烟台国产150MPA超高压快速接头批发价格-晟叶流体科技(推荐阅读)_贵阳希恩125系列250MPA快速接头批发价格(欢迎进入
2019/5/11
辽源iso14001认证公司哪家好_吉林鸿诺企业管理咨询
2018/8/18
《赤壁》下部篡改历史 周瑜{z}后放生曹操(图)
2008/12/29
青岛回收SKYWORKS思佳讯手机存储芯片
2022/8/17
当当网购书
2013/4/16
吉林粮食集团暂停玉米出口- 金融词典- enshrines - 和讯博客
2010/2/24
湖州无线座机标准资费套餐_湖州_优惠业务_浙江移动| 移动业务宝典
2010/1/31
滑雪服和冲锋衣区别阿里巴巴hisen2009的博客BLOG
2010/1/30
放毒了吗???
2010/3/18
2010-2014年中国制鞋设备行业市场调研及投资发展前景战略分析报告阿里 ...
2010/4/2
消费主张_湖光中学86的空间_百度空间
2010/5/15
C blog » 一个程序员应该怎样去学习和掌握计算机英语呢
2010/5/27
张艺谋拍《山楂树之恋》:“老三” 8次跳河« 艾园
2010/5/28
如何改变宫寒←と
2012/9/5
眼袋下垂怎么办快速
2015/3/8
额头上面两边头发少
2015/3/17
头碰撞掉头发
2015/3/24
LED显示屏要在哪里买,南平室内全彩色LED显示屏
1900/1/1