SHコンパイラーのtime関数のサポートについて

お世話になります

SHコンパイラーでtime関数を追加したいと思うのですが、規定ではH8/RX/SH共にtime関数ライブラリーは付属していません

linuxあたりから個人的に流用するしか方法がありませんでしょうか?良い方法がありましたらご教授お願いできませんでしょうか。

Parents
  • わわいです
    time関数というのは、現在時刻を取得する関数ですが、その現在時刻はどこから持ってくるとお考えでしょうか。
    ふつうはCPU内蔵のRTCを動かして持ってくるって話になると思いますが、実装によってはGPSユニットから持ってくる、とか外部RTCユニットから持ってくるとか、タイマ割り込みから算出するということになったりします。
    ということで、考えなしにLinuxから持ってきてもまともに動くものはできないと思われます。
    あなたが、ハードウエアの実装に合わせて作成する必要があります
  • わわい様
    つまり秒からローカル時間への変更がしたいです、どこから持つて来るかですがNTPサーバーです、まあこれはなんでもいいですRTCでも同じだと思いますが、似たようなものはWindows WIN32他linax限らず大抵の処理系に付属していて、H8/RX/SH共にtime関数ライブラリーは付属していませんのでよろしくお願いします。
  • どうもありがとうございました、ネット公表ソースを調べて自分流に作り直しました、正常に動作しているように見えます、以下ソースコード一部ですが、自己解決したのでもありがとうございました。
    ///////////////////////////////////////////////////////////////////////
    //localtime
    ///////////////////////////////////////////////////////////////////////
    void localtime(time_t time,TMBUF *tmbuf)
    {
    unsigned long dayclock, dayno;
    int year=EPOCH_YR;

    dayclock=(unsigned long)time % SECS_DAY;
    dayno=(unsigned long)time / SECS_DAY;

    tmbuf->tm_sec=dayclock % 60;
    tmbuf->tm_min=(dayclock % 3600) / 60;
    tmbuf->tm_hour=dayclock / 3600;
    tmbuf->tm_wday=(dayno + 4) % 7; // Day 0 was a thursday

    //年の補正
    while(dayno >= (unsigned long) YEARSIZE(year)) {
    dayno -= YEARSIZE(year);
    year++;
    }
    tmbuf->tm_year=year;
    tmbuf->tm_mon=0;
    //月の補正
    while(dayno >= (unsigned long) _ytab[LEAPYEAR(year)][tmbuf->tm_mon]) {
    dayno -= _ytab[LEAPYEAR(year)][tmbuf->tm_mon];
    tmbuf->tm_mon++;
    }
    tmbuf->tm_mon ++;
    tmbuf->tm_yday=dayno+1;
    }
    ///////////////////////////////////////////////////////////////////////
    //localtime
    ///////////////////////////////////////////////////////////////////////
  • IKUZOさん

    シェルティです、こんにちは。

    SH用ではないのですが、RX用にtime.hの代わりになるモジュールがリリースされていました。
    www.renesas.com/.../D6000793.html

    UNIX時間をローカル時間に変換してくれます。RTC入力データへの変換にも使いやすいです。
    CMTを1本だけ使って複数の周期起動を行ってくれる簡易スケジューラ機能も付いてますね。
    前に技術サポートからSNTPモジュールも作っていると聞きましたので、これで組み込み機器でも
    時間情報をネットワークからとってきてRTCに設定することができるようになってきますね。

    以上です
  • シェルティさん
    いつもありがとうございます、「www.renesas.com/.../D6000793.html」を早速ダウンロードさせていただいて、使用させていただきます、「SNTPモジュール」はロガー等の時系列のデータ収集には欠かせないですね、信頼性がまったく違ってきますので、前には2分、3分停電が続いたり雷とかで狂ったり、いろいろありますが「SNTPモジュール」があると時刻の心配はいりませんね。
Reply
  • シェルティさん
    いつもありがとうございます、「www.renesas.com/.../D6000793.html」を早速ダウンロードさせていただいて、使用させていただきます、「SNTPモジュール」はロガー等の時系列のデータ収集には欠かせないですね、信頼性がまったく違ってきますので、前には2分、3分停電が続いたり雷とかで狂ったり、いろいろありますが「SNTPモジュール」があると時刻の心配はいりませんね。
Children
No Data