pwmusic.c

来自「周立功magic2200实验箱linux增补例子。包括(GPIO zlg7290」· C语言 代码 · 共 73 行

C
73
字号
#include "config.h"#include "music.h"

/* žèÇúÇúÆ× £­ ºç²ÊÃÃÃÃ*/
const uint32 HCMM[] =
{
	_LA, _SO, _MI, _LA, _SO, _MI,
	_LA, _LA, _SO, _LA,
	_LA, _SO, _MI, _LA, _SO, _MI,
	_RE, _RE, _DO, _RE,
	_MI, _MI, _SO, _LA, _DO1, _LA, _SO,
	_MI, _MI, _SO, _DO,
	_MI, _MI, _MI, _MI, _MI,
	_1LA,_1LA,_1SO,_1LA,
};

/* žèÇúœÚÅÄ */
const uint32 HCMM_L[] =
{
	_4, _8, _8, _4, _8, _8,
	_8, _4, _8, _2,
	_4, _8, _8, _4, _8, _8,
	_8, _4, _8, _2,
	_4, _8, _8, _8, _8, _8, _8,
	_8, _4, _8, _2,
	_4, _4, _4, _8, _8,
	_8, _4, _8, _2,
};


/*
********************************************************************************************************
** º¯ÊýÃû³Æ: Delay
** ¹ŠÄÜÃèÊö: ÈíŒþÑÓʱº¯Êý
*******************************************************************************************************
*/
void Delay(uint8 dly)
{
    uint32 i;
    
    for(; dly > 0; dly--)
        for(i = 0; i < 0x7FFF; i++);
}int main(){    int fd;    uint32 i;        fd = open("/dev/PWM", O_RDONLY);    if(fd == -1)    {        printf("\nCan't open PWM!\n");        return -1;    }    printf("Test PWM2(P0.7) output.\n");    for(i=0; i<40; i++)    {        ioctl(fd, PWM_SET_CYC, Fpclk / HCMM[i]);        ioctl(fd, PWM_2_SET_DUTY, Fpclk / HCMM[i]/2);        ioctl(fd, PWM_2_ENABLE);        Delay(HCMM_L[i]);    }     close(fd);        return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?