注册 登录
查看: 351|回复: 4

GPIO口如何配置成PWM输出

[复制链接]
发表于 2014-12-5 20:50:08 | 显示全部楼层 |阅读模式
请问一下,GPIO口如何配置成PWM输出???是不是直接初始化gpio口就可以啊  我自己用野火的库写了一条舵机的程序,但是舵机不能按照程序执行,不知道哪里错了?



#include "common.h"
#include "include.h"


#define Mid_Duty 500      //舵机打到中间的占空比
#define Half_Right 1000   //             右偏一半占空比
#define Right 2000        //              右偏到底
#define Half_Left 100
#define Left 0


void PWM_init()
{
  gpio_init(PTC2,GPO,1);         

  FTM_PWM_init(FTM0,FTM_CH0,50,60);      //初始化FTM0 通道0 舵机频率50 占空比60

}

void Direciton_MOTOR()
{
  FTM_PWM_Duty(FTM0,FTM_CH0,Mid_Duty);  //舵机打到中间位置
  DELAY_MS(100);

  FTM_PWM_Duty(FTM0,FTM_CH0,Half_Right);  
  DELAY_MS(100);

  FTM_PWM_Duty(FTM2,FTM_CH0,Right);
  DELAY_MS(100);

  FTM_PWM_Duty(FTM0,FTM_CH0,Mid_Duty);
  DELAY_MS(100);

  FTM_PWM_Duty(FTM0,FTM_CH0,Half_Left);
  DELAY_MS(100);

  FTM_PWM_Duty(FTM0,FTM_CH0,Left);
  DELAY_MS(100);

  FTM_PWM_Duty(FTM0,FTM_CH0,Mid_Duty);
  DELAY_MS(100);

}

void main()
{
  uint32 i;
  PWM_init();
  Direciton_MOTOR();
  while(1)
  {

    for(i=10;i>1;i--)
    {
      FTM_PWM_Duty(FTM0,FTM_CH0,i*10);
      DELAY_MS(400);

    }

  }

}



回复

使用道具 举报

发表于 2014-12-5 20:53:52 | 显示全部楼层
IO口就是IO口。
PWM是由FTM模块配置输出的,不是复用到GPIO。

你示波器看看PWM输出是否正常。
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

发表于 2014-12-6 13:34:57 | 显示全部楼层
虽然不知道错在哪里,但总觉得有问题
回复 支持 反对

使用道具 举报

发表于 2014-12-6 19:25:35 | 显示全部楼层
小辉辉shine 发表于 2014-12-5 20:50
请问一下,GPIO口如何配置成PWM输出???是不是直接初始化gpio口就可以啊  我自己用野火的库写了一条舵机 ...

file:///C:/Users/Administrator.WIN7U-20141130U/AppData/Roaming/Tencent/Users/1971515968/QQ/WinTemp/RichOle/(QZ4O(8XSD2%60T%7B(SCPD7EHT.png FTM2应该改成FTM0.
回复 支持 反对

使用道具 举报

发表于 2014-12-6 19:36:54 | 显示全部楼层
FTM_PWM_Duty(FTM2,FTM_CH0,Right);
  DELAY_MS(100);

回复 支持 反对

使用道具 举报

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

本版积分规则

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