1、xs128 PIT其实很简单,就是两个8位小定时器,4个16位定时器,然后16位的定时器是在8位小定时器的基础上再去调整的。
2、很奇葩也很重要的一点,在清除定时器中断标志位PITTF时若用位寻址是会出错的,这点datasheet上也没提及。
//--------------------- 定时器 -----------------------
void PIT_Init(void)
{
PITCFLMT_PITE = 0; // 关闭PIT通道使能
PITCE_PCE0 = 1; // 定时器通道0使能
PITCE_PCE1 = 1; // 定时器通道1使能
PITMUX_PMUX0 = 0; // 相应16位定时器0与微时基0连接
PITMUX_PMUX1 = 0; // 相应16位定时器1与微时基0连接
PITMTLD0 = 200 - 1; // 8位定时器0初值设定
// 200分频,在80MHzBusClock下,为0.4MHz。即2.5us
PITLD0 = 4 - 1; // 16位定时器0初值设定。
// 定时 PITMTIME*4=2.5us*4=10us
PITLD1 = 10000 - 1; // 16位定时器1初值设定。
// 定时 PITMTIME*4000=2.5us*10000=25ms
PITINTE_PINTE0 = 1; // 定时器0中断通道0中断使能
PITINTE_PINTE1 = 1; // 定时器1中断通道0中断使能
PITCFLMT_PITE = 1; // PIT通道使能
}
//==============
PIT配置详解:8位与16位定时器的使用技巧

本文介绍了PIT配置,包括其简单的结构——两个8位和四个16位定时器。特别强调了一个重要的编程注意事项:清除定时器中断标志位PITTF时,直接位寻址可能导致错误,此问题在 datasheet 中并未明确指出。
最低0.47元/天 解锁文章
2676

被折叠的 条评论
为什么被折叠?



