圣龙扬特-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