📄 main.c
字号:
//===============================================================
//
// The information contained herein is the exclusive property of
// Sunplus Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
//
// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.
// ALL RIGHTS RESERVED
//
// The entire notice above must be reproduced on all authorized copies.
//
//==============================================================
//============================================================
// 工程名称: Timer.spj
// 功能描述: 通过TimerA定时,使发光二极管以0.6秒为周期闪烁,即每0.3秒点亮或熄灭一次。
// 参考外围接线:IOA0接发光二极管
// 文件来源: 《61板傻瓜书》第八章
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.0(or later)
//
// 涉及的库: (a) C-Lib: (CMacro.lib);
//
//
// 组成文件:
// main.c
//
// 日期: 2005-3-13
//===========================================================
#define P_TimerA_Data (volatile unsigned int *)0x700A //定义P_TimerA_Data指针,使其指向0x7000的地址单元
#define P_TimerA_Ctrl (volatile unsigned int *)0x700B //定义P_TimerA_Ctrl指针,使其指向0x7000的地址单元
#define P_IOA_Data (volatile unsigned int *)0x7000 //定义P_IOA_Data指针,使其指向0x7000的地址单元
#define P_IOA_Dir (volatile unsigned int *)0x7002 //定义P_IOA_Dir指针,使其指向0x7000的地址单元
#define P_IOA_Attrib (volatile unsigned int *)0x7003 //定义P_IOA_Attrib指针,使其指向0x7000的地址单元
#define P_Watchdog_Clear (volatile unsigned int *)0x7012 //定义P_Watchdog_Clear指针,使其指向0x7000的地址单元
main()
{
int LED_Flag=0; //LED灯亮灭标志
*P_IOA_Dir = 0x0001; //设置IOA0为同相输出
*P_IOA_Attrib = 0x0001;
*P_IOA_Data = 0x0000; //LED初始状态为熄灭
*P_TimerA_Ctrl = 0x0032; //计数频率32768Hz
*P_TimerA_Data = 0; //计数器初值设为0
while(1)
{
if(*P_TimerA_Data>=9830) //计数达到9830
{
*P_TimerA_Data = 0; //计数清 0
if(LED_Flag == 0) //如果LED的状态是熄灭的
{
*P_IOA_Data = 0x0001; //点亮LED
LED_Flag = 1; //改变状态标志
}
else //如果LED的状态是点亮的
{
*P_IOA_Data = 0x0000; //熄灭LED
LED_Flag = 0; //改变状态标志
}
}
*P_Watchdog_Clear = 0x0001; //清看门狗
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -