프로젝트 자료실

PWM0

작성자 임베디드코리아 작성일16-08-04 12:07 조회3,311회 댓글0건

첨부파일

#include "lm3s9b92.h"

#define PWM0_0_CTL_R  (*((volatile unsigned long *)0x40028000))
#define PWM0_0_GENA_R  (*((volatile unsigned long *)0x40028060))
#define PWM0_0_LOAD_R  (*((volatile unsigned long *)0x40028050))
#define PWM0_0_CMPA_R  (*((volatile unsigned long *)0x40028058))
#define PWM0_ENABLE_R  (*((volatile unsigned long *)0x40028008))

int main()
{
 
    unsigned long ulValue;
    unsigned long ulLoop;
   
    ulValue = SYSCTL_RCGC0_R & ~(0x00100000);
    SYSCTL_RCGC0_R = ulValue | 0x00100000;
   
    __asm(" nop ");
    __asm(" nop ");
    __asm(" nop ");
   
    ulValue = SYSCTL_RCGC2_R & ~(0x20);
    SYSCTL_RCGC2_R = ulValue | 0x20;
   
    __asm(" nop ");
    __asm(" nop ");
    __asm(" nop ");
   
    ulValue = GPIO_PORTF_AFSEL_R & ~(0x01);
    GPIO_PORTF_AFSEL_R = ulValue | 0x01;
   
    ulValue = GPIO_PORTF_PCTL_R & ~(0x0F);
    GPIO_PORTF_PCTL_R = ulValue | 0x03;
   
    ulValue = GPIO_PORTF_DEN_R & ~(0x01);
    GPIO_PORTF_DEN_R = ulValue | 0x01;
   
    ulValue = SYSCTL_RCC_R & ~(0x001E0000);
    SYSCTL_RCC_R = ulValue | 0x00000000;
   
    ulValue = PWM0_0_CTL_R & ~(0x7FFFF);
    PWM0_0_CTL_R = ulValue | 0;
   
    ulValue = PWM0_0_GENA_R & ~(0x008C);
    PWM0_0_GENA_R = ulValue | 0x008C;
   
    ulValue = PWM0_0_LOAD_R & ~(0xFFFF);
    PWM0_0_LOAD_R = ulValue | 0x0FFF;
   
    ulValue = PWM0_0_CMPA_R & ~(0xFFFF);
    PWM0_0_CMPA_R = ulValue | 0x07FF;
   
    ulValue = PWM0_ENABLE_R & ~(0x01);
    PWM0_ENABLE_R = ulValue | 0x01;
   
    while(1)
    {   
      ulValue = PWM0_0_CTL_R & ~(0x01);
      PWM0_0_CTL_R = ulValue | 0x01;
     
      for(ulLoop = 0; ulLoop < 1000000; ulLoop++);
      ulValue = PWM0_0_CTL_R & ~(0x01);
     
      PWM0_0_CTL_R = ulValue | 0x00;
      for(ulLoop = 0; ulLoop < 1000000; ulLoop++);
     
    } //end while
    //return 0;
} //end main