投稿

3月, 2013の投稿を表示しています

Raspberry Pi のGPIOでLEDを点灯させてみた

イメージ
久しぶりにRaspberryPiを触ってみました。 Broadcom社のBCM2835というPeripheralチップが搭載されており、その一部の端子がヘッダピンに結線されています。ADC端子が無いのは非常に残念ですが、GPIO、UART、I2Cでハードウェア拡張が可能になっています。 BCM2835のデータシート ヘッダピンの端子アサイン情報 手始めとして、GPIOにLEDを接続してC言語で点滅させてみました。 ●回路(僅かこれだけです・・・) ●プログラム概要 gpio_open()   BCM2835のレジスタへアクセスする準備を行います。  システムコールopen  システムコールmmap …BCM2835のGPIOレジスタ群のアドレスは0x20200000番地~です。 main()   gpio_open()   LEDを接続したヘッダP1の26番ピン(GPIO7)を出力モードに設定します。  while(1){      GPIO7にHighレベルを出力します。      sleep() 時間待ち      GPIO7にLowレベルを出力します。      sleep() 時間待ち  } ●コンパイル $gcc gpio1.c コンパイルが通ると a.out が生成されます。 ●実行 $./a.out と実行すると、システムコールopenでエラーが発生し、「can't open. Permisson denied」と返ってきます。 $sudo ./a.out  と管理者権限で実行させます。 実行停止はキーボードからCtrl-cです。 ================================================================================= ソースコード gpio1.c #include <stdio.h> #include <unistd.h> #include <string.h> #include <errno.h