スポンサーリンク


RAKUTEN

  • スポンサーリンク

« pic24fマイコンボード | メイン | pic24fマイコンボード その3 »

2012/10/13

pic24fマイコンボード その2

マルツのPIC24Fマイコンボードで基本のio動作を動かしました。

まずは動きからどうぞ。

ハードは下の写真のように8個の小型ledを繋ぎました。

Dscf1436_3 ちょっと分かりにくいですが、

ボード左側のピンヘッダCN1AにPORTA,B,Cがでていますので、そこにVCCから

1Kの抵抗を介したLEDを8個つないでいます。

このマイコンボードのCN1AのPORTの配置は以下の通りですので、

それぞれにLEDを繋いでいます。

2pin:RA0 3pin:RA1 4pin:RB0 5pin:RB1 6pin:RB2 7pin:RB3

8pin:RC0 9pin:RC1

このような並びなっていますので、ソフトではRA-RCの各ポートを制御することになります。 

サンプルソフトは以下の通りです。今回はAD1PCFGの設定でちょっとはまりました。

これを設定しないといくつかのIOがADC入力になっており動きません。

#include "P24FJ64GA004.h"

//config
_CONFIG2(0xF9FC);
_CONFIG1(0x3F7F);

//main loop
int main(void)
{
   unsigned int i;

   //Setup clock
   OSCCON = 0x11C0;  // FRCPLL
   CLKDIV =  0x0030;  // 1MIPS SETTING

   //IO PORT SETTING

AD1PCFG = 0xffff; // Analog input disable  //
これがないといくつかのIOが動きません

TRISA = 0x0000; // All output
TRISB = 0x0000; // All output
TRISC = 0x0000; // All output

   //Loop
   while(1){
for (i=0;i<8;i++) {
  Set_Port(0xff - (1<<i));
  Wait_time(40);
}
for (i=0;i<8;i++) {
  Set_Port(0xff - (0x80 >> i));
  Wait_time(40);
}
   }
}

// IO PORT CONTROL

void Set_Port(unsigned int val) {    //ここで8ビットデータを各ポートに振り分けます。
PORTAbits.RA0 = val & 0x0001;
PORTAbits.RA1 = (val & 0x0002)>>1;
PORTBbits.RB0 = (val & 0x0004)>>2;
PORTBbits.RB1 = (val & 0x0008)>>3;
PORTBbits.RB2 = (val & 0x0010)>>4;
PORTBbits.RB3 = (val & 0x0020)>>5;
PORTCbits.RC0 = (val & 0x0040)>>6;
PORTCbits.RC1 = (val & 0x0080)>>7;
}

// WAIT LOOP
void Wait_time(unsigned int t) {
int t0,t1;
for (t0=0;t0<t;t0++) {
  for (t1=0;t1<10000;t1++) {
  }
}
}

簡単なものですが、初めてのマイコンボードでLEDが動くのを見るのは

結構楽しみなものです。

とりあえず今回はここまでです。

トラックバック

この記事のトラックバックURL:
http://app.blog.ocn.ne.jp/t/trackback/240957/23729964

この記事へのトラックバック一覧です pic24fマイコンボード その2

コメント

コメントを投稿