このファイル: /home/web6047/www/cgi-bin/prj/20190901-DRAMを理解してプログラミングに強くなろう/20191116-2adr1bitPIC24H.X/newmain - snapshot 20191117.c
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <libpic30.h>
4
#include <p24HJ32GP202.h>
5
6
7
8
_FBS( BSS_NO_BOOT_CODE & BWRP_WRPROTECT_OFF )
9
_FGS( GSS_OFF & GWRP_OFF )
10
_FOSCSEL( IESO_ON & FNOSC_FRC )
11
_FOSC( FCKSM_CSDCMD & IOL1WAY_OFF & OSCIOFNC_ON & POSCMD_EC )
12
_FWDT( FWDTEN_OFF & WINDIS_OFF & WDTPRE_PR32 & WDTPOST_PS1 )
13
_FPOR( ALTI2C_OFF & FPWRT_PWR32 )
14
_FICD( JTAGEN_OFF & ICS_PGD1 )
15
16
17
18
19
void delay( unsigned long int num ) {
20
unsigned long int i;
21
for( i = 0; i < num; i++ );
22
}
23
24
25
void tell( int num ) {
26
int i;
27
delay( 50000 );
28
for( i = 0; i < num; i++ ) {
29
LATBbits.LATB6 = 1;
30
delay( 100000 );
31
LATBbits.LATB6 = 0;
32
delay( 100000 );
33
}
34
delay( 50000 );
35
}
36
37
38
void space() {
39
delay( 50000 );
40
LATBbits.LATB6 = 1;
41
delay( 400000 );
42
LATBbits.LATB6 = 0;
43
delay( 50000 );
44
}
45
46
int main(int argc, char** argv) {
47
unsigned long int i;
48
int r1, r2;
49
50
51
52
53
AD1PCFGL = 0b0001111000111111;
54
55
56
TRISA = 0b11111;
57
58
TRISB = 0b0000000000000000;
59
60
61
1ヲ アドレス1ニ カキコミ
62
TRISBbits.TRISB8 = 0;
63
LATBbits.LATB8 = 1;
64
LATBbits.LATB2 = 1; トランジスタ オン
65
delay( 30000 );
66
LATBbits.LATB2 = 0; トランジスタ オフ
67
68
69
TRISBbits.TRISB8 = 0; シュツリョクセッテイ (出力に設定)
70
LATBbits.LATB8 = 0;
71
LATBbits.LATB3 = 1;
72
delay( 30000 ); カキコミ
73
LATBbits.LATB3 = 0;
74
75
アドレス1ヲ ヨミコミ
76
TRISBbits.TRISB8 = 1;
77
LATBbits.LATB2 = 1; トランジスタ オン
78
delay( 3000 );
79
r1 = PORTBbits.RB8;
80
LATBbits.LATB2 = 0; トランジスタ オフ
81
82
83
TRISBbits.TRISB8 = 1; ニュウリョク セッテイ
84
LATBbits.LATB3 = 1;
85
delay( 3000 );
86
r2 = PORTBbits.RB8; ニュウリョク ジッコウ
87
LATBbits.LATB3 = 0;
88
89
1ト0ガ ヒョウジサレマス
90
91
space();
92
tell( r1 );
93
space();
94
tell( r2 );
95
space();
96
97
98
99
100
101
102
103
while( 1 ) {
104
105
if( PORTAbits.RA4 == 1 ) {
106
LATBbits.LATB6 = 1;
107
} else {
108
LATBbits.LATB6 = 0;
109
}
110
}
111
112
return (EXIT_SUCCESS);
113
}