亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5933|回復: 10
打印 上一主題 下一主題
收起左側

STC8單片機跑RTX51 OS 1T模式

  [復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 李牧林 于 2019-9-14 10:47 編輯

網上能找到的資料,大部分是STC15單片機或者STC12或者STC89在12T的模式下跑RTX51,本人覺得太浪費這些增強型的51單片機芯片了,于是經過測試,成功在1T模式下跑RTX51。
具體涉及的操作如下:
1.在工程中添加RTX51
2.頭文件包含#include <rtx51tny.h>
3.修改Conf_tny.A51的INT_CLOCK   EQU  55400  這邊的55400原來默認為10000

測試的主函數如下所示:
#include <rtx51tny.h>
#define MAIN_Fosc                11059200L        //定義主時鐘
#include        "STC8.H"
#include        "uart.H"

sbit LED_B=P0^7;     //藍色LED用IO口P07

void job0(void) _task_ 0  
{
        AUXR |= 0x80;  //定時器時鐘1T模式
        P0M1 &= 0x7F;        P0M0 &= 0x7F;   //設置P0.7為準雙向口
        UartInit();
        os_create_task(1);         //創建任務1
        os_create_task(2);         //創建任務1
         os_delete_task(0);        //刪除自己(task0),使task0退出任務鏈表
}  

void job1(void) _task_ 1  
{  
                while(1)
                {              
                        LED_B = !LED_B;
                        os_wait(K_IVL, 10, 0);  //等待10個時鐘滴答(ticks),即100ms
    }  
}  

void job2(void) _task_ 2  
{  
                while(1)
                {              
                        UART_SendString("hello\r\n");
                        os_wait(K_IVL, 100, 0);  //等待100個時鐘滴答(ticks),即1s
    }  
}  


經過測試,os_wait(K_IVL, 1, 0)的時間基本能比較接近10ms。os_wait(K_IVL, 10, 0)的時間比較接近100ms。看下圖。



最后注意,本環境是在
#define MAIN_Fosc 11059200L 的情況下測試的。


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:328014 發表于 2019-9-13 16:48 | 只看該作者
很好,值得學習的好東東
回復

使用道具 舉報

板凳
ID:611442 發表于 2019-9-14 16:32 | 只看該作者
很好,值得學習
回復

使用道具 舉報

地板
ID:56665 發表于 2019-9-15 08:38 | 只看該作者
誰分享一下RTX51
回復

使用道具 舉報

5#
ID:281879 發表于 2019-9-15 11:57 | 只看該作者
新手 來學習一下
回復

使用道具 舉報

6#
ID:68814 發表于 2019-9-15 16:01 | 只看該作者

百度資料非常多吧
回復

使用道具 舉報

7#
ID:371527 發表于 2019-9-26 11:34 | 只看該作者
謝謝!我調試一下看看效果
回復

使用道具 舉報

8#
無效樓層,該帖已經被刪除
9#
ID:126541 發表于 2020-3-1 22:15 | 只看該作者
沒有關系,,tick周期是你定的,,和MCU快慢沒關系,無論12T還是1T,,你都定的10ms,,,沒區別
回復

使用道具 舉報

10#
ID:745758 發表于 2020-5-17 00:16 來自觸屏版 | 只看該作者
55400怎么來的?
回復

使用道具 舉報

11#
ID:82570 發表于 2020-7-20 14:03 | 只看該作者

不知道怎么計算的   我猜測的這個  INT_CLOCK 應該是和timer計時類似的計算方法

如果是1ms中斷一次的話, 則可以設  周期數為  CX, 然后有如下 公示:
CX = 1000*11.0592/1T = 11059
則初值設置為: 65535 - CX = 54476  約等于 54400   

但這個是1ms發生中斷的INT_CLOCK值。  樓主那個具體的值是如何得到的,尚不清楚。
回復

使用道具 舉報

12#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表