周期性间隔定时器(PIT) - 轩辕赤血的日志- 网易博客
周期性间隔定时器(PIT)
2010-05-26 15:16:55
阅读
9
评论
0
字号:
大
中
小
//wang@20070606 周期性间隔定时器(PIT)
/*
PIT_MR模式寄存器
[0-19]PIV: 周期性间隔数值 定义了与周期性间隔寄存器20 位计数器CPIV比较的数值。
[24]PITEN: 使能周期性间隔定时器 只有在CPIV 为0时操作PITEN 才有作用
[25]PITIEN: 使能周期性间隔定时器中断
PIT_SR状态寄存器
[0]PITS: 周期性间隔定时器状态 (1 = 自上次读取PIT_PIVR之后周期性间隔定时器已经计数到PIV)
PIT_PIVR数值寄存器 (通过读PIT_PIVR xx中断)
[0-19]CPIV: 当前周期性间隔数值 返回周期性间隔定时器的当前数值
[20-31]PICNT: 周期性间隔计数器 返回自上一次读取PIT_PIVR 之后发生的周期性间隔次数
PIT有一个可编程的溢出计数器和读后即复位的特性。它基于两个计数器:一个20位的CPIV计
数器和一个12位的PICNT计数器。两个计数器的时钟都是主时钟的1/16。
20位的CPIV计数器从0开始计数,直到模式寄存器 PIT_MR的PIV域定义的溢出数值为止。CPIV
计到这个数值后即复位为0,同时周期性间隔计数器PICNT 加一。然后状态寄存器PIT_SR 的
位PITS置位并触发中断,此时中断是使能的(PIT_MR 的位PITIEN)
通过读取周期性间隔映像寄存器PIT_PIIR 获得CPIV 和PICNT 的数值对计数器的CPIV 和
PICNT,以及PITS没有影响。例如,软件剖析工具可以读取PIT_PIIR而不会xx任何已经发生
但还未处理的中断,而定时器中断通过读PIT_PIVR xx中断。
*/
#include "../Startup/Board.h"
const int led_mask[8]= {LED1, LED2, LED3, LED4};
#define PIV_200_MS 200
void Periodic_handler(void)
{
unsigned int status;
//* Interrupt Acknowledge
status = AT91C_BASE_PITC->PITC_PIVR; //读PIT_PIVRxx中断
status =status;
// AT91C_BASE_DBGU->DBGU_THR = '*';
//* Read the output state
if ((AT91F_PIO_GetInput(AT91C_BASE_PIOA) & LED1 ) == LED1 )
{
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA, LED1 );
}
else
{
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED1 );
}
}
int main()
{
// First, enable the clock of the PIO
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
AT91F_PIO_CfgOutput( AT91C_BASE_PIOA, LED_MASK ) ;
// Clear the LED's. On the EB55 we must apply a "1" to turn off LEDs
AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED_MASK ) ;
//配置中断
AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_SYS, 0,AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE, Periodic_handler);
//设置中断模式
//PITEN: 使能周期性间隔定时器
//PITIEN: 使能周期性间隔定时器中断
//PIV: 周期性间隔数值 (((MCK/16)*PIV_200_MS)/1000-1) 范围20位,溢出时取溢出部份
AT91C_BASE_PITC->PITC_PIMR = AT91C_PITC_PITEN | AT91C_PITC_PITIEN | (((MCK/16)*PIV_200_MS)/1000-1) ;
//启用中断
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_SYS);
for(;;)
{
;
}
}//* End
引文来源
this.p={ m:2, b:2, id:'fks_080068092081080067081083084095082094082066086083095069', blogTitle:'周期性间隔定时器(PIT)', blogUrl:'blog/static/68312596201042631655362', isPublished:1, istop:false, type:1, modifyTime:0, permalink:'blog/static/68312596201042631655362', 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}
<#--相关文章 2010.04.29="" by="" yangfan--="">
{list a as x} {if x_index>4}{break}{/if} {if !!x}
${fn2(x.publishTime)}
{/if} {/list}
<#--右边模块结构-->
{zx1}日志
博主推荐
相关日志
推荐阅读
<#--评论模块结构-->
<#--引用模块结构-->
#--引用模块结构-->#--评论模块结构-->#--右边模块结构-->#--相关文章>#--推荐阅读-->#--推荐日志-->#--相关日志-->#--引用记录-->#--推荐日志-->#--{zx1}日志-->
郑重声明:资讯 【周期性间隔定时器(PIT) - 轩辕赤血的日志- 网易博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【
在线投诉
】,我们审核后将会尽快处理。
——
相关资讯
——
GRUNDFOS上海杨浦区格兰富增压泵维修销售热线
2017/9/24
矿用本安型温度变送器 厂家销售价格
2017/6/10
鹤壁液下泵
2018/4/30
xxx30天!第三届中山互联网大会时间已定,安排八场活动三千人参加(附招商方案)
2020/10/21
【自我吐槽】败家的{yt}。。。_地下的无奈TOT_百度空间
2010/1/26
18%咪鲜胺松脂酸铜-- 供应信息-- 中国农药网
2010/1/29
草莓~&cet…… - 景炫- 博客大巴
2010/3/3
十万万丰奥特上海世博会“概念轮”全球征集创意设计- 视觉同盟 ...
2010/3/16
反应釜的设计要点_风管_百度空间
2010/3/20
数控机床的养生之道_SAINET_新浪博客
2010/3/25
箱包在礼品市场兴起-sdjklwader-搜狐博客
2010/6/2
男士如何去眼袋
2015/3/2
适合挂书房的字
2015/3/18
xx计划
2015/3/19
破碎机制造商|价格|型号【中王】邹平机械厂
1900/1/1
江苏哪里有供应划算的楼梯踏步板:楼梯踏步板供货商
1900/1/1
pvc医用地板价格|福建知名的医院pvc塑胶地板厂商推荐
1900/1/1