打印
[复制链接]
2188|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
奋斗小杰|  楼主 | 2012-4-30 16:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PWM, gp, IO, GPIO, pi
#include<NUC1xx.h>
#include"DrvGPIO.h"
#include"DrvSYS.h"
#define jia DrvGPIO_GetBit(E_GPB,15)
#define jian DrvGPIO_GetBit(E_GPB,14)
uint32_t i;
int32_t data;
uint8_t flag;
void delay_ms( uint32_t data)
{
  uint32_t i,j;
  for(i=data;i>0;i--)
    for(j=2395;j>0;j--);
}
void rcc_init()
{
DrvSYS_UnlockProtectedReg();
SYSCLK->PWRCON.XTL12M_EN = 1;
delay_ms(500);
DrvSYS_LockProtectedReg();
}
void GPIO_init()
{
  
   DrvGPIO_Open(E_GPB,14,E_IO_INPUT);
DrvGPIO_Open(E_GPB,15,E_IO_INPUT);
DrvGPIO_Open(E_GPA, 2, E_IO_OUTPUT);    //  设置GPA2端口为输出模式
DrvGPIO_Open(E_GPA, 3, E_IO_OUTPUT);    //设置GPA3端口为输出模式
DrvGPIO_Open(E_GPA, 4, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA, 5, E_IO_OUTPUT);
}
int keyscan()
{

if(!jia)
  {
  delay_ms(20);
    if(!jia) flag=1;
    if(flag==1)
   {
     data++;
  flag=1;
  }
      
  }
else if(!jian)
{
   delay_ms(20);
   if(!jian) flag=1;
    if(flag==1)
{
     data--;
  flag=0;
  }
  }
return data;
}
void PWM0_Init()
{
/*GPA12端口初始化为PWM输出端*/
SYS->GPAMFP.PWM0_AD13 = 1;
/*PWM0时钟使能*/
SYSCLK->APBCLK.PWM01_EN = 1;
/*时钟源选择为外部时钟*/
SYSCLK->CLKSEL1.PWM01_S = 3;
/*PWM0时钟选择寄存器设置*/
PWMA->CSR.CSR0 = 3;   //进行16分频

/*PWMA预分频寄存器设置*/
PWMA->PPR.CP01 = 1;

/*设置PWM0为自动重装模式*/
PWMA->PCR.CH0MOD = 1;
/*设置PWM输出波形的占空比,占空比=(CNR+1)/(CMR+1)*/
PWMA->CNR0 = 1000;
PWMA->CMR0 = 1000;
/*输出反转设置为不反转*/
PWMA->PCR.CH0INV = 0;
/*PWM定时器0使能*/
PWMA->PCR.CH0EN = 1;

/*通道0输出使能*/  
  PWMA->POE.PWM0 = 1;  
}
int  main(void)
{
rcc_init();
DrvGPIO_ClrBit(E_GPA,2);
PWM0_Init();
GPIO_init();
data=5;
while(1)
{

   PWMA->CMR0 =keyscan();      
}
}

pwm.zip

1.05 MB

相关帖子

沙发
zzm19900| | 2014-7-30 15:44 | 只看该作者
感谢分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:不怕做不到,就怕你敢不敢去做

0

主题

24

帖子

0

粉丝