ini are as follows, and the code is as follows:
#include <Arduino.h>
ini are as follows, and the code is as follows:
#include <Arduino.h>
picocom -b 115200 --omap delbs -s "sz --xmodem" /dev/ttyACM0 で転送可能となる
ctl-a,ctl-xで終了
mmbasic picocomでpcからpicoへmmbasicを贈りたいPicoMite (MMBasic)
を実行中のRaspberry Pi PicoへPCからファイルを転送するには、Pico側のXMODEM RECEIVEコマンドと、picocom のXMODEM送信機能(Ctrl-A 続いて Ctrl-S) を組み合わせて使用します。あらかじめホストPC側に lrzsz(sxコマンド)をインストール。
1.転送の手順PicoMite側で受信待機picocomでPicoに接続します。MMBasicのプロンプトで次のように入力してEnterキーを押します。
XMODEM RECEIVE "filename.bas"
コードは注意してご使用ください。(※画面が止まった/待機状態になったようになります)
picocomからファイルを送信キーボードの
Ctrl-A を押し、続けて Ctrl-Sを押します。画面下部に送信する、そのPCディレクトリのファイルのパス(ファイル名)を尋ねられるので、PC側のファイル名を入力してEnterキーを押すと転送が始まります。
cf 保存されたファイルの一覧を見る
(FILES)SDカードや内蔵フラッシュドライブに保存されているファイル名の一覧を表示します。basic FILES
2. ファイルの中身を画面に表示する
(TYPE)転送されたプログラムの内容が正しいか、テキストとして画面に表示して確認します。basic TYPE "try.bas"
3. プログラムをメモリに読み込んで実行する
(LOAD RUN)ファイルをメモリにロードして実行します。basic LOAD "try.bas" RUN
4.プログラムをメモリからセーブしてマイコンでfilesできるようにする
(SAVE) basic SAVE "filename.bas"
5.プログラムをその場で編集・確認する
(EDIT)PicoMite内蔵のフルスクリーンエディタでファイルを開きます。basic EDIT "try.bas"
F1 キー(またはCtrl+Q)を押すとメニューが出るので、保存して終了、または保存せずに終了を選べます。
6.メモリ上のプログラムを消去するにはbasic new,
フラッシュ上のプログラムを消去するにはbasic kill "filename.bas"
----------------------------------------------------------------------------
https://zenn.dev/askua/articles/05e143091c150c :: tinygo for pico
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0684 :: pico-sdk and pico-sdk-examples
#include <SPI.h>/* * ADT7310での温度データ取得 * ADT7310 - Arduino * CS - Pin10 SS(CS) * SDI - Pin11 MOSI * SDO - Pin12 MISO * SCL - Pin13 SCK * VDD - 5V * GND - GND */int SSPin = 10; // Pin10をSS // 初期化void setup(void) { pinMode(SSPin, OUTPUT); Serial.begin(9600); // 以下の3行は呪文やな SPI.setBitOrder(MSBFIRST); //最上位ビット(MSB)から送信 SPI.setClockDivider(SPI_CLOCK_DIV128); //通信速度を遅く設定 SPI.setDataMode(SPI_MODE0); //CPOL(クロック極性):0 CPHA(クロックフェーズ):0 SPI.begin(); SetSSPin(LOW); // マイナス論理、0の間だけ通信可能となる// 本プログラムではループしつづけるのでSetSSPin(High)は不要 //ソフトウェアリセット SPI.transfer(0xFF); SPI.transfer(0xFF); SPI.transfer(0xFF); SPI.transfer(0xFF); SPI.transfer(0x54); // 測定開始(continuously read) delay(500); // 仕様上は、240msで開始} // メインループvoid loop(void) { uint16_t uiVal; float fVal; int iVal; uiVal = (uint16_t)SPI.transfer(0) << 8; // AD変換値 上位 uiVal |= SPI.transfer(0); // AD変換値 下位 uiVal >>= 3; // シフトで13bit化 //uiVal = 0x1fff; //確認テスト用 if(uiVal & 0x1000) { // 13ビットで符号判定 iVal = uiVal - 0x2000; // マイナスの時 (10進数で8192) } else{ iVal = uiVal; //プラスの時 } fVal = (float)iVal / 16.0; // 温度換算(摂氏) Serial.println(fVal, 4); // シリアル送信 delay(5000); //例として5秒待つ}/* * SSピンの設定 * Lowでマスタからの通信が有効(セレクト) * (Highではマスタから通信出来ない(無視される)セレクト解除の状態) */void SetSSPin(int val){ digitalWrite(SSPin, val);