历史上的今天
今天是:2025年07月24日(星期四)
2018年07月24日 | STM8的TIM1定时器简单使用
2018-07-24 来源:eefocus
STM8的TIM1是16位高级控制定时器,简单的定时溢出中断。功能实现LED1亮500ms,灭500ms,循环往复。
#i nclude
void CLK_init(void)
{
CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M
}
void GPIO_init(void)
{
PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出
PD_CR1 = 0x08; // 设置PD3为推挽输出
}
void TIM1_init(void)
{
TIM1_PSCRH = 0x1F; // 8M系统时钟经预分频f=fck/(PSCR+1)
TIM1_PSCRL = 0x3F; // PSCR=0x1F3F,f=8M/(0x1F3F+1)=1000Hz,每个计数周期1ms
TIM1_ARRH = 0x01; // 自动重载寄存器ARR=0x01F4=500
TIM1_ARRL = 0xF4; // 每记数500次产生一次中断,即500ms
TIM1_IER = 0x01; // 允许更新中断
TIM1_CR1 = 0x01; // 计数器使能,开始计数
}
#pragma vector=TIM1_OVR_UIF_vector
__interrupt void TIM1_OVR_UIF(void)
{
PD_ODR ^ = 0x08 //LED接在PD3上
TIM1_SR1 = 0x00; // 清除更新中断标记,这步不能漏掉,否则会连续进入中断程序
}
void init_devices(void)
{
asm("sim"); // 关全局中断
CLK_init();
GPIO_init();
TIM1_init();
asm("rim"); // 开全局中断
}
void main( void )
{
init_devices();
// 主循环里没有程序需要执行
while(1);
}
史海拾趣
|
散分!同时寻找北京WINCE开发人员加入“嵌入式技术外包群” 帮朋友发布一下消息,请大家多多捧场哈! 如题!诚请在北京的WINCE技术高手加入“嵌入式技术外包群”,该群将不定期 发布一些外包信息! 群号:48348107… 查看全部问答> |
|
如题。 现在要做USB插入和拔除的探测,并得到其盘符。 我是直接解析系统广播的消息:DBT_DEVICEREMOVECOMPLETE 和 DBT_DEVICEARRIVAL 但是问题比较奇怪,拔插U盘,与拔插SD卡得到的消息与参数是一样的: DEV_BROADCAST_HDR 结构的dbcp_devicety ...… 查看全部问答> |
|
请问在USB HID minidriver中,如何断定应该采用直接方式读写还是采用缓冲方式? 读写方式是在创建设备对象的时候设定的,但是这个设备对象是由hidclass.sys创建的,minidriver怎么能知道是什么方式呢?… 查看全部问答> |
|
咱论坛 送的cortex-M3 开发板 LM3s 芯片 管脚连线图有没呀。。。提供的管脚比较乱 看不出来 gpio 连在哪了。。 请 版主 给提供下。。谢谢了… 查看全部问答> |
|
本人在用DSP做电机控制时,使用PID算法进行位置环,速度环双闭环控制,出现如下问题: 1、单独使用PID位置环算法无问题,能够精确控制电机到指定位置 2、单独使用PID速度环算法无问题,能够精确控制电机到指定速度 3、但是当我将PID位置环和速度 ...… 查看全部问答> |
|
replyreload += \',\' + 1476714;破解为别人的,本人只是低调转发,不对任何错误负责 file:///C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\TempPic\\MCUYE7)_}E]ASP$Z2]D2OL4.tmp 下载后感觉有用就帮顶下!! Timson,如果您要查看本帖隐藏内容请回 ...… 查看全部问答> |




