l利用DSP28335进行简单的定时器秒表设计,可利用按键实现正向计时、倒计时、暂停、继续以及清零的功能,通过简单的配置调试能利用4位数码管进行显示,且通过LED等进行反馈。调试的过程中由于中断函数放置的位置不同导致实现的功能不同,将中断放于主函数之后所有的问题迎刃而解,但是在编写调试之初中断函数在定时器初始化函数.c文件中,按键选择功能无法正常实现。对于我出现的问题希望有大佬帮忙解答一下。

主函数部分:

void main()
{char key;//系统初始化InitSysCtrl();InitPieCtrl();IER=0x0000;IFR=0x0000;InitPieVectTable();//外设初始化LED_Init();SMG_Init();BEEP_Init();KEY_Init();//设置定时器0的中断入口地址为中断向量表的INT0EALLOW;PieVectTable.TINT0=&TIM0_IRQn;EDIS;while(1){LED3_TOGGLE;key=KEY_Scan(0);switch(key){case 1://KEY1_PRESS://开始计时mod=0;TIM0_Init(150,1000);break;case 3://KEY3_PRESS://暂停计时mod=1;TIM0_Init(150,1000);break;case 5://KEY5_PRESS://计时清零mod=2;ms=0;sec=0;min=0;TIM0_Init(150,1000);break;case 7://KEY7_PRESS://正计时mod=3;if(flag==1){ms=0;sec=0;min=0;}TIM0_Init(150,1000);break;case 9://KEY9_PRESS://倒计时mod=4;TIM0_Init(150,1000);break;}LED4_TOGGLE;}
}

中断函数:

interrupt void TIM0_IRQn(void)
{if(mod==0&&flag==0)ms++;else if(mod==0&&flag==1&ms>0)ms--;else if(mod==3){ms++;flag=0;}else if (mod==4)//倒计时设定时间为65534ms,由于系统为16为所以unsigned long int 取值范围为0~2^32-1{if(flag==0)ms=6000000;//倒计时100分钟ms--;flag=1;}if(flag==0){sec=ms/1000;min+=sec/60;if(sec==60)//防止超出数据范围,对参数进行初始化{sec=0;ms=0;}}if(flag==1){sec=ms/1000%60;min=ms/1000/60;}EALLOW;PieCtrlRegs.PIEACK.bit.ACK1=1;EDIS;SMG_DisplayInt(min,sec);
}

显示函数部分:

void SMG_DisplayInt(Uint16 min,Uint16 sec)
{unsigned char S[4];unsigned char i=0;S[0]=smgduan[min/10];S[1]=smgduan[min%10]|0x80;S[2]=smgduan[sec/10];S[3]=smgduan[sec%10];for(i=0;i<4;i++){HC164SendData(S[i]);switch(i){case 0:SEG1_SETH;SEG2_SETL;SEG3_SETL;SEG4_SETL;break;case 1:SEG1_SETL;SEG2_SETH;SEG3_SETL;SEG4_SETL;break;case 2:SEG1_SETL;SEG2_SETL;SEG3_SETH;SEG4_SETL;break;case 3:SEG1_SETL;SEG2_SETL;SEG3_SETL;SEG4_SETH;break;}DELAY_US(100);}}//74HC164发送数据函数
void HC164SendData(unsigned char dat)
{char i=0;for(;i<8;i++){SPICLKA_SETL;if(dat&0x80)SPISIMOA_SETH;elseSPISIMOA_SETL;SPICLKA_SETH;dat<<=1;}
}

程序中关于数据类型的取值范围在文末附上链接,在此向其作者表示感谢。

https://blog.csdn.net/baidu_37973494/article/details/100125363

DSP28335定时器简易秒表设计相关推荐

  1. Qt--简易秒表设计

    Qt–简易秒表设计(QTimer,Qtime,TableWiget应用) 效果图 使用QTimer和QTime两个类 思路: 1.计时功能: ​ 利用QTimer中的定时器中断信号,设置每10毫秒触发 ...

  2. at89s51数码管秒表c语言程序,基于AT89C51单片机的一个2位的LED数码显示作为“秒表”设计【基于单片机系统的00-99s的定时器】...

    基于AT89C51单片机的一个2位的LED数码显示作为"秒表"设计[基于单片机系统的00-99s的定时器] 工程技术学院 课程设计 题 目:用单片机AT89C51设计一个2位的LE ...

  3. 秒表设计实验报告C语言,电子秒表设计实验报告

    <电子秒表设计实验报告>由会员分享,可在线阅读,更多相关<电子秒表设计实验报告(10页珍藏版)>请在人人文库网上搜索. 1.精选文档 -淮阴工学院数字电子技术课程实验期末考核2 ...

  4. 计算机电子电路原理图,简易电子琴设计电路图大全(八款模拟电路设计原理图详解) - 消费类电子电路图...

    简易电子琴设计电路图(一) 电子琴稳定的+5V电源的电路如图所示. 电子琴电源电路 电路工作原理:集成块ICCA6722是该电源电路的核心元件.它能输出精确而稳定的+5V直流电压.从IC第1脚输人+9 ...

  5. 单片机编程简易计算机的设计,简易计算器设计

    <简易计算器设计>由会员分享,可在线阅读,更多相关<简易计算器设计(25页珍藏版)>请在人人文库网上搜索. 1.广东海洋大学寸金学院单片机课程设计论文题目: 简易计算器设计系 ...

  6. 51单片机 简易秒表计时器(100秒) 小数点后四位

    51单片机制作简易秒表,精确到小数点后四位(即0.0001s)的制作,使用到单片机定时器部分,数码管部分. 程序上分为: 1.延时函数 用来延时让数码管动态显示 2.定时器/计数器初始化函数 3.显示 ...

  7. 单片机c语言数字频率计的课程设计,基于单片机的简易数字频率计设计报告(最终版)最新版...

    <基于单片机的简易数字频率计设计报告.doc>由会员分享,可免费在线阅读全文,更多与<基于单片机的简易数字频率计设计报告(最终版)>相关文档资源请在帮帮文库(www.woc88 ...

  8. 基于STM32F103的简易示波器设计

    基于STM32F103的简易示波器设计(基于正点原子mini开发板) 摘要 本设计采用STM32F103微控制器,硬件为正点原子的MiniSTM32开发板,设计一个示波器,能够测量输入信号的频率.最大 ...

  9. 单片机 中断秒表 c语言程序,51单片机c语言的秒表设计.doc

    51单片机c语言的秒表设计.doc 课程设计报告 基于AT89C51单片机的秒表设计 院 系 电子信息工程学院 专 业 电子信息工程 1 姓 名 摘 要 本设计是设计一个单片机控制的多功能秒表系统. ...

  10. 基于8051单片机实现电子时钟+数字秒表设计

    电子时钟+数字秒表设计 概述 设计任务的基本要求 整体方案 电路设计原理 软件设计 元件清单 项目下载地址 概述 电子时钟是一种利用数字电路来显示秒.分.时的计时装置,与传统的机械钟相比,它具有走时准 ...

最新文章

  1. 应该知道关于Python的随机模型 以及使用范围例子洗牌 特别长 1米
  2. 【我看Hibernate】Hibernate 介绍及其简单应用
  3. EOS账户和钱包综合指南
  4. Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例
  5. OpenKruise v0.7.0发布:增加周期任务分发控制器
  6. 【.Net core】EFCore——Code First生成数据库与表
  7. 建议你一定要尝试的副业排名TOP1
  8. 局域网远控软件DameWareNT6500
  9. 【rocketMQ】1、搭建MQ服务器,生产一个订单与消费一个订单
  10. WebPack常用功能介绍
  11. python列表转为一个数字_关于python:将整数列表转换为一个数字?
  12. TCP/IP详解--拥塞控制 慢启动 快恢复 拥塞避免
  13. final swfplayer安卓10/11/12上都能播放flash播放器源码
  14. SolidWorks模型分享:皮带轮 免费模型下载
  15. 【初学者必知必会】【电子技术:数电 模电 单片机】【基础概念和小知识点】详解
  16. 可以测试英语发音的软件,检测英语发音的软件
  17. 小e和siri_华为手机语音助手“小E”功能大全,二十三种玩法你都会吗?
  18. 【论文阅读】GPT系列论文详解
  19. 假设检验、显著性水平α、P值、置信区间
  20. 自定义ListView实现任意View跑马灯效果

热门文章

  1. sql常用语句之DDL
  2. Java的二级动态菜单实现
  3. 火山视窗多窗口交互操作
  4. 人工智能?你需要了解的内容和AI学习路线
  5. Matlab程序转为C++代码
  6. GNS3 2.1.9版本的安装
  7. Telegram支持删除双方设备中的聊天记录
  8. Linux无线网卡芯片RTL8188EUS驱动安装
  9. 《Java语言程序设计》(基础篇原书第10版)第七章复习题答案
  10. 计算机网络安全中的破译定义,计算机网络安全