历史上的今天
今天是:2025年02月09日(星期日)
2020年02月09日 | STM8S TIM1/TIM2 初始化函数
2020-02-09 来源:eefocus
/*
TIM2初始化函数
返回值:无
参数:定时时间 us
*/
#define CPU_CLK 16027 //主频 KHz
void timer2_Init(ulong us)
{
uchar PSCR = 0; //分频
uint pow;
ulong ARR;
start:
pow=1;
for(uchar i=0;i pow *= 2; } if(us>250000) ARR = (((((us-1)/ 1000) * CPU_CLK) )/pow); else ARR = ((((us-1) * CPU_CLK+500) / 1000)/pow); if(ARR>0xffff) //计算arr是否超出范围 { PSCR++; goto start; } TIM2_PSCR_PSC = PSCR; TIM2_ARRH = (uchar)(ARR>>8); TIM2_ARRL = (uchar)(ARR&0x00ff); TIM2_IER = 0x01; TIM2_CR1 = 0x01; } /* TIM1初始化函数 返回值:无 参数:定时时间 us */ void timer1_Init(ulong us) { uint PSCR = 0; //分频 ulong ARR; start: if(us>250000) //2000000 ARR = (((((us-1)/ 1000) * CPU_CLK) )/(PSCR+1)); else ARR = ((((us-1) * CPU_CLK+500) / 1000)/(PSCR+1)); if(ARR>0xffff) //计算arr是否超出范围 { PSCR++; goto start; } TIM1_PSCRH = (uchar)((PSCR)>>8); TIM1_PSCRL = (uchar)((PSCR) & 0x00ff); //(15+1)分频为1M TIM1_ARRH = (uchar)(ARR>>8); TIM1_ARRL = (uchar)(ARR&0x00ff); //每us中断一次 TIM1_IER = 0x01; //允许更新中断 TIM1_CR1 = 0x01; //计数器使能,开始计数 }
史海拾趣
|
我用的飞思卡尔的IMX21的板子,现在要移植2.6的内核上去,但是编译的时候在这里一直通不过,请大家帮忙看看,谢谢了 CHK include/linux/compile.h AS arch/arm/kernel/head.o arch/arm/kernel/head.S: Assembler messages: arch/arm/kernel/hea ...… 查看全部问答> |
|
uclinux下实现usb固件程序!来者有分!!哪位想帮小弟这个忙,可以谈谈报酬!呵呵 我的S3C44B0带有个USBD12芯片, 1,在没有操作系统uclinux情况下,我写了个固件程序,实现了usb device,注意不是usb host。 2,我又在这块板子上成功移植了uclinux系统。 问题,现在我想把固件程序放到uclinux里面,有人说因为用到中断,得做成 ...… 查看全部问答> |
|
仿真没问题,一旦拔下JATG,程序不运行或运行错,急,急,急呀! 我用的是 MSP430F135芯片,程序仿真一切正常,build后,可直接写道芯片去。一旦拔下JATG,程序不运行或运行错。我猜测是程序复位问题,即是程序没找到起始地址,或找错了。如何才能让它正常运行呢,急呀, ,快过年了,还没有回家呢!! ...… 查看全部问答> |
|
单片机型号:STC89C52RC 问题描述:读P1口数据,数据为空 P1已经定义 uchar uReadValue; P1_0=0; P1_1=0; //此处OK,正常点亮了P1低位的两个Led uReadValue=P1;//将P1的值赋给变量uReadValu ...… 查看全部问答> |




