赛元第一个例程,GPIO输出小练
1.点亮一个呼吸灯,用作系统运行指示
2.采用阻塞延时#include "SC95F861x_C.h"
/*---------------------------------------------------------------------
// 宏定义
----------------------------------------------------------------------*/
#define LED P40
/*---------------------------------------------------------------------
// 函数申明
----------------------------------------------------------------------*/
void ClockInit(void);
void GpioInit(void);
void delay_ms(unsigned int ms);
/*---------------------------------------------------------------------
// 函数: void main(void)
// 描述: 主函数
// 参数: non
// 返回: none.
// 版本: VER1.0
// 日期:
// 备注:
----------------------------------------------------------------------*/
void main(void)
{
ClockInit();
GpioInit();
while(1)
{
LED = 1;
delay_ms(1000);
LED = 0;
delay_ms(1000);
}
}
/*---------------------------------------------------------------------
// 函数: void ClockInit(void)
// 描述: 时钟初始化
// 参数: non
// 返回: none.
// 版本: VER1.0
// 日期:
// 备注:
----------------------------------------------------------------------*/
void ClockInit(void)
{
//上电默认使用HRC32Mhz作为Fhrc,可以用编程软件进行配置分频输出为Fsys,也可以用程序进行配置,这里用编程软件配置,方便
}
/*---------------------------------------------------------------------
// 函数: void ClockInit(void)
// 描述: 时钟初始化
// 参数: non
// 返回: none.
// 版本: VER1.0
// 日期:
// 备注:
----------------------------------------------------------------------*/
void GpioInit(void)
{
//芯片为SC95F8617,则不用调用宏定义。
P4CON |= 0x01; //设置P40为强推挽模式
P4PH |= 0x01; //P40上拉电阻打开
}
//========================================================================
// 函数: void delay_ms(unsigned int ms ms)
// 描述: 延时函数。主频32M,使用STC软件生成
// 参数: ms,要延时的ms数, 这里只支持1~65536ms.
// 返回: none.
// 版本: VER1.0
// 日期:
// 备注:
//========================================================================
void delay_ms(unsigned int ms)//@32MHz
{
unsigned char i,j;
unsigned int N;
for(N = 0; N < ms;N++)
{
i = 32;
j = 29;
do
{
while (--j);
} while (--i);
}
}
|