ユーザ用ツール

サイト用ツール


softdev:mbed

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
softdev:mbed [2013/02/17 22:07] – [RTC] kingsoftdev:mbed [2013/07/15 20:25] (現在) – 外部編集 127.0.0.1
行 5: 行 5:
 {{:softdev:img_0332.jpg?200|箱から開けたとこ}} {{:softdev:img_0332.jpg?200|箱から開けたとこ}}
  
 +最初はここを見た。http://mbed.org/users/yueee_yt/notebook/use_LED/
 +
 +====== freescale Kinetis ======
 +Freedomという開発基板をmbed化できるらしい。[[.:mbed:FRDM]]
 ===== LPC11U24リソース ===== ===== LPC11U24リソース =====
   * [[http://mbed.org/media/uploads/chris/mbed-010.2-schematic.pdf|回路図]] ハード屋なんでこれが無いと始まらん   * [[http://mbed.org/media/uploads/chris/mbed-010.2-schematic.pdf|回路図]] ハード屋なんでこれが無いと始まらん
   * [[http://www.nxp.com/documents/data_sheet/LPC11U2X.pdf|LPC11U24データシート]] これも必要   * [[http://www.nxp.com/documents/data_sheet/LPC11U2X.pdf|LPC11U24データシート]] これも必要
  
 +===== USB =====
 +[[softdev:mbed:usb]]
 +
 +===== 機能 =====
  
 ==== RTC ==== ==== RTC ====
行 49: 行 57:
 BusInではpropertyが使えないようなので、DigitalInでも宣言し、.mode で設定する。 BusInではpropertyが使えないようなので、DigitalInでも宣言し、.mode で設定する。
  
 +==== SPI ====
 +SPIマスター機能、これは簡単にできた。下記はシフトレジスタ595で接続されたキャラクタLCDをspiで制御する例\\
 +LCDのDB0~7,E,RS、他を595を2個つないだ16bitシフトレジスタにデータを送って制御する。E信号もデータの中なのでデータを3回送る。
 +<code c++>
 +SPI spi(p5,p6,p7);
 +DigitalOut solat(p8);
 +int main() {
 +    spi.format(16,3);
 +    spi.frequency(100000);//100KHz
 +    ・・・・・
 +    ・・・・・
 +    ・・・・・    
 +}
 +
 +void send_word(int data){
 +  spi.write( data );
 +  wait_us(1);
 +  solat = 0;
 +  wait_us(1);
 +  solat = 1;
 +  wait_us(1);
 +}
 +
 +void send2cmd(char cmd){
 +  int data;
 +  data = 0x0100 + cmd;
 +  send_word( data );
 +    
 +  data = cmd;
 +  send_word( data );
 + 
 +  data = 0x0100 + cmd;
 +  send_word( data );
 +  wait_us(24);
 +}
 +
 +</code>
 +ところで、
 +<note>SPIにあって欲しい、LSB,MSBの切り替えが無いですが。。。SPIはMSB1stが普通ですが、それでもLSB1stでないと困る事もあります。。。。</note>
 +
 +==== アナログ入力 ====
 +ちょっとよくわかってないのだが、どうも入力を0~1.0Vに正規化して返すらしい。\\
 +普通、Vref-Vss(Vin-GNDと共用する事が多い)の分解能(この場合10bit)の値を返すから、電圧=値×3.3/1024 を算出する事になるが、あらかじめ値を1024で除算してfloatで返すらしい。CPUパワーがあるのでこういう使い方をするとのことだが、、、
 +
 +ARM使ってプログラムが肥大化するにはこういった処理が含まれるからなのかも知れないなぁ、と感じる。。。\\
 +あらかじめ、ハードで1.024倍しておくという使い方もあると思うが、、会社でもそうだが、何でもかんでもファーム。CPUはパフォーマンスを上げ続けるという構図ができあがっている。製品が作れないのはCPUパフォーマンスが足りないからだと、すぐ口にする。きにくわん。
 +
 +もちろん、0~1で正規化されたfloatのほうが直感的だし使いやすい事は理解する。
 +
 +<code c>
 +AnalogIn LM61(p15);
 +void main(){
 +    float tempC;
 +    tempC = ((LM61*3.3)-0.600)*100.0*10;
 +</code>
 +p15をアナログ入力にして、LM61を増幅せずに繋いだ例。
  
softdev/mbed.1361106468.txt.gz · 最終更新: 2013/07/15 20:27 (外部編集)