OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8211|回复: 14

用按键控制PWM输出,为什么就不行呢,原子哥帮我看看啊

[复制链接]

19

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2013-4-30
在线时间
0 小时
发表于 2013-5-1 13:40:42 | 显示全部楼层 |阅读模式
int main(void)
{
// u16 led0pwmval=1;
 // u8 dir=1;
  Stm32_Clock_Init(9); //系统时钟设置
delay_init(72);     //延时初始化
uart_init(72,9600);  //串口初始化 
LED_Init();   //初始化与LED连接的硬件接口
PWM_Init(900,0); //不分频。PWM频率=72000/900=8Khz
  
unsigned char Get_KEY(void)
{
unsigned char keyvalue;
return keyvalue;
}
while(1)
{
void KEY_PROCESS(void)
  {
    u16 led0pwmval=1;    
 unsigned char key = Get_KEY();
        
       switch(key)
        {
                case 0: led0pwmval++;break;//PWM的数值大小改变舵机的角度
                case 1: led0pwmval--; break;
                default:break;
        }
  }
delay_ms(10);
}
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-1 13:58:44 | 显示全部楼层
不知道你代码怎么写的...
也不知道你现在的状况。
就说不行...
你自己有没有分析过?
为什么不行?
你能不能自己找找问题点?能不能自行分析下。

因为我看你的代码,实在是没看明白,你上面贴的代码,在我看来是不完整的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-1 14:00:39 | 显示全部楼层
一个按键控制PWM的例程,提了三四个帖子了。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2013-4-30
在线时间
0 小时
 楼主| 发表于 2013-5-1 14:03:34 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
嗯好的
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-1 14:13:25 | 显示全部楼层
回复【4楼】huayue:
---------------------------------
你这个实现是很简单的。估计你写的代码写的比较少,所以搞得比较郁闷。
建议:
1,看懂我们的按键输入实验(能自己写一个按键输入的小代码,随便什么,总之要学会用)
2,看懂我们的PWM实验(知道PWM怎么产生的,知道如何设置PWM频率,占空比)

你可以用几天的时间去实现以上2个目标。
如果3天后,也就是这周日,你还做不出来,那我直接写个代码给你参考。你再对比为什么你写不出来,错在哪里...
所以,请3天后联系我,不要同一个问题一天发一个贴。浪费大家时间。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2013-4-30
在线时间
0 小时
 楼主| 发表于 2013-5-1 14:21:44 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
恩好的····
回复 支持 反对

使用道具 举报

19

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2013-4-30
在线时间
0 小时
 楼主| 发表于 2013-5-1 15:27:29 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥,我已经这个程序给弄出来了,谢谢指导···
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-1 19:06:54 | 显示全部楼层
回复【7楼】huayue:
---------------------------------
恭喜。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2017-7-18
在线时间
2 小时
发表于 2017-7-18 18:27:35 | 显示全部楼层
huayue 发表于 2013-5-1 15:27
回复【5楼】正点原子:
---------------------------------
原子哥,我已经这个程序给弄出来了,谢谢指导· ...

main函数自己写   引用PWM  LED  KEY的文件部分需要改吗   我也遇到问题了  灯自己在变亮   按键没有用
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2017-7-18
在线时间
2 小时
发表于 2017-7-18 20:07:00 | 显示全部楼层
正点原子 发表于 2013-5-1 19:06
回复【7楼】huayue:
---------------------------------
恭喜。

原子哥   可以帮我看下吗     新手入坑了
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "pwm.h"
#include "key.h"
       
               
int main(void)
{       
             
        u16 led0pwmval=0;   
        u8 key=0;       
       
       
        delay_init();                     //延时函数初始化          
        LED_Init();                          //初始化与LED连接的硬件接口
        TIM1_PWM_Init(899,0);//不分频。PWM频率=72000/(899+1)=80Khz
           while(1)
        {
               
                key=KEY_Scan(1);
          delay_ms(10);         
               
                if(key)
      {
          switch(key)
            {
               case 1:
              {led0pwmval=led0pwmval+10;if(led0pwmval==300) led0pwmval=300;}
               break;
               case 2:
              {led0pwmval=led0pwmval-10;if(led0pwmval==0)led0pwmval=0;}
               break;                        
             }
       
                      TIM_SetCompare1(TIM1,led0pwmval);          
            }
                }
    }      


我的这个灯自己在亮 ,键根本没有用,整了一天都没找到问题
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2017-11-2
在线时间
7 小时
发表于 2018-1-23 09:14:59 | 显示全部楼层
Mch 发表于 2017-7-18 20:07
原子哥   可以帮我看下吗     新手入坑了
#include "led.h"
#include "delay.h"

兄弟,同样作为一个新手,感觉看你的代码都惨不忍睹。找了半天没找到KEY_Init()。。。
回复 支持 反对

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2018-1-24 17:39:26 | 显示全部楼层
ttjaliy 发表于 2018-1-23 09:14
兄弟,同样作为一个新手,感觉看你的代码都惨不忍睹。找了半天没找到KEY_Init()。。。

哈哈哈~
情不自禁笑出声
回复 支持 反对

使用道具 举报

7

主题

33

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2018-1-31
在线时间
10 小时
发表于 2018-1-31 11:24:08 | 显示全部楼层
所以,,,为什么你,我的也和你一样,到底哪里错了。?
回复 支持 反对

使用道具 举报

4

主题

10

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-1-7
在线时间
6 小时
发表于 2021-2-19 20:10:06 | 显示全部楼层
huayue 发表于 2013-5-1 15:27
回复【5楼】正点原子:
---------------------------------
原子哥,我已经这个程序给弄出来了,谢谢指导· ...

大佬,你是怎么弄出来的啊,为什么我还是不行
回复 支持 反对

使用道具 举报

4

主题

10

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-1-7
在线时间
6 小时
发表于 2021-2-19 20:37:49 | 显示全部楼层
a3748622 发表于 2018-1-24 17:39
哈哈哈~
情不自禁笑出声

加了也不行啊
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-28 23:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表