0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机实用框架-2

汽车电子技术 来源:玩转单片机 作者:Julian 2023-02-10 14:30 次阅读

碰到需要长时间需要关闭所有中断以保证通信协议不被打断的项目,这么保证参考时间尽可能减少误差呢?不要小看这一问题,您要是有更好的想法或思路记得在后台给我留言哦

#include 


uinsigned char time_num = 0;       //时间缓存
uinsigned char time_100us = 0;     //时间标准


void initT0()
{
    TMOD |= 0x01;   //使用方式1,16位定时器
    TH0 = 0x0FF;    //给TH1和TL1初初值
    TL0 = 0xCE;     //延时时间为50us
    EA = 1;         //总中断打开
    ET0 = 1;        //定时器中断打开
    TR0 = 1;        //定时器开关打开
}


void Do(void)
{
    ......
}


void Protocol(void)
{
    static unsigned int ii;
    for( ii = 0; ii < 1000; ii++)  //约50MS
    {
        Do();        //假设执行一次50us
        time_num++;
        if( time_num>= 2)
        {
            time_num = 0; 
            time_100us++;
        }
        if( time_100us )
        {
            time_100us = 0;
            //==========参考时间任务========
            ......
            //-----------------------------
        }
    }
}


void Delay_50us(void)
{
    ......
}


void main(void)
{
    //初始化定时器
    initT0();
    initT1();
    while(1)
    {
        EA = 0;
        Protocol();
        EA = 1;
        Delay_50us();  //协议需要
        //======任务==========
        ......
        //--------------------
    }
 }
//===============================
//t0定时器中断服务程序
//每隔50us进入一次该程序
//===============================
void t0Intr() interrupt 1
{
    TH0 = 0x0FF;    //给TH1和TL1初初值
    TL0 = 0xCE;     //延时时间为50us

     time_num++;
}
//--------------------------------

有同学就会问这么麻烦,误差还挺大的,为啥不用DMA呢,而我想说这只是提供一种思路,毕竟不是什么单片机都有DMA可以使用,有时候做项目的时候都会受单片机硬件的限制(主要的目的就是把控成本),很多时候都会想办法从软件层面上提出解决方案(软件改动方便,付出的成本低)。

收录于合集 **#**Frame

7

上一篇单片机实用框架(一)下一篇框架|软件定时时间片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6037

    文章

    44558

    浏览量

    635259
  • 软件
    +关注

    关注

    69

    文章

    4943

    浏览量

    87485
  • dma
    dma
    +关注

    关注

    3

    文章

    561

    浏览量

    100586
收藏 人收藏

    评论

    相关推荐

    AVR单片机C语言程序框架(单片机最简操作系统)及详解

    本帖最后由 lvhoujun 于 2014-2-28 00:37 编辑 这是本人以ATMEGA128为例编写的C语言程序框架,做简单的修改即适合AVR所有单片机。可以说是一个单片机
    发表于 02-12 20:27

    侃侃单片机裸奔的程序框架

    [url=]侃侃单片机裸奔的程序框架[/url]
    发表于 01-29 13:52

    单片机程序框架的相关资料分享

    单片机程序框架
    发表于 11-22 07:46

    CAFrame单片机程序框架分享

    CAFrame单片机程序框架简介程序运行优先级CAFrame配置通用事件应用FLowchart流程图简介CAFrame 单片机C语言程序开发框架可用于不同的
    发表于 11-24 07:18

    单片机应用技术选编2

    单片机应用技术选编(2) 目录 第一章 单片机系统综合应用技术1 1.1 析8098单片机特点及HSO编程技术21.2 8031单片机DMA
    发表于 03-21 22:25 320次下载
    <b class='flag-5'>单片机</b>应用技术选编<b class='flag-5'>2</b>

    PIC单片机程序结构框架

    为了快速掌握PIC单片机源程序的基本结构,这里给出一个典型的程序结构框架
    发表于 06-27 13:41 5574次阅读

    原创分享:自制轻量级单片机UI框架

    原创分享:自制轻量级单片机UI框架框架元素用户接口代码开源平时常看csdn,但是从来没有自己写过。正好这几天需要用单片机做一个简易的ui界面,于是自己写了一个轻量级的ui
    发表于 11-05 15:20 29次下载
    原创分享:自制轻量级<b class='flag-5'>单片机</b>UI<b class='flag-5'>框架</b>

    单片机程序框架

    单片机程序框架
    发表于 11-13 14:21 16次下载
    <b class='flag-5'>单片机</b>程序<b class='flag-5'>框架</b>

    单片机裸机程序框架

    单片机裸机程序框架##单片机裸机开发时,要处理多个任务程序框架:轮询系统int main(void){ init_something(); while(1) { do_someth
    发表于 11-13 19:21 12次下载
    <b class='flag-5'>单片机</b>裸机程序<b class='flag-5'>框架</b>

    单片机学习笔记————51单片机实现判断数据尾来接收一串数据的串口通用程序框架

    单片机学习笔记————51单片机实现判断数据尾来接收一串数据的串口通用程序框架
    发表于 11-23 17:06 8次下载
    <b class='flag-5'>单片机</b>学习笔记————51<b class='flag-5'>单片机</b>实现判断数据尾来接收一串数据的串口通用程序<b class='flag-5'>框架</b>

    单片机学习笔记————51单片机实现在串口接收中断里即时解析数据头的特殊程序框架

    单片机学习笔记————51单片机实现在串口接收中断里即时解析数据头的特殊程序框架
    发表于 11-23 17:06 16次下载
    <b class='flag-5'>单片机</b>学习笔记————51<b class='flag-5'>单片机</b>实现在串口接收中断里即时解析数据头的特殊程序<b class='flag-5'>框架</b>

    单片机学习笔记————51单片机(利用return)实现判断数据头来接收一串数据的串口通用程序框架

    单片机学习笔记————51单片机(利用return)实现判断数据头来接收一串数据的串口通用程序框架
    发表于 11-23 17:06 17次下载
    <b class='flag-5'>单片机</b>学习笔记————51<b class='flag-5'>单片机</b>(利用return)实现判断数据头来接收一串数据的串口通用程序<b class='flag-5'>框架</b>

    浅谈单片机裸机系统程序框架

    浅谈单片机裸机系统程序框架
    发表于 11-23 17:51 12次下载
    浅谈<b class='flag-5'>单片机</b>裸机系统程序<b class='flag-5'>框架</b>

    单片机基础到程序框架

    单片机应用的核心技术是什么?是按键,数码管,流水灯,串口。是它们的程序框架。按键和数码管是 输入是人机界面,把它们的程序框架研究透了,以后做彩屏或者更花销的显示界面,程序框架也可以通
    发表于 09-07 14:45 9次下载

    单片机中使用的RTOS代码框架

    在这次开发中,也是遇到了很多的问题,主要的感想是关于代码的框架。在单片机开发中,特别是使用了RTOS的时候,一个良好的代码框架真的是相当的必要的。
    的头像 发表于 02-10 14:21 1137次阅读