圣龙扬特-AVR电子

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2029|回复: 5
打印 上一主题 下一主题

STM8S的输入捕获测试程序

[复制链接]

26

主题

1

好友

3446

积分

超级版主

Rank: 8Rank: 8

UID
7
帖子
140
精华
0
注册时间
2013-2-26
在线时间
20 小时

突出贡献

跳转到指定楼层
楼主
发表于 2013-2-28 20:25:37 |只看该作者 |倒序浏览
#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);
                }
        }
}
回复

使用道具 举报

6

主题

1

好友

3385

积分

超级版主

Rank: 8Rank: 8

UID
10
帖子
48
精华
1
注册时间
2013-2-26
在线时间
27 小时
沙发
发表于 2013-3-12 11:48:17 |只看该作者
赶脚铜爷这个程序不全
天之道,利而不害;圣人之道,为而不争
回复

使用道具 举报

26

主题

1

好友

3446

积分

超级版主

Rank: 8Rank: 8

UID
7
帖子
140
精华
0
注册时间
2013-2-26
在线时间
20 小时

突出贡献

板凳
发表于 2013-3-12 14:01:59 |只看该作者
八斤 发表于 2013-3-12 11:48
赶脚铜爷这个程序不全

这是完全的程序,测试输入的航模接收机输出通道PPM宽度,是否大于1500的完整程序。
回复

使用道具 举报

26

主题

1

好友

3446

积分

超级版主

Rank: 8Rank: 8

UID
7
帖子
140
精华
0
注册时间
2013-2-26
在线时间
20 小时

突出贡献

地板
发表于 2013-3-12 14:03:02 |只看该作者
本帖最后由 铜河 于 2013-3-12 14:04 编辑

只是中断程序没贴上来。
回复

使用道具 举报

6

主题

1

好友

3385

积分

超级版主

Rank: 8Rank: 8

UID
10
帖子
48
精华
1
注册时间
2013-2-26
在线时间
27 小时
5#
发表于 2013-3-12 20:34:32 |只看该作者
厉害
天之道,利而不害;圣人之道,为而不争
回复

使用道具 举报

0

主题

0

好友

272

积分

中级会员

Rank: 3Rank: 3

UID
155
帖子
4
精华
0
注册时间
2013-3-3
在线时间
5 小时
6#
发表于 2013-3-14 08:47:24 |只看该作者
我觉得 应该还有个中断程序撒      
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|圣龙扬特-AVR电子 ( 鲁ICP备05022832号 )

GMT+8, 2024-6-18 08:30 , Processed in 0.216900 second(s), 18 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部