結構前日までは、スムーズに進んだのですがI2Cでは色々とハマりました。
AQM1602のLCDを動かそうと思って作業をしましたが、いろいろとハマりようやく表示できました。
動かしたのは秋月のこんなやつ、一番安いやつですね。
はまったポイントはいっぱい。
今日の段階では何とか動いた感じである。
波形が出ているかもわからず。。。
やっぱりオシロ欲しいな。。。
i2c_write_blocking( , , , ,true) だと動かない。。。
結構前日までは、スムーズに進んだのですがI2Cでは色々とハマりました。
AQM1602のLCDを動かそうと思って作業をしましたが、いろいろとハマりようやく表示できました。
動かしたのは秋月のこんなやつ、一番安いやつですね。
はまったポイントはいっぱい。
今日の段階では何とか動いた感じである。
波形が出ているかもわからず。。。
やっぱりオシロ欲しいな。。。
i2c_write_blocking( , , , ,true) だと動かない。。。
続いてSWでのHW割り込みをかけてみた。
特にハマるところはなし。
callback関数が呼び出されたら、割り込みを一度OFFして関数を抜けるときに再度割り込みをONにする。
キー入力の割り込みを身に着けようと思ったら、まだ通常の割り込み入力も行っていなかった。
慌てて、下記プログラムを記載。
はまった点
・Serial標準出力を使うときには、stdio_init_all();を入れないとダメだった。
全然GPIO入力と関係ない所ではまりました。
その他はすなおに作れました。。。
ボタンを押した回数のカウントです。
今日はタイマー割り込みをしてみた。
結構APIがしっかりしていて、下記のようにPWMのプログラムをタイマー割り込みVerに変更してみた。
参考は下記サイト
https://qiita.com/keyyum/items/3ce448c098c546dced20
続いてPWMを動かしてみます。
LEDをGPIO 22に付けました。
ので 22ピンのPWMを動かしてみます。
ソースコードは下記のように周期的にPWM周期を変えてみました。
ハマった点は3か所
1)#include "hardware/pwm.h" をインクルードする。。。
2)uint slice_num = pwm_gpio_to_slice_num(22); ここはGPIO番号を入れれば良いらしい。
3)一番最初にBuildできなかったのが、CMakeLists.txtに記載が必要だった。
# Pull in our pico_stdlib which pulls in commonly used features
target_link_libraries(pwm pico_stdlib hardware_pwm)
これだから人気でないんだよな~
UART0は色々なPINから出力できるようだ。
今回は16,17ピンからFT232Cに出力させたい。
こんな感じでできました。
GPIOの番号で出力ピンを設定するのね。。。
USBケーブルの抜き差しが面倒臭い。
リセットボタンを追加してリセットしながらBOOTボタンを押して、リセットを話してからBOOTボタンを離せば。
USBケーブルを抜き差ししないでも、書き込めれるらしい。