/*-----------------------------------------
DSP菜鸟的第1个定时器模拟演示程序(未实战)
HotPower@126.com
2005.6.12 于西安大雁塔村队部
http://hotpower.21ic.org
-----------------------------------------*/
#include <cstdio> //C语言可以用stdio.h
#include <cstring>//C语言可以用string.h
#include "C5402DEF.h"//
volatile bool IOXF;
volatile unsigned int SystemRamTest;
extern "C" interrupt void Timer0Isr();
/*
* ======== main ========
*/
class SystemObj {//系统类
public:
SystemObj(void);
public:
inline void SystemInit(void);
private:
unsigned int SystemRamTest;
};
SystemObj::SystemObj(void)
{
volatile unsigned int start;
Disable();//关中断
for (start = 0; start < 10000; start ++);
SystemInit();
}
void SystemObj::SystemInit(void)
{
if (::SystemRamTest != 0x55aa) {
::SystemRamTest = 0x55aa;
}
if (SystemRamTest != 0x55aa) {
SystemRamTest = 0x55aa;
}
IOXF = 0;
}
SystemObj Sys;
int main(void)
{
unsigned int j = 1;
Sys.SystemInit();
SREG->ST1 |= (1 << CPL);
SREG->ST1 &= ~(1 << CPL);
SREG->ST1 |= (1 << XF);
SREG->ST1 &= ~(1 << XF);
SREG->ST1 |= (1 << XF);
SREG->ST1 &= ~(1 << XF);
SREG->ST1 |= (1 << INTM);//应该用Disable();//关中断!!!
SREG->ST1 &= ~(1 << INTM);//应该用Enable();//开中断!!!
TIMER0->TCR |= (1 << TSS);//关闭启动定时器0
SREG->IMR = 0x0000;
SREG->IFR = 0xffff;
Enable();//开中断
TI_BASE_SREG->IMR = 0x9876;
TI_BASE_SREG->IFR = 0x1234;
SREG->IMR = 0x4321;
SREG->IFR = 0xffff;
for(int i = 0; i < 8; i ++) {//以下做着玩
SREG->IMR |= j;
SREG->IFR &= ~j;
j <<= 1;
SREG->IMR = 0x4321;
SREG->IFR = 0xffff;
}
SREG->IMR = (1 << TINT0);//允许TINT0中断
TIMER0->PRD = 5000;
TIMER0->TCR &= ~(1 << TSS);//启动定时器0
while(1)
{
if (::IOXF) {
SREG->ST1 |= (1 << XF);
}
else {
SREG->ST1 &= ~(1 << XF);
}
}
}
interrupt void Timer0Isr() {
::IOXF = !::IOXF;//郁闷~~~中断中ST1被保护~~~
//SREG->ST1 |= (1 << XF);//被迫移入主程序中
// TIMER0->TCR |= (1 << TSS);//关闭启动定时器0
}
yxkfw
- 粉丝: 82
- 资源: 2万+
最新资源
- 旅游景点导游平台系统源代码.zip
- 美发门店管理系统项目源代码.zip
- 智能插座,个人学习整理,仅供参考
- 医院管理系统源代码.zip
- 西门子-大型堆垛机程序 真实运行案例 物流仓储 涵盖通信,算法,运动控制 实际项目程序 西门子S7-300+G120+ET200S 博途编程 采用用STL和SCL高级编程语言 无加密 仿
- 校园资源库系统源代码.zip
- 洗衣店管理系统项目源代码.zip
- 医院网站源代码.zip
- MPC5634 Bootloader
- 前后端分离的在线办公系统,项目采用 SpringBoot+Uniapp 开发,前端采用微信小程序展示.zip
- GitHub 搜索技巧与高级用法详解
- 威纶通触摸屏与三菱变频器modbus rtu通讯程序 触摸屏型号mt6103ip,变频器型号FR-D720(E700系列也可以用)
- HFSS创建SG模型的端口设置
- 微信小程序源码养老院管理系统(小程序)pf-毕业设计.zip
- 胶钉机程序 用国产三菱3U和威纶触摸屏编写 此程序已经实际设备上批量应用,程序成熟可靠,借鉴价值高,程序有注释
- 微机原理试卷及答案.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈