from machine import Pin, SPI
import time
KEY1 = Pin(0, Pin.IN, Pin.PULL_UP)
KEY2 = Pin(15, Pin.IN, Pin.PULL_UP)
Vdd = Pin(2, mode=Pin.OUT, value=0)
spi = SPI(0, baudrate=7500000, polarity=0, phase=0, bits=8, firstbit=SPI.MSB, sck=Pin(6), mosi=Pin(7))
cs = Pin(1, mode=Pin.OUT, value=0)
cs(1)
Vdd(0)
state = False
def spi_write_data_1():
spi.write(bytes([0x01]))
def spi_write_data_2():
spi.write(bytes([0x02]))
def spi_write_data_3():
spi.write(bytes([0x03]))
def spi_write_data_4():
spi.write(bytes([0x04]))
def spi_write_data_5():
spi.write(bytes([0x05]))
def spi_write_data_6():
spi.write(bytes([0x06]))
def spi_write_data_7():
spi.write(bytes([0x07]))
def spi_write_data_8():
spi.write(bytes([0x08]))
def reverseGPIO():
if Vdd.value() == 1:
cs(0)
spi_write_data_1()
spi_write_data_2()
spi_write_data_8()
spi_write_data_4()
spi_write_data_5()
cs(1)
time.sleep(0.008)
else:
Vdd(1)
time.sleep(0.1)
cs(0)
spi_write_data_1()
spi_write_data_4()
spi_write_data_5()
spi_write_data_3()
spi_write_data_2()
cs(1)
time.sleep(0.008)
try:
while True:
if KEY1.value() == 0:
time.sleep_ms(10)
if KEY1.value() == 0:
reverseGPIO()
while KEY1.value() == 0:
time.sleep_ms(10)
if KEY2.value() == 0:
state = not state
if state:
cs(0)
spi_write_data_6()
cs(1)
else:
cs(0)
spi_write_data_7()
cs(1)
while KEY2.value() == 0:
time.sleep_ms(10)
except:
pass
こんにちは、MicroPythonコードを修正したいのですが、このように実行させたいので、どう修正したら、全然わからなくて、宜しかったら、教えていただけますでしょうか?
1. まず、初めにKEY 1を押してから直ぐに放した後、以下のデータを実行され:
Vdd(1)
time.sleep(0.1)
cs(0)
spi_write_data_1()
spi_write_data_4()
spi_write_data_5()
spi_write_data_3()
spi_write_data_2()
cs(1)
time.sleep(0.008)
2. そして、初めにKEY2を押してから直ぐに放したら、以下のデータが実行され:
cs(0)
spi_write_data_6()
cs(1)
3. それから、二回目KEY2を押してから直ぐに放したら、このデータが実行され:
cs(0)
spi_write_data_7()
cs(1)
4. 2番と3番がずっと繰り返せる
5. 最後に、KEY1を押してから直ぐ放したら、このデータが実行され:
cs(0)
spi_write_data_1()
spi_write_data_2()
spi_write_data_8()
spi_write_data_4()
spi_write_data_5()
cs(1)
Vdd.value(0)
time.sleep(0.1)
6. 5番が実行された後、1番に戻り、無限に繰り返せる。
7. 1番から5番までの内容は、一回目の繰り返しです。KEY1を押す前と最後にKEY1を押した後、KEY2を押しても何のコードが実行されないように修正したい。つまり、最初にKEY1が押され、その直後にKEY2が押された場合のみ、データが出力される。
Logic Analyzerで解析した波形図をアップロードします。ご参照ください。
写真のように、
1.チャンネル0~3は、それぞれVdd、Vddio、Vled、enを表します。
2.チャンネル7はKEY1、チャンネル8はKEY2を表しています。
3.図の白丸で囲った2つの部分は、コードが実行された後のループ(繰り返し)です。
4. 緑で囲った部分は、ボタン2を押してすぐに離すと、このサイクル(繰り返し)の外で発生する信号です。
5.緑で囲まれている部分から発生する信号をなくしたい(青色の丸で囲った部分と同じにしたい)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) micropython コードについて 2 2023/06/14 13:13
- ドライブ・ストレージ HDDのチェック方法 6 2022/05/04 09:49
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- 英語 英語についてです。 write と write it down の違い 教えてくれませんか? 調べた 6 2022/09/10 16:51
- その他(SNS・コミュニケーションサービス) 自分のpcがハッキングされたようなメールが来たのですがどうすればいいですか? 4 2022/10/02 16:14
- Microsoft ASP SPIの非言語の割合と比が難しくて苦戦しています 2 2023/08/06 16:03
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- 工学 非言語分野が全くできない人にオススメの参考書を教えてください 1 2023/06/01 16:15
- その他(プログラミング・Web制作) I2C接続のLCDディスプレイを使う 2 2023/05/01 17:15
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
printfの%eで指数部分の桁数を...
-
stable diffusionのエラー
-
c言語での wavファイルの編集(...
-
C言語 ファイル内のデータと入...
-
System.Collections.ArrayList ...
-
エクセルVBA:日付データの変換...
-
ポインター引数の関数でコンパ...
-
VBA構文で分の表示を 00分と表...
-
パイプを用いたプロセス間通信...
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
DataGridViewの特定列に入力さ...
-
バイト列とバイナリ列の違いが...
-
UCS-2の一覧表が欲しい
-
COBOLのCOMP形式について
-
Excel VBA メール作成について ...
-
Excel 1セル当りの文字数が2...
-
VBAでShift-JISのURLエンコード
-
VB.NET LeftBの代用
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
printfの%eで指数部分の桁数を...
-
stable diffusionのエラー
-
ポインター引数の関数でコンパ...
-
エクセルVBA:日付データの変換...
-
C#でのswitch文
-
CreateProcessでの環境変数の設...
-
RegQueryValueExでの2バイト文字
-
'dataType' 引数を Null にする...
-
【Excel VBA】10進数を2進数に...
-
C++ multipart/form-data f
-
matlabのソースコードをpython...
-
Cのプログラムがどうしても動き...
-
テキストファイルの結合について
-
int型(2バイト)データの分割
-
Excel VBA グラフ作成のとき...
-
C言語 構造体の名前欄?を小文...
-
CSVファイルの行と列のセルって...
-
C++/CLIのオブジェクト型配列
-
C言語 ファイル内のデータと入...
-
C言語についてです! 同じ年の...
おすすめ情報
CPUボードはラズパイpico
回路図は今だにないですが、とりあえず、picoから出す信号を作ってみたいです。
目的は、picoを使って、二つのボタンを繋いで、長方形LEDライトボードを光らせるようにしたいです。