#define true 1
sbit IrOut at PORTC.B0;
void main() {
int i;
PORTC = 0xff;
TRISA = 0x00; // PORTAを出力にする
TRISB = 0xff; // PORTBを入力にする
TRISC = 0x00; // PORTCを出力にする
ANSEL = 0x00; // アナログ入力をOFF
ANSELH = 0x00; // アナログ入力をOFF
OPTION_REG = 0; // prescalerTMR0RATE=1:2(1μs)
OPTION_REG.T0CS = 0; // internal clock(Fosc(8MHz)/4)
while(true)
{
for(i=0; i<1000; i++){
IrOut = 0;
Delay_us(200);
IrOut = 1;
Delay_us(633);
}
for(i=0; i<1000; i++){
IrOut = 0;
Delay_us(300);
IrOut = 1;
Delay_us(533);
}
for(i=0; i<1000; i++){
IrOut = 0;
Delay_us(400);
IrOut = 1;
Delay_us(433);
}
for(i=0; i<1000; i++){
IrOut = 0;
Delay_us(500);
IrOut = 1;
Delay_us(333);
}
}
}
|
1
2 ポートCのbit0をIrOutという名前で登録
3
4
5
6
7
8
9
10
11
12 ここでは関係が無い
13 ここでは関係が無い
14 無限ループ
15 パルスの周期は833μsになるようにする
16
17
18 200μs幅のパルスを1000回作る
19
20
21
22
23
24 300μs幅のパルスを1000回作る
25
26
27
28
29
30 400μs幅のパルスを1000回作る
31
32
33
34
35
36 500μs幅のパルスを1000回作る
37
38
39
40
41
|