Skin:
[NORMAL]
[BLUE] [DOS] [LIGHT]  / コピーするための表示 / 実行
このファイル: /home/web6047/www/cgi-bin/prj/20190901-DRAMを理解してプログラミングに強くなろう/20191018-1bitPIC24H.X/newmain - snapshot 20191019.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <libpic30.h>
4 #include <p24HJ32GP202.h>
5
6
7 //内部クロック使用時 7.37 MHz
8 _FBS(BSS_NO_FLASH & BWRP_WRPROTECT_OFF )
9 _FGS(GSS_OFF & GCP_OFF & GWRP_OFF )
10 _FOSCSEL(FNOSC_FRC & IESO_ON)
11 _FOSC(FCKSM_CSECME & IOL1WAY_OFF & POSCMD_NONE & OSCIOFNC_ON )
12 _FWDT(FWDTEN_OFF & WINDIS_OFF)
13 _FPOR(FPWRT_PWR32 & ALTI2C_OFF)
14
15
16 int main(int argc, char** argv) {
17 unsigned long int i;
18 int r;
19 //100 CLO :' ピン ショキカ
20 //PIC24H特有の設定 ------------------------------
21 //___CBA9___543210
22 AD1PCFGL = 0b0001111000111111; //アナログ:0、デジタル:1
23 //ピン入出力設定 --------------------------------
24 //43210
25 TRISA = 0b11111; //出力:0、入力:1
26 //FEDCBA9876543210
27 TRISB = 0b0000000000000000;
28
29 //110 ' ジョウホウ 0 カキコミ
30 LATBbits.LATB8 = 0; //120 OUT 1,0 :' シュツリョク 0V セッテイ★★★
31 LATBbits.LATB2 = 1; //130 OUT 7,1 :' トランジスタ オン
32 for( i = 0; i < 3000; i++ ); //140 WAIT 10 :' ショウキョ
33 LATBbits.LATB2 = 0; //150 OUT 7,0 :' トランジスタ オフ
34 //160 ' ジョウホウ ヲ ヨム
35 TRISBbits.TRISB8 = 1; //170 OUT 1,-1 :' ニュウリョク セッテイ
36 LATBbits.LATB2 = 1; //180 OUT 7,1 :' トランジスタ オン
37 r = PORTBbits.RB8; //190 ? IN(5) :' ウケトリ
38 LATBbits.LATB2 = 0; //200 OUT 7,0 :' トンジスタ オフ
39
40 //ヒョウジ
41 if( r ) {
42 //1のときは1回点滅
43 LATBbits.LATB6 = 1;
44 for( i = 0; i < 100000; i++ );
45 LATBbits.LATB6 = 0;
46 } else {
47 //0のときは2回点滅
48 LATBbits.LATB6 = 1;
49 for( i = 0; i < 100000; i++ );
50 LATBbits.LATB6 = 0;
51 for( i = 0; i < 100000; i++ );
52 LATBbits.LATB6 = 1;
53 for( i = 0; i < 100000; i++ );
54 LATBbits.LATB6 = 0;
55 }
56
57 while( 1 ) {
58 //LED
59 if( PORTAbits.RA4 == 1 ) {
60 LATBbits.LATB6 = 1;
61 } else {
62 LATBbits.LATB6 = 0;
63 }
64 }
65
66 return (EXIT_SUCCESS);
67 }