#include<iostm8s105c6.h>
unsigned int t=0,tm=0;
void main()
{
PC_DDR_DDR3=1;
PC_CR1_C13=1;
PC_CR2_C23=0;
PC_ODR_ODR3=1;//接电机继电器,启动
TIM2_IER=0X00;//关中断
TIM2_EGR=0X01;//开更新
TIM2_PSCR=0x01;//分频 现在是1us
TIM2_ARRH=0Xc3;//50000
TIM2_ARRL=0X50;
TIM2_CNTRH=0Xc3;
TIM2_CNTRL=0X50;//t=50000*1us=50ms
TIM2_CR1=0X01;//启动定时器
TIM2_IER=0X01;//开更新中断
asm("rim");//开全局
while(1);
}
#pragma vector=TIM2_OVR_UIF_vector
__interrupt void TIM2_OVR_UIF(void)
{
t++;
if(t==10000)
{
t=0;
tm++;
PC_ODR_ODR3=0;//关电机
//按我理解这里应该是50*10000=500s停的 可是就只有一秒的感觉
}
}
此帖出自
小平头技术问答
一周热门 更多>