Raspberry Pi Picoでアナログ時計(原子精度)

MicroPythonで楽々プログラミング。十分に高速処理してくれます。
舐めてかかったら、色々、初心に帰ることに(笑い)。
1)UTC(グリニッジ)からLOCAL時間に+9時間・・・・
  桁上りが複雑だったのに、Simpleに組む方法を試行錯誤。
2)針が通過したところの絵を戻すのに、スプライトなんてものは
  無いから、針の汚したところを裏絵で描き戻し。
3)12時の通過時にたくさんの処理が集中しないように、分散化。
4)Core1も使ったスレッド処理を試みるもSMP-OSの無い中では、
  制限がきつい。
5)GPS情報に曜日は載らないので、計算するのね。
  def week(yy, feb):
    days = (125+yy[0]+yy[0]//4+int(“*033614625035″[yy[1]])+yy[2])
    wday = (days-1)%7 if feb==29 and yy[1]<3 else days%7
    return wday

などなど・・・

https://github.com/NorioFujii/GitPython/


カテゴリー: RaspberryPi, お知らせ パーマリンク

Raspberry Pi Picoでアナログ時計(原子精度) への1件のコメント

  1. fujii のコメント:

    時差の計算も残しておく。

    def carryover(yy_hh, ov=[99,12,31,23,59,59]):
        feb = 29 if yy_hh[0]%4==0 else 28
        ov[2] = 30 if yy_hh[1] in [4,6,9,11] else feb if yy_hh[1]==2 else 31
        covrpt(yy_hh, ov, 3)
        yy_hh[6] = week(yy_hh, feb) if yy_hh[6]==0 else 0
        return yy_hh
    
    def covrpt(yh, ov, n):
        xx = yh[n] if yh[n]<=ov[n] else yh[n]-ov[n] if n<3 else yh[n]-ov[n]-1
        if xx!=yh[n]:
            yh[n] = xx
            yh[n-1] += 1
            covrpt(yh ,ov, n-1)
        return yh
    

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です