原创 菜农成立儿童团之目的

2009-2-19 01:52 1718 0 分类: MCU/ 嵌入式
HotC51 发表于 2009-2-19 01:02 裸奔式实时操作系统HotTask51 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

2楼: 俺坐沙发~~~成立儿童团之目的


由于菜地的分类太广,故决定在EDNChina建立各专题小组,

在HotTask51只剩切换一个难关后,菜农感觉一定能搞定,

故建立HotC51共产儿童团,提供对HotTask51最基础的支持,

主要是Keil C51之应用~~~

因为菜农对目前“市场”的51之规范很不看好,故决意建立

小组,广播非典之水~~~

HotC51 发表于 2009-2-19 01:50 裸奔式实时操作系统HotTask51 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

3楼: HotC51.C


/*-------------------------------------------------------------------------------
    菜农在HotC51共产儿童团成立大会时的演讲报告

    在一个设计优美的程序中,应该多使用COM接口技术及结构、位域和联合之“美化手段”
采用此方法编制出来的程序,从表面上看如同C++程序,它是新语言采用之潮流。
如Java、C#、VB.Net等。
    所以,HotC51共产儿童团将竭力推动此潮流,并将共产火焰然遍“亚非拉”。

HotC51共产儿童团团章:

  共享,共享,再共享。学习,学习,再学习。
  开源,开源,再开源。灌水,灌水,再灌水。

HotC51共产儿童团入门第一课: 《COM接口技术在C51之实现和应用》见程序HotC51.C/H
HotC51共产儿童团见面礼:     《Keil C51红杏出墙记》(情人节裸奔版)

HotTask51农会主席兼HotC51儿童团团长 HotPower@126.com 2009.2.18 于菜地
-------------------------------------------------------------------------------*/
#include "HotC51.h"

void Task0()
{
    _nop_();
    _nop_();
    _nop_();
}

void Task1()
{
    _nop_();
    _nop_();
    _nop_();
}

void Task2()
{
    _nop_();
    _nop_();
    _nop_();
}

void Task3()
{
    _nop_();
    _nop_();
    _nop_();
}

IHotTask_Task_Interface HotTaskTable =
{
    (pHotTaskFUNC)Task0,//任务0
    (pHotTaskFUNC)Task1,//任务1
    (pHotTaskFUNC)Task2,//任务2
    (pHotTaskFUNC)Task3,//任务3
};//用Com接口访问

void main()
{
    HotTaskTable.Pointer.Task0();
    HotTaskTable.Array[0]();
    HotTaskTable.Pointer.Task1();
    HotTaskTable.Array[1]();
    HotTaskTable.Pointer.Task2();
    HotTaskTable.Array[2]();
    HotTaskTable.Pointer.Task3();
    HotTaskTable.Array[3]();
    while(1)
    {
    }
}


HotC51 发表于 2009-2-19 01:51 裸奔式实时操作系统HotTask51 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

4楼: HotC51.H


/*-------------------------------------------------------------------------------
    菜农在HotC51共产儿童团成立大会时的演讲报告

    在一个设计优美的程序中,应该多使用COM接口技术及结构、位域和联合之“美化手段”
采用此方法编制出来的程序,从表面上看如同C++程序,它是新语言采用之潮流。
如Java、C#、VB.Net等。
    所以,HotC51共产儿童团将竭力推动此潮流,并将共产火焰然遍“亚非拉”。

HotC51共产儿童团团章:

  共享,共享,再共享。学习,学习,再学习。
  开源,开源,再开源。灌水,灌水,再灌水。

HotC51共产儿童团入门第一课: 《COM接口技术在C51之实现和应用》见程序HotC51.C/H
HotC51共产儿童团见面礼:     《Keil C51红杏出墙记》(情人节裸奔版)

HotTask51农会主席兼HotC51儿童团团长 HotPower@126.com 2009.2.18 于菜地
-------------------------------------------------------------------------------*/

#include <regx52.h>
#include <absacc.h>
#include <intrins.h>

#ifndef __HotC51_H__
#define __HotC51_H__
//#include "hotins.h"//《Keil C51红杏出墙记》(情人节裸奔版)


#define HotHIDE void//隐身函数
typedef void (*pHotTaskHIDE)(void);//隐身函数指针

#define HotTASK void//任务函数
typedef void (*pHotTaskFUNC)(void);//任务函数指针

#define HotHOOK void//钩子函数
typedef void (*pHotTaskHOOK)(void);//钩子函数指针

#define interface typedef struct//COM接口定义

/*---------------------------------------------------------------------------------
    HotTask51任务函数向量表接口IHotTask_TaskVtbl_Interface类型定义
HotTask51中涉及任务函数数组及任务函数指针数组的,都将以类COM接口封装。
采用COM接口技术的最大好处是将C语言通过其类型的定义,即可对接口内的成员(函数、变量)
如同Delphi/C++/C#/Jave/VB.Net等高级语言一样,灵活的访问其所有成员。
-----------------------------------------------------------------------------------*/
interface
{
    void (*Task0)(void);//注意:和真的任务0名称Task0一样对仿真大有好处
    void (*Task1)(void);//建议将其和实际名称一致,虽然可以任意取名
    void (*Task2)(void);
    void (*Task3)(void);
}IHotTask_TaskVtbl_Interface, *pIHotTask_TaskVtbl_Interface;

typedef volatile union
{
/*----------------------------------------
     以函数名检索
----------------------------------------*/
    IHotTask_TaskVtbl_Interface Pointer;
/*------------------------------------------------------------------------------------------------
    以函数数组检索。请注意:一定要用计算来得到数组的个数,这样可随意增添任务而不改程序
-------------------------------------------------------------------------------------------------*/
    pHotTaskFUNC Array[sizeof(IHotTask_TaskVtbl_Interface) / sizeof(pHotTaskFUNC)];
}IHotTask_Task_Interface;

//最好在最后声明
extern IHotTask_Task_Interface HotTaskTable;
extern void Task0();
extern void Task1();
extern void Task2();
extern void Task3();

#endif//__HotC51_H__

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
0
关闭 站长推荐上一条 /1 下一条