問題タブ [real-time-clock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - STM32F1 RTC_EnterConfigMode が常に Config Mode を設定するとは限らない
序文: これはすべて、ST-Link を使用してターゲットに接続され、IAR Embedded Workbench IDE のデバッグ モードで評価されます。
STM32F1 のリアルタイム クロックは、STM が提供する標準ペリフェラル ライブラリでサポートされています。RTC_SetCounter() を使用して、RTC を 107301722、つまり「2013 年 5 月 26 日 22:02:02 GMT」に設定しようとしています。
RTC レジスタ値を変更するための要件である RTC_EnterConfigMode() を呼び出すことに注意してください。 "
これは、構成モードに入るコードです。十分に単純です。そして、これが逆アセンブリです (最適化は有効になっていません)。0x10 は CNF フラグのビット位置です。
私が見つけたのは、RTC_SetCounter() の呼び出しから行 0x8053ee0 の逆アセンブリまでのどこかで中断すると、構成モードが有効になりますが、行 0x8053ee2 以降の逆アセンブリにブレークポイントを移動すると、構成モードが設定されないことです。であるため、RTC は設定されません。
私が目指していることの一部は、時間の設定を伴う単体テストであるため、デバッグ以外の設定で何が起こるかを分析しようとする領域では何も試していません。単体テストには、デバッガーのアタッチが必要です。
これは厳密にはデバッガの問題ですか? 実行可能な解決策につながる可能性のあるこの動作を説明する合理的な理由はありますか?
android - Androidフォンをスリープから復帰させる方法は?
プログラムでAndroid携帯をスリープから復帰させる方法(memにサスペンド)? 私はウェイクロックを取得したくありません。つまり、電話はCPUを無効にして「実際の」スリープ状態になります。ある種の RTC (リアルタイム クロック) メカニズムを使用できると思いますか?
誰にも例がありますか?
ありがとう。
stm32 - HSE と PLL を使用して STM32 で RTC クロックを使用する方法
stm32F0xx シリーズを使用しており、RTC を機能させようとしています。外部 8MHz クリスタルを接続し、PLL を使用して 48MHz の sysclk を生成しています。明らかに、このクロックを RTC で使用したいと考えています。私は次のことを試しました:
メイン ループには、2 つの LED のオンとオフを切り替える無限の for があります。RTC 構成がなければこれは正常に機能しますが、上記のコードを追加するとすぐに機能しなくなります。
これを行うと、残りのコードが壊れます。HSE を使用できますか? 使用できる場合、プリスカラーを正しく使用していますか?
android - Beaglebone Black: Android の起動時に RTC DS1307/DS1338 でエラーが発生する
私は TI-Android-JB-4.2.2-DevKit-4.1.1 を使用して、完全に機能する Beaglebone Black 用の Android を構築しています。RTC-Cape ( http://elinux.org/CircuitCo:RTC_Cape ) を使用しようとしています。BBB の「オンボード」Angström で、RTC を手動で設定および読み取ることができたので、ハードウェアは問題ないと思います。
AndroidでRTCを動作させるためkernel/arch/arm/mach-omap2/board-am335xevm.c
に、構造体にファイルを追加しました
最後に
で( ) をアクティブにし、 を非アクティブにしましkernel/arch/arm/configs/am335x_evm_android_defconfig
た。CONFIG_RTC_DRV_DS1307
CONFIG_RTC_DRV_DS1307=y
CONFIG_RTC_DRV_OMAP
起動時にそれは言う
と
この Beaglebone/Linux メーリング リストの変更を適用しようとしました: https://groups.google.com/forum/#!msg/beagleboard/DegreEdtI-Q/ZEdFLNnuTvMJ。
Android/Linux カーネル構成は初めてです。カーネルに RTC を適切に含めて設定し、起動時に使用できるようにするにはどうすればよいですか?
よろしく
マティアス
アップデート
Beaglebone Balck Cape の DS1338 は、実際には P9 の 17 と 18 (Android の I2C1 または i2c-2) に接続されていることがわかります。Android では、このバスはデフォルトで無効になっています。簡単な回避策として、印刷された回路パスを切り取り、P9 (I2C2 または i2c-3) の 19 と 20 に配線しました。
次に、I2C_BOARD_INFO
ブロックを移動しました
コンパイルされたカーネルは、起動時に RTC から時刻を読み取るようになりました。
ヒントをありがとう、user3926077。
適切な解決策は、Android カーネルで i2c-2 をアクティブ化し、I2C-BOARD_INFO
ブロックを.xml に配置することstatic struct i2c_board_info am335x_i2c1_boardinfo[]
です。残念ながら、現時点ではこれを達成する方法がわかりません.RTCはデバッグのためだけに必要なので、はんだ付けソリューションが機能します.
linux - ハードウェア クロックが時々進む
マシンにカーネル バージョン 2.6 の Slackware があります。そのマシンでは ntpd がオフになっています。私は奇妙な問題に直面しています。ハードウェア クロックは、1 か月で数か月進むこともあれば、数年進むこともあれば、数分進むこともあります。hwclock --hctosys は 5 分間隔でスケジュールされているため、ソフトウェア クロックのジャンプについては不明です。
カーネル バージョン 2.4 の Slackware でも同じ問題が見つかりました。この問題を引き起こす他のソフトウェアがインストールされていないこと、およびディスクにウイルスが報告されていないことを確認しました。
バッテリ セルは正常で新品ですが、この問題は同じハードウェアの別のユニットで発生します。何らかのソフトウェアやカーネルの問題、または RTC ハードウェアに関連するものであるかどうか、何か考えはありますか?
utc - DST は組み込み Linux ディストリビューションでは機能しません (ネットワーク接続なし)
Yocto Project/OpenEmbedded Linuxディストリビューションをインストールした組み込みLinuxでDSTをセットアップしようとしています。
最初のステップは、/etc/localtime から /usr/share/zoneinfo/Europe/Paris へのシンボリック リンクが設定されているかどうかを確認することでした。
次のステップは、RTC が UTC に設定されているかどうかを知ることのようです。コミュニティは、ファイル /etc/sysconfig/clock を確認することを提案しました。残念ながら、このディストリビューションにはそのようなファイルはありません。
ここで、2 つの質問が頭に浮かびます。まず、RTC が UTC にあるかどうかを確認する他の方法はありますか? 第二に、Poky/OpenEmbedded ディストリビューションがカスタム パッケージの接合によって作成されることを考慮すると、DST を実行するにはどのパッケージが必要ですか?
time - Arduino TimeAlarms が時々動作しない
Arduino Mega 互換ボード (SainSmart Mega 2560 R3 ATmega2560-16AU) を使用します。このボードには、rtc モジュール (v1.1 ds1307rtc) が取り付けられており、添付のコードで作業しています。TimeAlarms ライブラリを使用しました ( http://www.pjrc.com/teensy/td_libs_TimeAlarms.htmlからダウンロードしました)。) 1 時間ごとにアラームを鳴らします。アラームは 1 時間ごとに異なる分に発生するはずですが、テストのためにすべてを 12 分に設定しました。このコードは、USB、シリアル インターフェイス経由で設定できる正しい時刻を待っています。ほとんどの場合、コードは正常に機能しています。しかし、アラームが作動せず、LED が点滅しないことがあります。なぜ、いつこれが起こるのかわかりませんが、点滅している状態と機能していない状態の間で何の変化もありませんでした。また、正常に動作しない時間はわかりませんが、正しく動作することもありますが、失敗することもあります。失敗した場合、失敗した時間以降のすべての時間も失敗しているように見え、アラームはトリガーされません。TimeAlarms.h で 6 つのアラームの制限があることを知っており、このファイルの変数 dtNBR_ALARMS を 25 に設定します。
ご覧のとおり、rtc とシステム時刻を出力する printTime 関数を実装しましたが、常に両方とも正しいです。
私が間違っていること、または時々失敗する理由を知っている人はいますか?
python - リアルタイム クロック モジュール PCF8563 を python over i2c で制御する - smbus を理解する
PythonでリアルタイムクロックモジュールPCF8563を制御しようとしています。モジュールを Raspberry Pi に接続したところ、モジュールからクロックを読み取ることができました。モジュールの内部アラーム機能を使用して、この機能を python から制御したいと考えています。
私が知っている Python ライブラリは 2 つあります。1つは here で、もう 1 つは hereです。
最初のものはうまく機能しますが、アラーム機能のサポートが不足しています. 2番目のものはほとんどの機能をカバーしていますが、私が知らない、使用したくないquick2wireライブラリに依存しています。私は実際に最初のものを改善したいと思います。
このモジュールに関連する適切な文書化されたハウツーも見つけましたが、残念ながらArduino用です。
私の現在の問題は、i2c バスを介してレジストリから取得したバイトから特定のビットを読み取って設定するにはどうすればよいかということです。と:
レジストリ 0x01 から 1 バイトを取得します。戻り値を bcd から 10 進数に変換する必要がありますが、このバイトの 3 番目のビットを取得するにはどうすればよいですか? そして、どうすればそれを変更できますか。
Arudinoのハウツーから引用:
... 0x01 のレジスタのビット 3 (「AF」アラーム フラグ ビット) をチェックします。1 の場合 – アラームの時間です。次に、そのビットをゼロに設定することで、アラームをオフにすることができます。ハードウェアを使用して、最初にレジスタ 0x01 のビット 1 を 1 に設定します。その後、アラームが発生するたびに、PCF8563 のピン 3 に電流が流れます。
arduino - Arduino mini を使用した RTC + スケジューラ
プロジェクトに Arduino mini 5V と RTC - Real Time Clock Module DS1307 を使用しています。特定の時間にボードを起動して機能を実行したいと考えています。(ブザーはD3に接続)
TimeAlarm を単独で使用して時間を手動で設定すると、すべて正常に動作します。
ただし、RTC を使用するとブザー機能が呼び出されず、時刻は表示されます