/*---------------------------------------------------------------------------------------------------------*/
/* */
/* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved. */
/* */
/*---------------------------------------------------------------------------------------------------------*/
//***********************************************************************************************************
// Website: http://www.nuvoton.com
// E-Mail : MicroC-8bit@nuvoton.com
// Date : Jan/21/2019
//***********************************************************************************************************
//***********************************************************************************************************
// File Function: ML51 GPIO toggle demo code
//***********************************************************************************************************
#include "ML51.H"
#include "math.h"
//----------------------------------------------------------------------------------------------//
void main (void)
{
int i=0;
unsigned int j=0;
const unsigned char cie[256] = {
0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
3, 4, 4, 4, 4, 4, 4, 5, 5, 5,
5, 5, 6, 6, 6, 6, 6, 7, 7, 7,
7, 8, 8, 8, 8, 9, 9, 9, 10, 10,
10, 10, 11, 11, 11, 12, 12, 12, 13, 13,
13, 14, 14, 15, 15, 15, 16, 16, 17, 17,
17, 18, 18, 19, 19, 20, 20, 21, 21, 22,
22, 23, 23, 24, 24, 25, 25, 26, 26, 27,
28, 28, 29, 29, 30, 31, 31, 32, 32, 33,
34, 34, 35, 36, 37, 37, 38, 39, 39, 40,
41, 42, 43, 43, 44, 45, 46, 47, 47, 48,
49, 50, 51, 52, 53, 54, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
68, 70, 71, 72, 73, 74, 75, 76, 77, 79,
80, 81, 82, 83, 85, 86, 87, 88, 90, 91,
92, 94, 95, 96, 98, 99, 100, 102, 103, 105,
106, 108, 109, 110, 112, 113, 115, 116, 118, 120,
121, 123, 124, 126, 128, 129, 131, 132, 134, 136,
138, 139, 141, 143, 145, 146, 148, 150, 152, 154,
155, 157, 159, 161, 163, 165, 167, 169, 171, 173,
175, 177, 179, 181, 183, 185, 187, 189, 191, 193,
196, 198, 200, 202, 204, 207, 209, 211, 214, 216,
218, 220, 223, 225, 228, 230, 232, 235, 237, 240,
242, 245, 247, 250, 252, 255,
};
//PWM时钟源为系统时钟FSYS
PWM0_ClockSource(PWM_FSYS,128);
MFP_P03_PWM0_CH2;
P03_PUSHPULL_MODE;
PWM0_ConfigOutputChannel(2,Independent,EdgeAligned,0x6FF,100);
PWM0_RUN();
while(1)
{
for(i=0;i<=255;i++)
{
Timer3_Delay(24000000,4,1,10000);
set_PWM0CON0_LOAD;
// PWM0_ConfigOutputChannel(2,Independent,EdgeAligned,0x6FF,i);
SFRS = 0x01;
//设置周期
PWM0PH = 0;
PWM0PL = 255;
//设置 高电平,高电平除以周期就是占空比
PWM0C2H=0;
PWM0C2L=cie[i];
}
for(i=255;i>=0;i--)
{
Timer3_Delay(24000000,4,1,10000);
set_PWM0CON0_LOAD;
// PWM0_ConfigOutputChannel(2,Independent,EdgeAligned,0x6FF,i);
SFRS = 0x01;
PWM0PH = 0;
PWM0PL = 255;
PWM0C2H=0;
PWM0C2L=cie[i];
}
}
}