登录
首页 » c » 嵌入式单片机 利用无符号类型巧妙设计定时函数

嵌入式单片机 利用无符号类型巧妙设计定时函数

于 2022-03-23 发布 文件大小:2.17 kB
0 42
下载积分: 2 下载次数: 1

代码说明:

开启一个1ms定时器中断(此定时器可与其他模块共享),使用无符号数据类型循环计时,巧妙的按需求设计定时模块

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • Kruskal
    matlab数学建模 最小生成树算法 Kruskal算法(mathematical modeling matlab)
    2011-07-20 16:43:08下载
    积分:1
  • eyefinder
    定位眼神的程序,有mATLAbC++多种版本可供使用(Positioning the eyes of the program, mATLAb C++ multiple versions available)
    2012-07-16 14:39:03下载
    积分:1
  • 倍福CNC 界面
    倍福CNC 界面using System;using System.Windows.Forms;namespace TcApplication{ static class Program { [System.Runtime.InteropServices.DllImport("User32.dll")] static extern IntPtr SetForegroundWindow(IntPtr hWnd); [System.Runtime.InteropServices.DllImport("User32.dll")] static extern IntPtr ShowWindow(IntPtr hWnd, int nCmdShow); public static MainApp mainApp; static FormSplash formSplash; static bool exceptionSignaled; static Timer timerSplashWait; const int SW_RESTORE = 9; #region Main Entry /// /// The main entry point for the application. /// [STAThread] static void Main() { //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); Application.ThreadException = new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); if (CheckActiveProcess() == true) { Application.Exit(); return; } ShowSplashScreen(); // BasicConfigurator.Configure(); log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Application.StartupPath "\System\log.xml")); // Einschalten internes Debugging der LOG Komponenete // log4net.Util.LogLog.InternalDebugging = true; MainApp.log.Info("Application started."); // set the NumberGroupSeparator for all forms System.Globalization.CultureInfo newCultureInfo = new System.Globalization.CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.LCID); newCultureInfo.NumberFormat.NumberDecimalSeparator = "."; newCultureInfo.NumberFormat.NumberGroupSeparator = ","; newCultureInfo.TextInfo.ListSeparator = ";"; Application.CurrentCulture = newCultureInfo; // load the settings MainApp.appSettings = new Settings(); MainApp.appSettings.FileName = Application.StartupPath "\System\AppSet.xml"; MainApp.appSettings.ReadSettings(); mainApp = new MainApp(); Application.Run(mainApp); MainApp.log.Info("Application stopped."); MainApp.appSettings.WriteSettings(); } #endregion #region Public functions public static void ShowSplashScreen() { String[] arguments = Environment.GetCommandLineArgs(); for (int i = 1; i < arguments.Length; i ) { if (arguments[i].StartsWith("/NoSplash")) return; } if (formSplash == null) formSplash = new FormSplash(); if (timerSplashWait == null) { timerSplashWait = new Timer(); timerSplashWait.Tick = new EventHandler(timerSplashWait_Tick); } formSplash.Parameters("HMI " Application.ProductVersion, 325, 296, new System.Drawing.Font("Arial", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))), System.Drawing.Color.FromArgb(0, 104, 157), System.Drawing.Color.Black); formSplash.Show(); Application.DoEvents(); } static void timerSplashWait_Tick(object sender, EventArgs e) { timerSplashWait.Enabled = false; CloseSplashScreen(); } public static void CloseSplashScreen(int interval) { if (interval < 1) interval = 1; if (timerSplashWait != null) { timerSplashWait.Interval = interval; timerSplashWait.Enabled = true; } } public static void CloseSplashScreen() { if (formSplash != null) { formSplash.Close(); formSplash.Dispose(); formSplash = null; } } public static void BringSplashToFront() { if (formSplash != null) formSplash.BringToFront(); } public static void SplashTopMost(bool level) { if (formSplash != null) formSplash.TopMost = level; } #endregion #region Private functions private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { if (!exceptionSignaled) { exceptionSignaled = true; MainApp.log.Fatal(sender, e.Exception); Beckhoff.App.ExceptionDialog exc = new Beckhoff.App.ExceptionDialog(); exc.SetText(Application.ProductName " has encountered a problem." "For further information take a look to the application event log!", e.Exception); exc.ShowDialog(); exceptionSignaled = !exc.ExceptionSignaledChecked; exc.Dispose(); exc = null; } } private static bool CheckActiveProcess() { try { int c = System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName).Length; if (c > 0) { bool bFoundSame = false; foreach (System.Diagnostics.Process pr in System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName)) { if (pr.MainModule.FileName == Application.ExecutablePath && pr.Id != System.Diagnostics.Process.GetCurrentProcess().Id) { SetForegroundWindow(pr.MainWindowHandle); // 9 = SW_RESTORE (winuser.h) ShowWindow(pr.MainWindowHandle, SW_RESTORE); bFoundSame = true; } } return bFoundSame; } else { return false; } } catch //(System.Security.SecurityException ex) { return false; } } #endregion }}
    2020-12-05下载
    积分:1
  • bearningbasic
    c语言之函数篇,从基础学起,让你彻底精通c语言的应用,(C language function, from the basic learning, so that you are thoroughly proficient in the application of the c language,)
    2018-08-06 11:07:38下载
    积分:1
  • C
    说明:  c语言编写规范,主要介绍编程中如何写出实用性以及易于阅读的代码,方便代码的维护和升级。(c language specification describes how to write programming code for practicality and easy to read, easy to code maintenance and upgrades.)
    2013-10-16 11:16:26下载
    积分:1
  • fftForDSP2812
    用C语言实现的傅里叶计算,硬件平台为TMS320F2812(Using C language implementation of the Fourier calculations, the hardware platform for TMS320F2812)
    2013-07-10 23:57:27下载
    积分:1
  • DesktopLighter
    说明:  C#实现windows屏幕亮度调节,简单易用,github开源.(C# Windows screen brightness adjustment, easy to use,github open source)
    2020-06-20 16:40:02下载
    积分:1
  • 光敏电阻
    光敏电阻传感器模块亮度光电光线检测传感器
    2022-05-15 05:33:26下载
    积分:1
  • 基于zigbee和ARM的智能家居环境监测系统全部资料
    开发系统:Windows10 64位 Ubuntu 14.04 32 位 软件版本:Qt 4.8.6 IAR .0 Altium Designer 13.0 工具链:arm-linux-gcc 4.4.3 系统实现的主要功能如下所示:  1. STM32下位机  (1) 应用了小型的嵌入式操作系统μC/OS-II;  (2) 各个传感器的数据以多任务的形式获取,实时性很好;  (3) 数据调试使用STM32串口1;  (4) 数据的发送使用STM32的串口3,并以任务的形式进行打包发送,具体数据帧格式请看代码;  (5) STM32接收数据采用终端方式,当有数据到来时会触发终端,进入数据接收解析过程,在此过程中会对数据的帧头 等信息进行判断;  2. Zigbee无线通信 Zigbee部分其实没有太多功能,一句话概括就是一个串口透传功能!本来当初计划直接使用zigbee驱动各个传感器,然后组网后发送给协调器,考虑到既然学习了STM32,就利用上吧!其实这里完全可以直接使用zigbee,不使用STM32的。 两套方案的编码工作其实早就已经完成了,思考了好久才决定采用STM32 zigbee方式,这样下来可以学到很多,尤其是μC/OS-II系统的移植,还是很深奥的,很值的以后继续深入的去学习。  3. ARM上位机 ARM上位机采用友善支臂的SMART210开发板,自己后续移植了Qt4.8。上位机主要实现了一下几个功能:  (1) 模拟室内三个场景:卧室、客厅、厨房  (2) 分别对这个三个场景下的温度,湿度以及烟雾浓度进行一个测量并显示;  (3) 使用LED灯模拟室内照明灯;  (4) 使用人体红外传感器进行检测是否有人(这个传感器有点不靠谱,最后取消了)  (5) 当初计划添加视频监控,到了后期发现工作量太大,没有时间做了,所以就没有完成,这点以后会添加上去的。 (6) 代码中使用了“liudianwu”分享的一些api,由于时间紧,所以直接拿来用了,在此感谢! (7) 代码重复率有点高,好几处的button样式是相同的,完全可以提取出来,在此请大家海涵。
    2019-04-03下载
    积分:1
  • 一款用directUI开发的斗地主界面
    用direct UI 开发的仿斗地主界面,比较实用的一款代码,下载后,实测用vs2010可以编译成功,并显示正常功能,感觉有点啰嗦了~~~~
    2023-03-04 02:25:03下载
    积分:1
  • 696518资源总数
  • 104226会员总数
  • 29今日下载