打印

写一下 最近的收获 感谢冷漠等。。。

[复制链接]
5137|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xlsbz|  楼主 | 2010-12-18 12:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TI, TE, ic, ST, timer
本帖最后由 xlsbz 于 2010-12-18 12:08 编辑

好久没上论坛   学单片机也将近2年  感觉冷漠等   

春阳高人 哈哈

牛人真多啊

最近发现  想我程序写的通用  还真得需要大量RAM啊

现在写个我刚弄的 定时器的用法  和大家分享一下

采用8位单片机

--------------------
//定义全局变量
uint16_t   systemTimerTick = 0;

//定时器中断程序
interrupt  Timer  funciton  中断序号n
{
         systemTimerTick++;
}


//得到systemTimerTick的值
uint16_t  Get_systemTimerTick(void)
{    //为什么搞这个函数,推荐看看二版主的申请版主贴 我的这个方法不知道帖子里有没有
      判断systemTimerTick这个值是否在中断程序中被改变,如果改变重新获得该值
      return  systemTimerTick;
}


//应用函数
void Function (uint16_t   定时时间)
{
           bit 是否第一次运行
           static  temp = 0;第一次运行获得的值
           static  temp_systemTimerTick

            /*这里该咋搞 自己想喽 嗨我也记不住了 写的详细了 万一写错了 就 不好了!!*/
              。。。。。。。。。。。。
            。。。。。这里是被省略的代码。。。。。。。。。。。。
            。 ??= Get_systemTimerTick。。。。。。。。。。。
            DIAOyongFunction()
           。。。。。。。。。。。。。
}



//被调用函数
void   DIAOyongFunction void
{
}



main
{     
       //初始化定时器 周期为1ms
      while (1){
              Function(300ms)
      }
}

相关帖子

沙发
xlsbz|  楼主 | 2010-12-18 12:11 | 只看该作者
这个牛贴 耿丽的 贴 赶快加库啊

使用特权

评论回复
板凳
liang7143| | 2010-12-18 12:12 | 只看该作者
没有看懂:L

使用特权

评论回复
地板
tianm| | 2010-12-18 13:24 | 只看该作者
楼主没裤子;P

使用特权

评论回复
5
strang| | 2010-12-19 10:41 | 只看该作者
楼主裸奔吧、、、

使用特权

评论回复
6
zhiyonghe| | 2010-12-19 11:22 | 只看该作者
这个要加酷???:o

使用特权

评论回复
7
w34880593| | 2010-12-19 11:24 | 只看该作者
呵呵!路过顶上

使用特权

评论回复
8
shiwilson| | 2010-12-19 22:34 | 只看该作者
还真是看不懂

使用特权

评论回复
9
ejack| | 2010-12-20 08:14 | 只看该作者
DIAOyongFunction

这个函数名把俺雷得外焦里嫩……

使用特权

评论回复
10
心静自然凉| | 2010-12-20 08:22 | 只看该作者
9# ejack
中外结合...

使用特权

评论回复
11
huangqi412| | 2010-12-20 08:57 | 只看该作者

使用特权

评论回复
12
yewuyi| | 2010-12-20 09:07 | 只看该作者
又是一个误区:

最近发现  想我程序写的通用  还真得需要大量RAM啊

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xlsbz + 1
13
dandywang| | 2010-12-20 14:56 | 只看该作者
LZ想干啥

使用特权

评论回复
14
xlsbz|  楼主 | 2010-12-23 19:53 | 只看该作者
本帖最后由 xlsbz 于 2010-12-23 19:59 编辑

我以前总是在定时器中断里面弄标志位  

然后主循环里面 判断标志  我相信 很多人都这么弄过



=====================

但是如果我现在比如需要发送50帧东西 比如CAN帧

并且要求 这500帧的发送周期可以自由设置。怎么弄呢?

难道搞50个标志位么?

关键是这样搞 程序的通用性不好   得对定时器中断程序进行重新编程。

于是就用上面的方法了!

移植性很好。

可能大家早就会了 哈哈  

我只是刚刚才用上  有点高兴 就是了

-----------------------------------------------------------

特别感谢救火车的那个申请版主的帖子 ,否则这个问题 我还不知道需要多长时间才能发现

使用特权

评论回复
15
xlsbz|  楼主 | 2010-12-23 20:16 | 只看该作者
12# yewuyi

我说的有时候确实有点对啊  

我这片 就4K 片外ram  用起来比较紧张啊

使用特权

评论回复
16
xlsbz|  楼主 | 2010-12-23 20:34 | 只看该作者
嗨  把我在大四他们毕业旧书摊买的书上的例子 敲下来   
尽管例子说的对我目前没啥用  因为我目前对实时性  要求不是太高  对我有点**肋 弄不好还不稳定 不过   可以 瞧瞧
 
static     WORD  wSignals;

#define  SIGNAL_A     0x0001
#define  SIGNAL_B     0x0002
#define  SIGNAL_C     0x0004
#define  SIGNAL_D     0x0008

.
.
.

void  interrupt   vHandleDeviceA(void)
{
       //重复设置A
       wSignals    |=  SIGNAL_A;
}

void  interrupt   vHandleDeviceB(void)
{
       //重复设置B
       wSignals    |=  SIGNAL_B;
}

.
.
.

void  main(void)
{
      WORD   wHighestPriorityFcn;
      
      while (1)   
      {
              /*等待事情发生*/
              while(wSignals  ==  0)
                      ;
              /*找到后续处理中最高优先级的来进行处理*/
              wHighestPrioritFcn  =  SIGNAL_A;
              
              disable();

              /*如果一个信号没有进行设置。。。。*/
              while (  (wSignals & wHighestPriorityFcn) == 0) {
                       /*...进行下一步*/
                       wHighestPriorityFcn  <<= 1;
              }

              /*重新设该信号;将要对其进行服务*/
              wSignals &=  ~wHighestPriorityFcn;


             enable();
            
             /*现在执行函数*/
             switch  (wHighestPriorityFcn)
             {
                   case   SIGNAL_A:
                               // 处理相关的活动
                               break;
                   case   SIGNAL_B:
                               // 处理相关的活动
                               break;
                    。
                    。
                    。
                    。
              }
         }
}

使用特权

评论回复
17
bhsdlmj| | 2010-12-23 21:22 | 只看该作者
我是你的马甲 我支持你

使用特权

评论回复
18
渤海三叠浪| | 2010-12-23 21:24 | 只看该作者
楼主 我是你的马甲 我支持你

使用特权

评论回复
19
渤海三叠浪| | 2010-12-23 21:30 | 只看该作者

使用特权

评论回复
20
原野之狼| | 2010-12-23 23:24 | 只看该作者
现在通货膨胀严重 裤子也没有这么廉价的:lol

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
原野之浪 + 1
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

190

主题

1614

帖子

4

粉丝