上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top

マルツの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が動くのを見るのは



結構楽しみなものです。



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


2012.10.13 Sat l PICマイコン l コメント (0) トラックバック (0) l top

コメント

コメントの投稿












トラックバック

トラックバック URL
http://diyelec.blog.fc2.com/tb.php/272-66e16ae0
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。