圣龙扬特-AVR电子
标题:
STM8S的输入捕获测试程序
[打印本页]
作者:
铜河
时间:
2013-2-28 20:25
标题:
STM8S的输入捕获测试程序
#include <iostm8s103.h>
unsigned int ch1;//PWM周期
unsigned int ch2;//高电平宽度
unsigned char flash;//灯控开关
void CLK_init(void)
{
CLK_ICKCR=0X01;//内部时钟使能
CLK_CKDIVR=0X00;//16MHZ HSI 不分频
}
void GPIO_init(void)
{
PA_DDR = 0xFF; //PA输出
PA_CR1 = 0xFF; //推挽
PA_CR2 = 0xFF;
PB_DDR = 0xFF; //PB输出
PB_CR1 = 0xFF;
PB_CR2 = 0xFF;
PB_ODR = 0x30;
PC_DDR = 0xB7; //输出
PC_CR1 = 0xF7; //推挽输出
PC_CR2 = 0xB7; //高速输出
PD_DDR = 0x14; //PD4、PD2输出
PD_CR1 = 0x16; //推挽输出
PD_CR2 = 0x14; //高速输出
}
void TIM1_init(void)
{
TIM1_PSCRH=0X00;
TIM1_PSCRL=0X0F;//定时器CLK 16分频 1M时基
// TIM1_CCMR1=0x01;//|=0X01;//CH1配置为输入 映射到TI1FP1
TIM1_CCER1&=0XEC;//CH1上升沿触发
TIM1_CCMR2=0x02;//|=0X02;//CH2配置为输入 映射到TI1FP2
TIM1_CCER1=0x13;//|=0X20;//CH2下降沿触发
TIM1_SMCR|=0X54;//选择滤波后的TI1FP1输入触发,触发后复位,重新初始化计数器
TIM1_IER|=0X06;//使能通道1、通道2捕获功能中断
TIM1_CCER1|=0X11;//使能通道1、通道2的输入捕获功能
TIM1_CR1|=0X01;//定时器使能
}
void delay_ms(unsigned int n) //16M ms延时函数
{
unsigned int i,j;
for(j=0;j<n;j++)
for(i=0;i<1120;i++);
}
main()
{
unsigned char n;
unsigned int delay;
CLK_init();
GPIO_init();
TIM1_init();
// TIM2_init();
_asm("rim");//开全局中断
while (1)
{
unsigned char n;
if(ch2<1500)
{
PB_ODR |= 1<<5;
}
else
{
PB_ODR &= ~(1<<5);
}
}
}
作者:
八斤
时间:
2013-3-12 11:48
赶脚铜爷这个程序不全
作者:
铜河
时间:
2013-3-12 14:01
八斤 发表于 2013-3-12 11:48
赶脚铜爷这个程序不全
这是完全的程序,测试输入的航模接收机输出通道PPM宽度,是否大于1500的完整程序。
作者:
铜河
时间:
2013-3-12 14:03
本帖最后由 铜河 于 2013-3-12 14:04 编辑
只是中断程序没贴上来。
作者:
八斤
时间:
2013-3-12 20:34
厉害
作者:
swustlx86
时间:
2013-3-14 08:47
我觉得 应该还有个中断程序撒
欢迎光临 圣龙扬特-AVR电子 (http://avr.cnta.net/)
Powered by Discuz! X2.5