(push-button switch) (push-button) (rocker switch) ONOFF ONOFF (toggle switch) () (slide switch) ONOFF () 7.1 外観 内部の端子接続 図の縦方向がつながっている 操作部 ( プ

Size: px
Start display at page:

Download "(push-button switch) (push-button) (rocker switch) ONOFF ONOFF (toggle switch) () (slide switch) ONOFF () 7.1 外観 内部の端子接続 図の縦方向がつながっている 操作部 ( プ"

Transcription

1 ON OFF (tactile switch) (tactile switch) () ON OFF (DIP switch) DIP() () ()

2 (push-button switch) (push-button) (rocker switch) ONOFF ONOFF (toggle switch) () (slide switch) ONOFF () 7.1 外観 内部の端子接続 図の縦方向がつながっている 操作部 ( プランジャ ) を押し込んだとき横方向もつながる

3 () () P14 SW1 GND 7.2 ONOFF P14 HIGHLOW ( 7.1) 7.1 ONOFF P14 HIGHLOW P14 ON OFF LOW(0) HIGH(1) (pull-up resistor) ON LOW(0) OFF HIGH(1) LOW(0) ( 7.3) 167

4 LOW(0) 不定 7.3 OFF HIGH(1) Vcc(5V) ( 7.4) ON Vcc (pull-up resistor) Vcc HIGH(1) GND 7.4 OFF HIGH(1) 168

5 第 7. スイッチの利用 7.1. タクトスイッチ するように ポート 1 にはプルアップ機能が備わっており レジスタを設定することでマイコン内部でプ ルアップ回路を実現することが可能です (図 7.5) Vcc HIGH(1) マイコン内部で プルアップ GND 図 7.5 マイコン内部でプルアップ 接続例 今回は タクトスイッチ以外に 前回の LED の回路も必要です 図 7.6 ブレッドボードへの接続例 関連レジスタ 上記回路において スイッチの操作に必要なレジスタは以下のとおりです ポートモードレジスタ 1(PMR1) ポートコントロールレジスタ 1(PCR1) ポートデータレジスタ 1(PDR1) 169

6 (PUCR1) 7.2 P1 1(PMR1) 1(PCR1) 1(PDR1) 1(PUCR1) H FFE0 H FFE4 H FFD4 H FFD0 1(PMR1) PMR (PMR1) R/W 7 IRQ3 0 R/W P17/IRQ3/TRGV 0 1IRQ3 TRGV 6 IRQ2 0 R/W P16/IRQ2 0 1IRQ2 5 IRQ1 0 R/W P15/IRQ1 0 1IRQ1 4 IRQ0 0 R/W P14/IRQ0 0 1IRQ TXD 0 R/W P22/TXD 0 1TXD 0 TMOW 0 R/W P10/TMOW 0 1TMOW 1(PCR1) PCR

7 (PCR1) R/W 7 PCR17 0 W 1 6 PCR16 0 W 1 5 PCR15 0 W 0 4 PCR14 0 W PCR12 0 W 1 PCR11 0 W 0 PCR10 0 W 1(PDR1) PDR R/W 7 P17 0 R/W 6 P16 0 R/W 5 P15 0 R/W PCR1 1 4 P14 0 R/W PCR P12 0 R/W 3 1 P11 0 R/W 1 0 P10 0 R/W 1(PUCR1) PUCR1 MOS 7.6 1(PUCR1) R/W 7 PUCR17 0 W PCR1 0 6 PUCR16 0 W 1 P17P14P12P10 5 PUCR15 0 W MOS 4 PUCR14 0 W PUCR12 0 W 1 1 PUCR11 0 W 0 PUCR10 0 W 171

8 iodefine.h P.145 LED0,2 (HEW iodefine.h ) 1 (iodefine.h ) struct st_io { /* struct IO */ union { /* PUCR1 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char B7:1; /* Bit 7 */ unsigned char B6:1; /* Bit 6 */ unsigned char B5:1; /* Bit 5 */ unsigned char B4:1; /* Bit 4 */ unsigned char :1; /* Bit 3 */ unsigned char B2:1; /* Bit 2 */ unsigned char B1:1; /* Bit 1 */ unsigned char B0:1; /* Bit 0 */ } BIT; /* */ } PUCR1; /* */ union { /* PDR1 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char B7:1; /* Bit 7 */ unsigned char B6:1; /* Bit 6 */ unsigned char B5:1; /* Bit 5 */ unsigned char B4:1; /* Bit 4 */ unsigned char :1; /* Bit 3 */ unsigned char B2:1; /* Bit 2 */ unsigned char B1:1; /* Bit 1 */ unsigned char B0:1; /* Bit 0 */ } BIT; /* */ } PDR1; /* */ union { /* PMR1 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char IRQ3:1; /* IRQ3 */ unsigned char IRQ2:1; /* IRQ2 */ unsigned char IRQ1:1; /* IRQ1 */ unsigned char IRQ0:1; /* IRQ0 */ unsigned char :2; /* */ unsigned char TXD :1; /* TXD */ unsigned char TMOW:1; /* TMOW */ } BIT; /* */ } PMR1; /* */ unsigned char PCR1; /* PCR1 */ }; /* */ #define IO (*(volatile struct st_io *)0xFFD0) /* IO Address*/ 172

9 iodefine.h 02 SW01.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :02_SW01.c */ 4 /* DESCRIPTION : LED0 */ 5 6 /* /* CPU TYPE :H8/3694F */ */ 7 /* */ 8 /* SW0 P14 */ 9 /* */ 10 /***********************************************************************/ #include "led.h" 13 #include "iodefine.h" #define SW0 0x01 16 #define SW_SHIFT #define SW_MASK ( SW0 << SW_SHIFT ) void main(void) 21 { 22 LedInit(); /* LED */ 23 IO.PUCR1.BIT.B4 = 1; /* */ 24 IO.PCR1 &= (~SW_MASK); while(io.pdr1.bit.b4){ ; /* */ 27 } 28 LedSet( LED0 ); /* LED0 */ while(1){ ; } } End Of List LED led.h led.c P LED LED0 () (02 SW01.c) 12 #include "led.h" LED 6.1 (P.151) led.h include 173

10 #define SW0 0x01 16 #define SW_SHIFT #define SW_MASK ( SW0 << SW_SHIFT ) P14 P14 24 IO.PUCR1.BIT.B4 = 1; /* */ P14 24 IO.PCR1 &= (~SW_MASK); P14 SW MASK 18 ( ) 2 ( ) 2 P while(io.pdr1.bit.b4){ /* */ 26 ; 27 } IO.PDR1.BIT.B4 OFF 1 while 1(0 ) ON IO.PDR1.BIT.B LedSet( LED0 ); /* LED0 */ LED0 LED1 LED2 LED (P.167) 7.5(P.169) OFF P14 HIGH(1) ON LOW(0) 174

11 () (chattering) ( 7.7) HIGH(1) 状態が安定しない LOW(0) OFF ON OFF 7.7 (chattering) ON LED OFF LED LED 02 SW02.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :02_SW02.c */ 4 /* DESCRIPTION : LED */ 5 /* */ 6 7 /* /* CPU TYPE :H8/3694F */ */ 8 /* */ 9 /* SW0 P14 */ 10 /* */ 11 /***********************************************************************/ #include "led.h" 14 #include "iodefine.h" #define SW0 0x01 17 #define SW_SHIFT #define SW_MASK ( SW0 << SW_SHIFT ) 20 #define LED_MAX (LED0 LED1 LED2)

12 void main(void) { unsigned char led_data; LedInit(); /* LED */ 27 IO.PUCR1.BIT.B4 = 1; */ /* 28 IO.PCR1 &= (~SW_MASK); while(1){ for(led_data=0; led_data<=led_max; led_data++){ while(io.pdr1.bit.b4){ ; /* */ 33 } 34 LedSet( led_data ); /* LED */ while(!io.pdr1.bit.b4){ ; /* */ 37 } 38 } 39 } 40 } End Of List LED LED () (02 SW02.c) 30 for(led_data=0; led_data<=led_max; led_data++){ P LED07.c for LED MAX 31 while(io.pdr1.bit.b4){ /* */ 32 ; 33 } 34 LedSet( led_data ); /* LED */ 35 while(!io.pdr1.bit.b4){ /* */ 36 ; 37 } while 35 LED 35 37! while ON,OFF LED () 02 SW02.c 176

13 RS ( 7.8) (1 ) () HIGH(1) 状態が安定しない LOW(0) 安定するまで待つ 安定するまで待つ OFF ON OFF SW03.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :02_SW03.c */ 4 /* DESCRIPTION : LED */ 5 /* */ 6 7 /* /* CPU TYPE :H8/3694F */ */ 8 /* */ 9 /* SW0 P14 */ 10 /* */ 11 /***********************************************************************/ #include "led.h" 14 #include "iodefine.h" #define SW0 0x01 177

14 #define SW_SHIFT #define SW_MASK ( SW0 << SW_SHIFT ) 20 #define LED_MAX (LED0 LED1 LED2) 21 #define SW_WAIT_LOOP 0x6FFFFL void SwWaitLoop(void) { unsigned long count; for(count=0; count<sw_wait_loop; count++){ 28 ; 29 } 30 } void main(void) { unsigned char led_data; LedInit(); /* LED */ 37 IO.PUCR1.BIT.B4 = 1; */ /* 38 IO.PCR1 &= (~SW_MASK); while(1){ for(led_data=0; led_data<=led_max; led_data++){ while(io.pdr1.bit.b4){ ; /* */ } SwWaitLoop(); 45 LedSet( led_data ); /* LED */ while(!io.pdr1.bit.b4){ ; /* */ } SwWaitLoop(); 50 } 51 } 52 } End Of List LED LED () (02 SW03.c) 21 #define SW_WAIT_LOOP 0x6FFFFL void SwWaitLoop(void) 24 { 25 unsigned long count; for(count=0; count<sw_wait_loop; count++){ 28 ; 29 } 30 } for 0x6FFFF= MHz 1 41 while(io.pdr1.bit.b4){ /* */ 178

15 ; 43 } 44 SwWaitLoop(); 44 while while(!io.pdr1.bit.b4){ /* */ 47 ; 48 } 49 SwWaitLoop(); OFF ONOFF

16 (H8/3694F ) sw.h SW0 P14 **************************************************************** void SwInit(void); : #include"sw.h" void SwInit(void); I/O **************************************************************** unsigned char SwGet(void); : #include"sw.h" unsigned char SwGet(void); unsigned char (0: 1:) **************************************************************** void SwWaitPush(void); : #include"sw.h" void SwWaitPush(void); SwGet **************************************************************** void SwWaitDetach(void); : #include"sw.h" void SwWaitDetach(void); SwGet LED 180

17 sw.h 1 #ifndef _SW_H_ 2 #define _SW_H_ 3 4 #define SWIO IO.PCR1 5 #define SWDAT IO.PDR1.BYTE 6 #define SWPU IO.PUCR1.BYTE 7 8 #define SW0 0x01 9 #define SW_SHIFT #define SW_MASK ( SW0 << SW_SHIFT ) #define SW_LOOP /* */ 14 #define SW_COUNT 100 /* */ void SwInit(void); 17 unsigned char SwGet(void); 18 void SwWaitPush(void); 19 void SwWaitDetach(void); #endif End Of List sw.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :sw.c */ 4 /* DATE :Tue, Nov 20, 2007 */ 5 /* DESCRIPTION : */ 6 7 /* /* CPU TYPE :H8/3694F */ */ 8 /* */ 9 /* SW0 P14 */ 10 /* */ 11 /***********************************************************************/ #include "iodefine.h" 14 #include "sw.h" /********************************************* *********************************************/ 19 void SwInit(void) 20 { 21 SWIO &= (~SW_MASK); 22 SWPU = SW_MASK; /* */ 23 } /********************************************* *********************************************/ unsigned char SwGet(void) 29 { 30 /* i: */ 31 /* count: */ 32 int i=0, count=0; /* old_state: */ /* new_state: */ unsigned char new_state, old_state=255; while((i<sw_loop) && (count<sw_count)){ 39 new_state = (SWDAT & SW_MASK); if(old_state == new_state){ count++; 42 }else{ 43 count = 0; 44 old_state = new_state; } i++; } return (((~new_state) & SW_MASK) >> SW_SHIFT); 49 } /********************************************* *********************************************/ 54 void SwWaitPush(void) 55 { 56 while(!swget()){ 57 ; 58 } 59 } /********************************************* 181

18 *********************************************/ 64 void SwWaitDetach(void) 65 { 66 while(swget()){ 67 ; 68 } 69 } 70 End Of List 02 SW04.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :02_SW04.c */ 4 /* DESCRIPTION : LED */ 5 6 /* /* CPU TYPE :H8/3694F */ */ 7 /* */ 8 /* SW0 P14 */ 9 /* */ 10 /***********************************************************************/ #include "led.h" 13 #include "sw.h" void main(void) 16 { 17 LedInit(); /* LED */ 18 SwInit(); /* */ while(1){ 21 SwWaitPush(); /* */ 22 LedSet( LED0 LED1 LED2 ); /* LED */ 23 SwWaitDetach(); /* */ 24 LedSet( 0 ); /* LED */ } } End Of List LED LED LED (sw.h) 4 #define SWIO IO.PCR1 5 #define SWDAT IO.PDR1.BYTE 6 #define SWPU IO.PUCR1.BYTE I/O 13 #define SW_LOOP /* */ 14 #define SW_COUNT 100 /* */ 182

19 SW LOOP 100 SW COUNT (sw.c) 21 SWIO &= (~SW_MASK); 22 SWPU = SW_MASK; /* */ P14 22 P14 32 int i=0, count=0; i () count 0 36 unsigned char new_state, old_state=255; old state 0 0x10(16) old state 255 new state 38 while((i<sw_loop) && (count<sw_count)){ 47 } 10000(SW LOOP) 100 (SW COUNT) 183

20 new_state = (SWDAT & SW_MASK); new state ON 0 OFF 0x10(16) 40 if(old_state == new_state){ 41 count++; 42 } count 1 42 }else{ 43 count = 0; 44 old_state = new_state; 45 } count 0 old state 48 return (((~new_state) & SW_MASK) >> SW_SHIFT); ON 1 OFF 0 54 void SwWaitPush(void) 55 { 56 while(!swget()){ 57 ; 58 } 59 } SwGet OFF 0!SwGet() 1 while ON!SwGet() 0 while 64 void SwWaitDetach(void) 65 { 66 while(swget()){ 67 ; 68 } 69 } 184

21 SwGet ON 1 SwGet() 1 while OFF SwGet() 0 while (02 SW04.c) 13 #include "sw.h" sw.h include 18 SwInit(); /* */ 21 SwWaitPush(); /* */ 23 SwWaitDetach(); /* */ () LED LED0 LED LED1LED2 LED2 LED0 sw.hsw.c e02 SW04 185

22 DIP 7.1 LED COPAL ELECTRONICS S-1211A ( 7.9) 7.9 S-1211A() 4 1,2,3,4 C ( 7.7) 186

23 A B C D E F (LOW) 1(HIGH) 1(HIGH),0(LOW)

24 (HIGH),0(LOW) P50 P51 P52 P A B C D E F (PMR5) 5(PCR5) 5(PDR5) 5(PUCR5) 7.9 P5 5(PMR5) 5(PCR5) 5(PDR5) 5(PUCR5) H FFE1 H FFE8 H FFD8 H FFD1 5(PMR5) PMR

25 (PMR5) R/W WKP5 0 R/W P55/W KP 5/ADT RG 0 1W KP 5 ADT RG 4 WKP4 0 R/W P54/W KP 4 0 1W KP 4 3 WKP3 0 R/W P53/W KP 3 0 1W KP 3 2 WKP2 0 R/W P52/W KP 2 0 1W KP 2 1 WKP1 0 R/W P51/W KP 1 0 1W KP 1 0 WKP0 0 R/W P50/W KP 0 0 1W KP 0 5(PCR5) PCR (PCR5) R/W 7 PCR57 0 W 5 6 PCR56 0 W 1 5 PCR55 0 W 0 4 PCR54 0 W 3 PCR53 0 W 2 PCR52 0 W 1 PCR51 0 W 0 PCR50 0 W 5(PDR5) PDR

26 R/W 7 P57 0 R/W 6 P56 0 R/W 5 P55 0 R/W PCR5 1 4 P54 0 R/W PCR5 0 3 P53 0 R/W 2 P52 0 R/W 1 P51 0 R/W 0 P50 0 R/W 5(PUCR5) PUCR5 MOS (PUCR5) R/W PUCR55 0 R/W PCR5 0 4 PUCR54 0 R/W 1 3 PUCR53 0 R/W MOS 2 PUCR52 0 R/W 0 1 PUCR51 0 R/W 0 PUCR50 0 R/W iodefine.h P.145 LED0,2 (HEW iodefine.h ) 190

27 (iodefine.h ) struct st_io { /* struct IO */ union { /* PUCR5 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char :2; /* Bit 7,6 */ unsigned char B5:1; /* Bit 5 */ unsigned char B4:1; /* Bit 4 */ unsigned char B3:1; /* Bit 3 */ unsigned char B2:1; /* Bit 2 */ unsigned char B1:1; /* Bit 1 */ unsigned char B0:1; /* Bit 0 */ } BIT; /* */ } PUCR5; /* */ union { /* PDR5 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char B7:1; /* Bit 7 */ unsigned char B6:1; /* Bit 6 */ unsigned char B5:1; /* Bit 5 */ unsigned char B4:1; /* Bit 4 */ unsigned char B3:1; /* Bit 3 */ unsigned char B2:1; /* Bit 2 */ unsigned char B1:1; /* Bit 1 */ unsigned char B0:1; /* Bit 0 */ } BIT; /* */ } PDR5; /* */ union { /* PMR5 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char :2; /* */ unsigned char WKP5:1; /* WKP5 */ unsigned char WKP4:1; /* WKP4 */ unsigned char WKP3:1; /* WKP3 */ unsigned char WKP2:1; /* WKP2 */ unsigned char WKP1:1; /* WKP1 */ unsigned char WKP0:1; /* WKP0 */ } BIT; /* */ } PMR5; /* */ unsigned char PCR5; /* PCR5 */ }; /* */ #define IO (*(volatile struct st_io *)0xFFD0) /* IO Address*/ LED LED led.hled.c (P ) 191

28 ROTSW01.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :03_ROTSW01.c */ 4 /* DESCRIPTION : 3 LED */ 5 /* CPU TYPE :H8/3694F */ 6 /* */ 7 /* */ 8 /* ROTSW1 P50 */ 9 /* ROTSW2 P51 */ 10 /* ROTSW3 P52 */ 11 /* ROTSW4 P53 */ 12 /* */ 13 /***********************************************************************/ #include "led.h" 16 #include "iodefine.h" #define ROTSW1 0x01 19 #define ROTSW2 0x02 20 #define ROTSW3 0x04 21 #define ROTSW4 0x #define SW_ROT_MASK ( ROTSW1 ROTSW2 ROTSW3 ROTSW4 ) void main(void) 26 { 27 LedInit(); /* LED */ 28 IO.PCR5 &= (~SW_ROT_MASK); /* */ 29 IO.PUCR5.BYTE = SW_ROT_MASK;/* */ while(1){ 32 LedSet((~IO.PDR5.BYTE) & SW_ROT_MASK); /* (0-7) LED */ 33 } 34 } End Of List ( 3 ) LED ( 7.14 ) 7.14 LED (- ) LED0 LED1 LED A - - B - C - - D - E - F (03 ROTSW01.c) 15 #include "led.h" 192

29 LED P #define ROTSW1 0x01 19 #define ROTSW2 0x02 20 #define ROTSW3 0x04 21 #define ROTSW4 0x #define SW_ROT_MASK ( ROTSW1 ROTSW2 ROTSW3 ROTSW4 ) SW ROT MASK 0x0F 28 IO.PCR5 &= (~SW_ROT_MASK); /* */ 29 IO.PUCR5.BYTE = SW_ROT_MASK;/* */ 32 LedSet((~IO.PDR5.BYTE) & SW_ROT_MASK); /* (0-7) LED */ (~IO.PDR5.BYTE) & SW_ROT_MASK LedSet 0 15 LedSet 3 P

30 (H8/3694F ) sw.h ROTSW1 P50 ROTSW2 P51 ROTSW3 P52 ROTSW4 P53 **************************************************************** void RotSwInit(void); : #include"sw.h" RotSwInit(void); I/O **************************************************************** unsigned char RotSwGet(void); : #include"sw.h" RotSwGet(void); unsigned char ( ) sw.hsw.c LED LED sw.h 1 #ifndef _SW_H_ 2 #define _SW_H_ 3 4 #include "iodefine.h" 5 6 #define ROTSWIO IO.PCR5 7 #define ROTSWDAT IO.PDR5.BYTE 8 #define ROTSWPU IO.PUCR5.BYTE 9 10 #define SWIO IO.PCR1 11 #define SWDAT IO.PDR1.BYTE 12 #define SWPU IO.PUCR1.BYTE #define ROTSW1 0x01 15 #define ROTSW2 0x02 16 #define ROTSW3 0x04 17 #define ROTSW4 0x #define SW0 0x01 20 #define SW_SHIFT #define SW_ROT_MASK ( ROTSW1 ROTSW2 ROTSW3 ROTSW4 ) 23 #define SW_MASK ( SW0 << SW_SHIFT ) #define SW_LOOP 1000 /* */ 26 #define SW_COUNT 100 /* */ void RotSwInit(void); 29 unsigned char RotSwGet(void); void SwInit(void); 32 unsigned char SwGet(void); 33 void SwWaitPush(void); 34 void SwWaitDetach(void); 194

31 #endif End Of List sw.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :sw.c */ 4 /* DESCRIPTION : */ 5 6 /* /* CPU TYPE :H8/3694F */ */ 7 /* */ 8 /* ROTSW1 P50 */ 9 /* ROTSW2 P51 */ 10 /* ROTSW3 P52 */ 11 /* ROTSW4 P53 */ 12 /* */ 13 /* */ 14 /* SW0 P14 */ 15 /* */ 16 /***********************************************************************/ #include "sw.h" /********************************************* *********************************************/ 23 void RotSwInit(void) 24 { 25 ROTSWIO &= (~SW_ROT_MASK); 26 ROTSWPU = SW_ROT_MASK;/* */ 27 } /********************************************* *********************************************/ unsigned char RotSwGet(void) { return ((~ROTSWDAT) & SW_ROT_MASK); 35 } /********************************************* *********************************************/ 40 void SwInit(void) 41 { 42 SWIO &= (~SW_MASK); 43 SWPU = SW_MASK; /* */ 44 } /********************************************* *********************************************/ unsigned char SwGet(void) 50 { 51 /* i: */ 52 /* count: */ 53 int i=0, count=0; /* old_state: */ /* new_state: */ unsigned char new_state, old_state=255; while((i<sw_loop) && (count<sw_count)){ 60 new_state = (SWDAT & SW_MASK); if(old_state == new_state){ count++; 63 }else{ 64 count = 0; 65 old_state = new_state; } i++; } return (((~new_state) & SW_MASK) >> SW_SHIFT); 70 } /********************************************* *********************************************/ 75 void SwWaitPush(void) 76 { 77 while(!swget()){ 78 ; 79 } 80 } /********************************************* 195

32 *********************************************/ 85 void SwWaitDetach(void) 86 { 87 while(swget()){ 88 ; 89 } 90 } 91 End Of List 03 ROTSW02.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :03_ROTSW02.c */ 4 /* DESCRIPTION : LED */ 5 6 /* /* CPU TYPE :H8/3694F */ */ 7 /* */ 8 /* ROTSW1 P50 */ 9 /* ROTSW2 P51 */ 10 /* ROTSW3 P52 */ 11 /* ROTSW4 P53 */ 12 /* */ 13 /***********************************************************************/ #include "led.h" 16 #include "sw.h" #define LED_MAX (LED0 LED1 LED2) 19 #define ROT_SW_WAIT_LOOP 0x7FFFFL void RotSwWaitLoop(unsigned char m) { unsigned long count; for(count=0; count<rot_sw_wait_loop*(m+1); count++){ 26 ; 27 } 28 } void main(void) { unsigned char i, led_data; LedInit(); /* LED */ */ while(1){ 38 for(led_data=0; led_data<=led_max; led_data++){ 35 RotSwInit(); /* 39 LedSet(led_data); 40 i=rotswget(); /* */ 41 RotSwWaitLoop(i); 42 } 43 } 44 } End Of List LED (sw.h) ROTSW01.c 196

33 #define ROTSWIO IO.PCR5 7 #define ROTSWDAT IO.PDR5.BYTE 8 #define ROTSWPU IO.PUCR5.BYTE (sw.c) ROTSW01.c (03 ROTSW02.c) 16 #include "sw.h" sw.h include 19 #define ROT_SW_WAIT_LOOP 0x7FFFFL void RotSwWaitLoop(unsigned char m) 22 { 23 unsigned long count; for(count=0; count<rot_sw_wait_loop*(m+1); count++){ 26 ; 27 } 28 } led WaitLoop LED 0x7FFFF RotSwWaitLoop (0-255)+1 for 1 0 WaitLoop 35 RotSwInit(); /* */ RotSwInit 197

34 i=rotswget(); /* */ 41 RotSwWaitLoop(i); 40 (0-15 ) RotSwWaitLoop LED RotSwWaitLoop(RotSwGet()); 1 i () LED 0 1 sw.hsw.c e03 ROTSW02 198

35 199 IRQ IRQ(Interrupt ReQuest) LED WaitLoop WaitLoop for CPU LED LED WaitLoop for CPU WaitLoop

36 8.1. IRQ(INTERRUPT REQUEST) 8. IRQ 10 H8/3694F 8.1 H8/3694F 200

37 8. IRQ 8.1. IRQ(INTERRUPT REQUEST) 8.1 RES 0 H 0000 H H 0002 H 000D NMI 7 H 000E H 000F CPU #0 8 H 0010 H 0011 #1 9 H 0012 H 0013 #2 10 H 0014 H 0015 #3 11 H 0016 H H 0018 H 0019 IRQ0 14 H 001C H 001D IRQ1 15 H 001E H 001F IRQ2 16 H 0020 H 0021 IRQ3 17 H 0022 H 0023 WKP 18 H 0024 H H 0026 H H 0028 H 0029 W 21 H 002A H 002B B B C C D D 22 H 002C H 002D SCI3 23 H 002E H 002F IIC2 24 H 0030 H 0031 NACK A/D A/D 25 H 0032 H NMI IRQ0 IRQ3 IRQ0 IRQ3 () NMI NMI 201

38 8.1. IRQ(INTERRUPT REQUEST) 8. IRQ CPU P H8/3694 H 0000 H HEW () IRQ P P14 IRQ0 P14 / IRQ0 SW1 GND 8.1 IRQ0 ONOFF IRQ0(P14) HIGHLOW ( 8.2) P ONOFF IRQ0 HIGHLOW P14/IRQ0 ON OFF LOW(0) HIGH(1) P

39 8. IRQ 8.1. IRQ(INTERRUPT REQUEST) 1(PMR1) P14 IRQ0 1(IEGR1) 1(IENR1) 1(IRR1) 8.3 1(IEGR1) H FFF2 1(IENR1) H FFF4 1(IRR1) H FFF6 1(IEGR1) IEGR1 NMIIRQ3 IRQ0 LOW(0) HIGH(1) HIGH(1) LOW(0) ( 8.2) HIGH(1) LOW(0) 立ち上がり 立ち下り

40 8.1. IRQ(INTERRUPT REQUEST) 8. IRQ 8.4 1(IEGR1) R/W 7 NMIEG 0 R/W NMI 0NMI 1NMI IEG3 0 R/W IRQ3 0IRQ3 1IRQ3 2 IEG2 0 R/W IRQ2 0IRQ2 1IRQ2 1 IEG1 0 R/W IRQ1 0IRQ1 1IRQ1 0 IEG0 0 R/W IRQ0 0IRQ0 1IRQ0 1(IENR1) IENR1 A 8.5 1(IENR1) R/W 7 IENDT 0 R/W 6 IENTA 0 R/W A A 5 IENWP 0 R/W W KP 5 W KP IEN3 0 R/W IRQ3 IRQ3 2 IEN2 0 R/W IRQ2 IRQ2 1 IEN1 0 R/W IRQ1 IRQ1 0 IEN0 0 R/W IRQ0 IRQ0 () 204

41 8. IRQ 8.1. IRQ(INTERRUPT REQUEST) I 1 1(IRR1) IRR1 A IRQ3 IRQ (IRR1) R/W 7 IRRDT 0 R/W [] SYSCR2 DTON 1 [] 0 6 IRRTA 0 R/W A [] A [] IRRI3 0 R/W IRQ3 [] IRQ3 [] 0 2 IRRI2 0 R/W IRQ2 [] IRQ2 [] 0 1 IRRI1 0 R/W IRQ1 [] IRQ1 [] 0 3 IRRI0 0 R/W IRQ0 [] IRQ0 [] 0 (CCR) (CCR) CPU ( 8.3) 205

42 8.1. IRQ(INTERRUPT REQUEST) 8. IRQ CCR I UI H U N Z V C I : 割り込みマスクビット UI : ユーザビット / 割り込みマスクビット H : ハーフキャリフラグ U : ユーザビット N : ネガティブフラグ Z : ゼロフラグ V : オーバーフローフラグ C : キャリフラグ 8.3 (CCR) (I ) 1 NMI I I 1 CPU C HEW machine.h set imask ccr (CCR) ( [2]P283 ) void set_imask_ccr (unsigned char mask) (CCR) (I) mask (0 1) <machine.h> mask (0 1) #include <machine.h> /* <machine.h> */ void main(void) { set_imask_ccr(0); /* */ } 206

43 8. IRQ 8.1. IRQ(INTERRUPT REQUEST) P.172 IRQ0 (iodefine.h ) IRQ0 (iodefine.h ) union un_iegr1 { /* union IEGR1 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char NMIEG:1; /* NMIEG */ unsigned char :3; /* */ unsigned char IEG3 :1; /* IEG3 */ unsigned char IEG2 :1; /* IEG2 */ unsigned char IEG1 :1; /* IEG1 */ unsigned char IEG0 :1; /* IEG0 */ } BIT; /* */ }; /* */ union un_ienr1 { /* union IENR1 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char IENDT:1; /* IENDT */ unsigned char IENTA:1; /* IENTA */ unsigned char IENWP:1; /* IENWP */ unsigned char :1; /* */ unsigned char IEN3 :1; /* IEN3 */ unsigned char IEN2 :1; /* IEN2 */ unsigned char IEN1 :1; /* IEN1 */ unsigned char IEN0 :1; /* IEN0 */ } BIT; /* */ }; /* */ union un_irr1 { /* union IRR1 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char IRRDT:1; /* IRRDT */ unsigned char IRRTA:1; /* IRRTA */ unsigned char :2; /* */ unsigned char IRRI3:1; /* IRRI3 */ unsigned char IRRI2:1; /* IRRI2 */ unsigned char IRRI1:1; /* IRRI1 */ unsigned char IRRI0:1; /* IRRI0 */ } BIT; /* */ }; /* */ #define IEGR1 (*(volatile union un_iegr1 *)0xFFF2) /* IEGR1 Address*/ #define IENR1 (*(volatile union un_ienr1 *)0xFFF4) /* IENR1 Address*/ #define IRR1 (*(volatile union un_irr1 *)0xFFF6) /* IRR1 Address*/ () IRQ0 OFF 1 (P ) 1(IRR1) IRQ0 (P ) lib LED P

44 8.1. IRQ(INTERRUPT REQUEST) 8. IRQ 1. iodefine.h 2. led.c 3. lib 04 IRQ01.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :04_IRQ01.c */ 4 /* DESCRIPTION : LED1 */ 5 6 /* /* CPU TYPE :H8/3694F */ */ 7 /* */ 8 /* SW0 P14/IRQ0 */ 9 /* */ 10 /***********************************************************************/ #include "led.h" 13 #include "iodefine.h" void IrqInit(void) 16 { 17 IO.PMR1.BIT.IRQ0=1; /* IRQ0 */ 18 IO.PUCR1.BIT.B4=1; /* */ 19 IEGR1.BIT.IEG0=0; /* IRQ0 */ 20 IENR1.BIT.IEN0=0; /* IRQ0 */ 21 IRR1.BIT.IRRI0=0; /* IRQ0 */ 22 } void main(void) 25 { 26 LedInit(); /* LED */ 27 IrqInit(); /* IRQ */ while(irr1.bit.irri0==0){ /* IRQ0 */ ; 30 } 31 LedSet( LED1 ); /* LED1 */ while(1){ ; } } End Of List LED LED1 () (04 IRQ01.c) 17 IO.PMR1.BIT.IRQ0=1; /* IRQ0 */ 18 IO.PUCR1.BIT.B4=1; /* */ IRQ P14 IRQ IEGR1.BIT.IEG0=0; /* IRQ0 */ 20 IENR1.BIT.IEN0=0; /* IRQ0 */ 21 IRR1.BIT.IRRI0=0; /* IRQ0 */ 208

45 8. IRQ 8.1. IRQ(INTERRUPT REQUEST) 19 IRQ0 20 1(IRR1) IRQ IrqInit(); /* IRQ */ IRQ0 28 while(irr1.bit.irri0==0){ /* IRQ0 */ 29 ; 30 } 1(IRR1) IRQ () P HEW intprg.c intprg.c() // vector 14 IRQ0 interrupt(vect=14) void INT_IRQ0(void) {/* sleep(); */} /* sleep(); */ IRQ0 intprg.c main intprg.c() // vector 14 IRQ0 // interrupt(vect=14) void INT_IRQ0(void) {/* sleep(); */} 209

46 8.1. IRQ(INTERRUPT REQUEST) 8. IRQ 04 IRQ02.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :04_IRQ02.c */ 4 /* DESCRIPTION : LED */ 5 6 /* /* CPU TYPE :H8/3694F */ */ 7 /* */ 8 /* SW0 P14/IRQ0 */ 9 /* */ 10 /***********************************************************************/ #include <machine.h> 13 #include "led.h" 14 #include "iodefine.h" void IrqInit(void) 17 { 18 set_imask_ccr(1); /* */ 19 IO.PMR1.BIT.IRQ0=1; /* IRQ0 */ 20 IO.PUCR1.BIT.B4=1; /* */ 21 IEGR1.BIT.IEG0=0; /* IRQ0 */ 22 IENR1.BIT.IEN0=1; /* IRQ0 */ 23 IRR1.BIT.IRRI0=0; /* IRQ0 */ 24 set_imask_ccr(0); /* */ 25 } void main(void) 28 { 29 LedInit(); /* LED */ 30 IrqInit(); /* IRQ */ while(1){ ; 33 } 34 } interrupt(vect=14) void INT_IRQ0(void) 37 { 38 LedSet( LED0 LED1 LED2 ); /* LED */ 39 } End Of List LED LED ( ) (04 IRQ02.c) 12 #include <machine.h> machine.h include 18 set_imask_ccr(1); /* */ 24 set_imask_ccr(0); /* */ 210

47 8. IRQ 8.1. IRQ(INTERRUPT REQUEST) 18 set imask ccr (CCR) (I) 1 24 (I) 0 22 IENR1.BIT.IEN0=1; /* IRQ0 */ 1(IENR1) IRQ0 (P ) (CCR) (I) 36 interrupt(vect=14) void INT_IRQ0(void) 37 { 38 LedSet( LED0 LED1 LED2 ); /* LED */ 39 } 36 IRQ () IRQ0 LED LED LED 2 IRQ0 e04 IRQ02 211

48

49 213 A A LED ONOFF () MHz MHz 2 10MHz4 5MHz 8 16 H8/3694F 8 A 8 V 16 W A V A 8 (256) CPU kHz 1s0.5s0.25s31.25ms V () ONOFF

50 9.1. A 9. A (PWM) (TMOV) ONOFF A V W A A A kHz 4 (1s0.5s0.25s31.25ms) MB-H8A kHz ( ) CPU 20MHz 1 LED LED P LED A A(TMA) A(TCA) 214

51 9. A 9.1. A 9.1 A A(TMA) H FFA6 A(TCA) H FFA7 A(TMA) A 9.2 A(TMA) R/W 7 TMA7 0 R/W TMA6 0 R/W TMOW 5 TMA5 0 R/W 000ϕ/32 001ϕ/16 010ϕ/8 011ϕ/4 100ϕW/32 (ϕw=32.768khz) 101ϕW/16 110ϕW/8 111ϕW/ TMA3 0 R/W 3 0 S 1 W 2 TMA2 0 R/W TMA1 0 R/W TMA3 0 TCA 0 TMA0 0 R/W 000ϕ/ ϕ/ ϕ/ ϕ/ ϕ/ ϕ/ ϕ/32 111ϕ/8 TMA3 1 (ϕw KHz ) 0001s s s s 1xxPSW TCA 215

52 9.1. A 9. A A(TCA) TCA 8 () TMA TMA3 TMA0 TCA CPU TCA (256 ) 1(IRR1) IRRTA 1 TCA TMA TMA3 TMA2 (11) 2 TCA 0x00 A (iodefine.h ) A A (iodefine.h ) struct st_ta { /* struct TA */ union { /* TMA */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char CKSO:3; /* CKSO */ unsigned char :1; /* */ unsigned char CKSI:4; /* CKSI */ } BIT; /* */ } TMA; /* */ unsigned char TCA; /* TCA */ }; /* */ #define TA (*(volatile struct st_ta *)0xFFA6) /* TA Address*/ () () 1 A(TCA) MB-H8A 20MHz Hz A(TCA) MHz A(TCA) 216

53 9. A 9.1. A A(TCA) (20MHz ) 20MHz (Hz) (s) TCA x x 0.1s x x = 0.1 x = (P.207 P ) 05 TMRA01.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :05_TMRA01.c */ 4 /* DESCRIPTION : A 1 LED */ 5 /* CPU TYPE :H8/3694F */ 6 /* */ 7 /* LED0 P85 */ 8 /* LED1 P86 */ 9 /* LED2 P87 */ 10 /* */ 11 /***********************************************************************/ #include "led.h" 14 #include "iodefine.h" #define LED_MAX (LED0 LED1 LED2) /**************************************** 19 A (8192 ) 20 ****************************************/ 21 void TimerAInit(void) 22 { 23 TA.TMA.BIT.CKSI=0; /* 8192 */ 24 } /**************************************** 27 TCA () 28 ****************************************/ 29 void TCAInit(void) 30 { 31 TA.TMA.BIT.CKSI=0xC; /* TCA */ 32 } /**************************************** 35 A 1 (0.1 *10) 36 ****************************************/ 37 void Wait1S(void) 38 { 217

54 9.1. A 9. A 39 int ta_count=0; while(ta_count<10){ while(ta.tca<244){ /* 0.1S */ ; } ta_count++; 46 TCAInit(); 47 TimerAInit(); 48 } 49 } /**************************************** 52 main 53 ****************************************/ 54 void main(void) 55 { 56 unsigned char led_data; 57 LedInit(); /* LED */ 58 TimerAInit(); /* TimerA */ while(1){ for(led_data=0; led_data<=led_max; led_data++){ 61 Wait1S(); 62 LedSet( led_data ); /* LED */ 63 } 64 } 65 } End Of List LED 1 LED (05 TMRA01.c) 21 void TimerAInit(void) 22 { 23 TA.TMA.BIT.CKSI=0; /* 8192 */ 24 } A A(TMA) TMA3 TMA0 4 0 iodefine.h A (P.216) 4 TA.TMA.BIT.CKSI void TCAInit(void) 30 { 31 TA.TMA.BIT.CKSI=0xC; /* TCA */ 32 } A(TMA) P TMA3=1TMA2=1TMA1=0TMA0=0 A(TMA) 4 TA.TMA.BIT.CKSI (P.216 )0xC 218

55 9. A 9.1. A 41 while(ta_count<10){ 42 while(ta.tca<244){ /* 0.1S */ 43 ; 44 } 45 ta_count++; 46 TCAInit(); 47 TimerAInit(); 48 } A A(TCA) TCAInit A(TCA) 47 A () 1 A A(TCA) ( 256 ) A(TCA)

56 9.1. A 9. A A(TCA) (20MHz ) 20MHz (Hz) (s) TCA 256 x 256 x 1s x x 256 = 1 x = intprg.c INT TimerA // vector 19 Timer A Overflow // interrupt(vect=19) void INT_TimerA(void) {/* sleep(); */} IRQ (P.199) 1(IENR1) 1(IRR1) 220

57 9. A 9.1. A 9.3 1(IENR1) H FFF4 1(IRR1) H FFF6 1(IENR1) IENR1 A 9.4 1(IENR1) R/W 7 IENDT 0 R/W 6 IENTA 0 R/W A A 5 IENWP 0 R/W W KP 5 W KP IEN3 0 R/W IRQ3 IRQ3 2 IEN2 0 R/W IRQ2 IRQ2 1 IEN1 0 R/W IRQ1 IRQ1 0 IEN0 0 R/W IRQ0 IRQ0 () I 1 1(IRR1) IRR1 A IRQ3 IRQ0 221

58 9.1. A 9. A 9.5 1(IRR1) R/W 7 IRRDT 0 R/W [] SYSCR2 DTON 1 [] 0 6 IRRTA 0 R/W A [] A [] IRRI3 0 R/W IRQ3 [] IRQ3 [] 0 2 IRRI2 0 R/W IRQ2 [] IRQ2 [] 0 1 IRRI1 0 R/W IRQ1 [] IRQ1 [] 0 3 IRRI0 0 R/W IRQ0 [] IRQ0 [] 0 (CCR) machine.h set imask ccr (CCR) ( [2]P283 ) void set_imask_ccr (unsigned char mask) (CCR) (I) mask (0 1) <machine.h> mask (0 1) #include <machine.h> /* <machine.h> */ void main(void) { set_imask_ccr(0); /* */ } 222

59 9. A 9.1. A A (iodefine.h ) A (iodefine.h ) A (iodefine.h ) union un_ienr1 { /* union IENR1 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char IENDT:1; /* IENDT */ unsigned char IENTA:1; /* IENTA */ unsigned char IENWP:1; /* IENWP */ unsigned char :1; /* */ unsigned char IEN3 :1; /* IEN3 */ unsigned char IEN2 :1; /* IEN2 */ unsigned char IEN1 :1; /* IEN1 */ unsigned char IEN0 :1; /* IEN0 */ } BIT; /* */ }; /* */ union un_irr1 { /* union IRR1 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char IRRDT:1; /* IRRDT */ unsigned char IRRTA:1; /* IRRTA */ unsigned char :2; /* */ unsigned char IRRI3:1; /* IRRI3 */ unsigned char IRRI2:1; /* IRRI2 */ unsigned char IRRI1:1; /* IRRI1 */ unsigned char IRRI0:1; /* IRRI0 */ } BIT; /* */ }; /* */ #define IENR1 (*(volatile union un_ienr1 *)0xFFF4) /* IENR1 Address*/ #define IRR1 (*(volatile union un_irr1 *)0xFFF6) /* IRR1 Address*/ A 1 LED 05 TMRA02.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :05_TMRA02.c */ 4 /* DESCRIPTION : A 1 LED () */ 5 /* CPU TYPE :H8/3694F */ 6 /* */ 7 /* LED0 P85 */ 8 /* LED1 P86 */ 9 /* LED2 P87 */ 10 /* */ 11 /***********************************************************************/ #include <machine.h> 14 #include "led.h" 15 #include "iodefine.h" #define LED_MAX (LED0 LED1 LED2) static int tma_flag=0; /**************************************** 22 A (4096 ) 23 ****************************************/ 24 void TimerAInit(void) 25 { 26 set_imask_ccr(1); 27 TA.TMA.BIT.CKSI=1; /* 4096 */ IENR1.BIT.IENTA=1; /* A */ IRR1.BIT.IRRTA=0; 30 set_imask_ccr(0); 31 } /**************************************** 34 main 35 ****************************************/ 223

60 9.1. A 9. A 36 void main(void) 37 { 38 unsigned char led_data; 39 LedInit(); /* LED */ 40 TimerAInit(); /* TimerA */ while(1){ for(led_data=0; led_data<=led_max; led_data++){ 43 while(tma_flag<19){ 44 ; } tma_flag=0; 47 LedSet( led_data ); /* LED */ 48 } 49 } 50 } /**************************************** 53 A 54 ****************************************/ 55 //vector 19 Timer A Overflow 56 interrupt(vect=19) void INT_TimerA(void) { tma_flag++; 59 IRR1.BIT.IRRTA=0; 60 } End Of List 1 (05 TMRA02.c) 13 #include <machine.h> machine.h include 19 static int tma_flag=0; set_imask_ccr(1); 30 set_imask_ccr(0); 26 set imask ccr (CCR) (I) 1 30 (I) 0 set imask ccr P

61 9. A 9.1. A 27 TA.TMA.BIT.CKSI=1; /* 4096 */ (TMA) P.216 CKSI IENR1.BIT.IENTA=1; /* A */ 29 IRR1.BIT.IRRTA=0; A 1(IENR1) P (IRR1) P (05 TMRA02.c) 28 A 29 A (0 ) A (1 ) 40 TimerAInit(); /* TimerA */ A 43 while(tma_flag<19){ 44 ; 45 } 46 tma_flag=0; tma flag interrupt(vect=19) void INT_TimerA(void) 57 { 58 tma_flag++; 59 IRR1.BIT.IRRTA=0; 60 } A P.220 INT TimerA 58 tma flag 59 A (0 ) 225

62 9.1. A 9. A A () A LED 2048 e05 TMRA02 226

63 V() 10.1 V V 8 2 V A V Hz 18000Hz ( 3 ) 440Hz ( ) 10 9 ( ) 8 7 ( ) ( ) 3 2 ( ) 1

64 10.1. V 10. V () 12 1 (12 ) = /12 = () 2 2 (2 ) PKM13EPYH4000-A0 2 khz ( 10.1) V V (TMOV) 228

65 10. V () V P76 / TMOV R1 1K SP1 GND V 10.1 V V TMOV V V V(TCNTV) A(TCORA) B(TCORB) V0(TCRV0) V(TCSRV) V1(TCRV1) 229

66 10.1. V 10. V () 10.2 V V(TCNTV) H FFA4 A(TCORA) H FFA2 B(TCORB) H FFA3 V0(TCRV0) H FFA0 V(TCSRV) H FFA1 V1(TCRV1) H FFA5 V(TCNTV) TCNTV 8 (1 ) TCRV0 CKS2 CKS0 TCNTV CPU TCNTV A B TCRV0 CCLR1 CCLR0 TCNTV TCSRV OVF 1 TCNTV H 00 V(TCNTV) AB(TCORATCORB) TCORA TCORB TCORA 8 TCORA TCNTV TCSRV CMFA 1 TCRV0 CMIEA 1 CPU A TCSRV OS3 OS0 TMOV TCORATCORB H FF V V (TMOV) A(TCORA) B(TCORB) V0(TCRV0) TCRV0 TCNTV TCNTV 230

67 10. V () V 10.3 V0(TCRV0) R/W 7 CMIEB 0 R/W B TCSRV CMFB 6 CMIEA 0 R/W A TCSRV CMFA 5 OVIE 0 R/W TCSRV OVF 4 CCLR1 0 R/W CCLR0 0 R/W TCNTV A 10 B 11TMRIV TCNTV TCRV1 TRGE 2 CKS2 0 R/W CKS1 0 R/W TCRV1 ICKS0 TCNTV 0 CKS0 0 R/W TCNTV TCRV0 TCRV CKS2 CKS1 CKS0 ICKS ϕ/ ϕ/ ϕ/ ϕ/ ϕ/ ϕ/ V(TCSRV) TCSRV 231

68 10.1. V 10. V () 10.5 V(TCSRV) R/W 7 CMFB 0 R/W B [] TCNTV TCORB [] CMFB 1 CMFB CMFB 0 6 CMFA 0 R/W A [] TCNTV TCORA [] CMFB 1 CMFA CMFA 0 5 OVF 0 R/W [] TCNTV H FF H 00 [] OVF 1 OVF OVF OS3 0 R/W OS2 0 R/W TCORB TCNTV TMOV OS1 0 R/W OS0 0 R/W TCORA TCNTV TMOV V1(TCRV1) TCRV1 TRGV TRGV TCNTV 232

69 10. V () V 10.6 V1(TCRV1) R/W TVEG1 0 R/W TRGV 3 TVEG0 0 R/W TRGV 00TRGV TRGE 0 R/W TVEG1TVEG0 TCNTV 0TRGV TCNTV TCNTV TCNTV 1TRGV TCNTV TCNTV TCNTV ICKS0 0 R/W 0 TCRV0 CKS2CKS0 TCNTV 10.4 I/O P76 TMOV 10.7 P76/TMOV TCSRV PCR7 OS3 OS0 PCR P76 1 P76 X TMOV V (iodefine.h ) V (iodefine.h ) 233

70 10.1. V 10. V () V (iodefine.h ) struct st_tv { /* struct TV */ union { /* TCRV0 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char CMIEB:1; /* CMIEB */ unsigned char CMIEA:1; /* CMIEA */ unsigned char OVIE :1; /* OVIE */ unsigned char CCLR :2; /* CCLR */ unsigned char CKS :3; /* CKS */ } BIT; /* */ } TCRV0; /* */ union { /* TCSRV */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char CMFB:1; /* CMFB */ unsigned char CMFA:1; /* CMFA */ unsigned char OVF :1; /* OVF */ unsigned char :1; /* */ unsigned char OS :4; /* OS */ } BIT; /* */ } TCSRV; /* */ unsigned char TCORA; /* TCORA */ unsigned char TCORB; /* TCORB */ unsigned char TCNTV; /* TCNT */ union { /* TCRV1 */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access */ unsigned char :3; /* */ unsigned char TVEG:2; /* TVEG */ unsigned char TRGE:1; /* TRGE */ unsigned char :1; /* */ unsigned char ICKS:1; /* ICKS */ } BIT; /* */ } TCRV1; /* */ }; /* */ #define TV (*(volatile struct st_tv *)0xFFA0) /* TV Address*/ () (440Hz) ONOFF ( 10.2) HIGH LOW 矩形波 10.2 ONOFF 1 ON OFF () 20MHz Hz A(TCORA) 234

71 10. V () V A(TCORA) (20MHz Hz ) 20MHz (Hz) 128 TCORA x x 880 x x = 880 x = A 440Hz 06 TMRV01.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :06_TMRV01.c */ 4 /* DESCRIPTION : V */ 5 /* CPU TYPE :H8/3694F */ 6 /* */ 7 /* SP P76/TMOV */ 8 /* */ 9 /***********************************************************************/ #include "iodefine.h" /**************************************** 14 V (128 )TCORA: ****************************************/ 16 void TimerVInit(void) 17 { 18 TV.TCRV0.BIT.CKS=3; 19 TV.TCRV1.BIT.ICKS=1; /* 128 */ 20 TV.TCRV0.BIT.CCLR=1; /* A */ 21 TV.TCSRV.BIT.OS=3; /* A */ 22 TV.TCORA=177; /* 880Hz */ 23 } /**************************************** 26 main 27 ****************************************/ 28 void main(void) 29 { 30 TimerVInit(); /* TimerV */ while(1){ ; } } End Of List 235

72 10.1. V 10. V () ( 440Hz ) 10.3 P76 441Hz 10.3 () (06 TMRV01.c) 18 TV.TCRV0.BIT.CKS=3; 19 TV.TCRV1.BIT.ICKS=1; /* 128 */ P P.234 V 2 ϕ/ TV.TCRV0.BIT.CCLR=1; /* A */ P A TCNTV A 21 TV.TCSRV.BIT.OS=3; /* A */ P P.234 V TCORA TCNTV TMOV 22 TV.TCORA=177; /* 880Hz */ 236

73 10. V () V 880Hz ONOFF 880Hz 440Hz 30 TimerVInit(); /* TimerV */ TimerV TimerVInit P76 440Hz () 440Hz e06 TMRV () ON OFF (P ) 16 music.h 237

74 10.1. V 10. V () 10.8 () = 16 L1 ` 2 `< 2 12 F2 2 < 2 8 L2 ˇ` 4 ` > 4 6 F4 ˇ 4 > 4 4 L4 ˇ ( 8? 8 2 L8 ˇ ) 16 1 L : () G ˇ do0 # G 4ˇ dos0 238

75 10. V () V 10.9: () G ˇ re0 # G 4ˇ res0 G ˇ mi0 G ˇ fa0 # G4ˇ fas0 G ˇ so0 # G4ˇ sos0 G ˇ ra0 # G4ˇ ras0 239

76 ˇ ˇ ˇ ˇ ˇ ˇ ˇ ˇ ˇ ˇ ˇ ˇ ˇ ˇ V 10. V () 10.9: () G ˇ si0 G ˇ do1 0 {re0,l4} 2 {0,L2} P P G 4 4 ˇ ˇ ˇ ˇ ˇ ˇ ˇ G G ˇ ˇ ˇ ˇ ˇ ˇ ˇ ˇ ˇ `> 240

77 10. V () V music data 1 // 2 3 #define NOTEMAX const struct NoteData Note[NOTEMAX]={ 6 {do0,l4},{re0,l4},{mi0,l2},{do0,l4},{re0,l4},{mi0,l2}, 7 {so0,l4},{mi0,l4},{re0,l4},{do0,l4},{re0,l4},{mi0,l4},{re0,l2}, 8 {do0,l4},{re0,l4},{mi0,l2},{do0,l4},{re0,l4},{mi0,l2}, 9 {so0,l4},{mi0,l4},{re0,l4},{do0,l4},{re0,l4},{mi0,l4},{do0,l2}, 10 {so0,l4},{so0,l4},{mi0,l4},{so0,l4},{ra0,l4},{ra0,l4},{so0,l2}, 11 {mi0,l4},{mi0,l4},{re0,l4},{re0,l4},{do0,f2},{ 0,L4} 12 }; End Of List (music data) 3 #define NOTEMAX NOTEMAX 5 const struct NoteData Note[NOTEMAX]={ 12 }; struct NoteData Note 3 NOTEMAX 39 6 {do0,l4},{re0,l4},{mi0,l2},{do0,l4},{re0,l4},{mi0,l2}, 2 P () 241

78 10.1. V 10. V () () V A TEMPO() 50ms A mS TEMPO 30 TEMPO 50ms V 128 H8 3694F (H8/3694F ) music.h SP P76/TMOV **************************************************************** void MusicInit(void); : #include"music.h" void MusicInit(void); **************************************************************** void StopMusic(void); : #include"music.h" void StopMusic(void); **************************************************************** void StartMusic(void); : #include"music.h" void StartMusic(void); **************************************************************** A P.220 intprg.c INT TimerA 242

79 10. V () V intprg.c INT TimerA // vector 19 Timer A Overflow // interrupt(vect=19) void INT_TimerA(void) {/* sleep(); */} music.h 1 #ifndef _MUSIC_H_ 2 #define _MUSIC_H_ 3 4 /* */ 5 /* music.h */ 6 /* */ 7 /* */ 8 /* SP P76/TMOV */ 9 /* */ 10 /* */ // () 13 // 14 //TEMPO:0.05s, L1:1.6s 15 #define TEMPO 30 /* L1 */ 16 #define L1 32*TEMPO // 17 #define L2 (L1/2) //2 18 #define L4 (L1/4) //4 19 #define L8 (L1/8) //8 20 #define L16 (L1/16) //16 21 #define L32 (L1/32) //32 22 #define F2 ((L1*3)/4) // 2 23 #define F4 ((L1*3)/8) // 4 24 #define L3 (L4/3) //3 25 #define L6 (L4/6) // // () 28 #define do0 149 // 29 #define dos0 141 //# 30 #define re0 133 // 31 #define res0 126 //# 32 #define mi0 119 // 33 #define fa0 112 // 34 #define fas0 106 //# 35 #define so0 100 // 36 #define sos0 94 //# 37 #define ra0 89 // 880Hz 38 #define ras0 84 //# 39 #define si0 79 // 40 #define do1 75 // 41 #define dos1 70 //# 42 #define re1 67 // 43 #define res1 63 //# 44 #define mi1 59 // 45 #define fa1 56 // 46 #define fas1 53 //# 47 #define so1 50 // 48 #define sos1 47 //# 49 #define ra1 44 // 1760Hz 50 #define ras1 42 //# 51 #define si1 40 // 52 #define do2 37 // // 55 struct NoteData{ 56 unsigned int Freq; // 57 unsigned int Len; // 58 }; void MusicInit(void); 61 void StopMusic(void); void StartMusic(void); #endif End Of List music.c 1 /***********************************************************************/ 2 /* */ 243

80 10.1. V 10. V () 3 /* FILE :music.c */ 4 /* DESCRIPTION : */ 5 /* CPU TYPE :H8/3694F */ 6 /* */ 7 /* SP P76/TMOV */ 8 /* */ 9 /***********************************************************************/ /* */ 12 #include<machine.h> 13 #include"iodefine.h" 14 #include "music.h" /* */ 15 #include "music_data" /* */ struct NoteData CNote; /* Freq, Len */ 18 int NoteCnt=0; /* */ 19 int ZeroCnt=30; /* 50ms 1.6mS */ 20 unsigned int fdata; /* */ 21 int note_max=notemax; /* */ /********************************************** 24 ( V) **********************************************/ void StopPwmTimer(void) { TV.TCSRV.BIT.OS=0; 29 } 30 void StartPwmTimer(void) 31 { 32 TV.TCSRV.BIT.OS=3; /* A */ } /********************************************** 35 ( A) **********************************************/ void StopLengthTimer(void) { TA.TMA.BIT.CKSI=0xC; } void StartLengthTimer(void) 42 { 43 TA.TMA.BIT.CKSI=5; /* 128 */ 44 } /********************************************** 47 20MHz 128 ( V) 48 P76/TMOV 49 **********************************************/ 50 void PwmTimerInit(void) 51 { 52 TV.TCRV0.BIT.CKS=3; 53 TV.TCRV1.BIT.ICKS=1; /* 128 */ 54 TV.TCRV0.BIT.CCLR=1; /* A */ 55 TV.TCSRV.BIT.OS=3; /* A */ 56 } /********************************************** ms 60 20MHz 128 ( A) **********************************************/ void LengthTimerInit(void) { set_imask_ccr(1); IENR1.BIT.IENTA=1; /* A */ IRR1.BIT.IRRTA=0; 67 set_imask_ccr(0); 68 } /********************************************** **********************************************/ void SetData(unsigned int freq) 74 { 75 TV.TCORA=freq; /* ON, OFF */ 76 } /********************************************** **********************************************/ void ClearLegthFlag(void) { IRR1.BIT.IRRTA=0; 84 } /* () */ /**********************************************

81 10. V () V **********************************************/ void StopMusic(void){ 96 StopPwmTimer(); 97 StopLengthTimer(); 98 } void StartMusic(void){ 101 StartPwmTimer(); 102 StartLengthTimer(); 103 } void SetInitData(void) 106 { 107 CNote=Note[NoteCnt]; 108 if(cnote.freq == 0){ 109 StopPwmTimer(); }else{ SetData(CNote.Freq); 112 StartPwmTimer(); 113 } 114 } /********************************************** **********************************************/ 119 void MusicInit(void) 120 { 121 PwmTimerInit(); 122 LengthTimerInit(); 123 SetInitData(); 124 StartLengthTimer(); 125 } /********************************************** 128 IMIA1 ()1.6ms **********************************************/ interrupt(vect=19) void INT_TimerA(void) { ClearLegthFlag(); 133 if(cnote.len>0){ 134 CNote.Len--; /* */ 135 }else if(notecnt<(note_max-1) && ZeroCnt>0){ /* */ if(zerocnt==50){ StopPwmTimer(); } ZeroCnt--; 140 }else if(notecnt<(note_max-1) && ZeroCnt<=0){ /* CNote.Len==0 */ 141 ZeroCnt=50; 142 NoteCnt++; 143 CNote=Note[NoteCnt]; 144 fdata=cnote.freq; /* Freq A0 */ 145 if(fdata==0){ /* 0 */ 146 StopPwmTimer(); /* A0 */ }else{ SetData(fdata); 149 StartPwmTimer(); 150 } 151 }else{ /* */ 152 StopMusic(); } } End Of List 06 TMRV02.c 1 /***********************************************************************/ 2 /* */ 3 /* FILE :06_TMRV02.c */ 4 /* DESCRIPTION : */ 5 /* CPU TYPE :H8/3694F */ 6 /* */ 7 /* SP P76/TMOV */ 8 /* */ 9 /***********************************************************************/ #include "music.h" /* */ void main(void) 14 { /********************************************** **********************************************/ 19 MusicInit(); while(1){ 245

82 10.1. V 10. V () 22 ; 23 } 24 } 25 End Of List music data 1 // 2 3 #define NOTEMAX const struct NoteData Note[NOTEMAX]={ 6 {do0,l4},{re0,l4},{mi0,l2},{do0,l4},{re0,l4},{mi0,l2}, 7 {so0,l4},{mi0,l4},{re0,l4},{do0,l4},{re0,l4},{mi0,l4},{re0,l2}, 8 {do0,l4},{re0,l4},{mi0,l2},{do0,l4},{re0,l4},{mi0,l2}, 9 {so0,l4},{mi0,l4},{re0,l4},{do0,l4},{re0,l4},{mi0,l4},{do0,l2}, 10 {so0,l4},{so0,l4},{mi0,l4},{so0,l4},{ra0,l4},{ra0,l4},{so0,l2}, 11 {mi0,l4},{mi0,l4},{re0,l4},{re0,l4},{do0,f2},{ 0,L4} 12 }; End Of List (music.h) 15 #define TEMPO 30 /* L1 */ 16 #define L1 32*TEMPO // 17 #define L2 (L1/2) //2 18 #define L4 (L1/4) //4 19 #define L8 (L1/8) //8 20 #define L16 (L1/16) //16 21 #define L32 (L1/32) //32 22 #define F2 ((L1*3)/4) // 2 23 #define F4 ((L1*3)/8) // 4 24 #define L3 (L4/3) //3 25 #define L6 (L4/6) //6 P A A 1.64mS L1 = 32 T EMP O = = =

83 10. V () V 1.6 (1574m ) 1.6 TEMPO #define do0 149 // 52 #define do2 37 // // 55 struct NoteData{ 56 unsigned int Freq; // 57 unsigned int Len; // 58 }; struct NoteData Freq Len 60 void MusicInit(void); 61 void StopMusic(void); 62 void StartMusic(void); MusicInit StopMusic StartMusic (music.c) 26 void StopPwmTimer(void) 27 { 28 TV.TCSRV.BIT.OS=0; 29 } 30 void StartPwmTimer(void) 31 { 32 TV.TCSRV.BIT.OS=3; /* A */ 33 } 247

84 10.1. V 10. V () TV.TCSRV.BIT.OS V(TCSRV)(P ) 0-3 (P.233 ) 0-1 TCORA TCNTV TMOV 0 3 (ONOFF ) PWM PWM 37 void StopLengthTimer(void) 38 { 39 TA.TMA.BIT.CKSI=0xC; 40 } 41 void StartLengthTimer(void) 42 { 43 TA.TMA.BIT.CKSI=5; /* 128 */ 44 } TA.TMA.BIT.CKSI A(TMA) (P ) 0-3 (P.216 ) P TMA3=1TMA2=1TMA1=0TMA0=0 A(TMA) 4 TA.TMA.BIT.CKSI 0xC A(TMA) TMA3 TMA void PwmTimerInit(void) 51 { 52 TV.TCRV0.BIT.CKS=3; 53 TV.TCRV1.BIT.ICKS=1; /* 128 */ 54 TV.TCRV0.BIT.CCLR=1; /* A */ 55 TV.TCSRV.BIT.OS=3; /* A */ 56 } ( V) P TV.TCSRV.BIT.OS 3 TV.TCRV1.BIT.ICKS P TCNTV A TV.TCRV0.BIT.CCLR 1 54 P TCORA TCNTV TMOV(P76) (0 1 ) TV.TCSRV.BIT.OS 3 248

85 10. V () V 62 void LengthTimerInit(void) 63 { 64 set_imask_ccr(1); 65 IENR1.BIT.IENTA=1; /* A */ 66 IRR1.BIT.IRRTA=0; 67 set_imask_ccr(0); 68 } A P.222 set imask ccr A (P ) 66 A (P ) A 20MHz ms 73 void SetData(unsigned int freq) 74 { 75 TV.TCORA=freq; /* ON, OFF */ 76 } V V TV.TCORA music.h 81 void ClearLegthFlag(void) 82 { 83 IRR1.BIT.IRRTA=0; 84 } A A (132 ) 95 void StopMusic(void){ 96 StopPwmTimer(); 97 StopLengthTimer(); 98 } StopMusic StopPwmTimer StopLengthTimer StopPwmTimer V 249

86 10.1. V 10. V () StopLengthTimer A 100 void StartMusic(void){ 101 StartPwmTimer(); 102 StartLengthTimer(); 103 } StartMusic StartPwmTimer StartLengthTimer StartPwmTimer V StartLengthTimer A 105 void SetInitData(void) 106 { 107 CNote=Note[NoteCnt]; 108 if(cnote.freq == 0){ 109 StopPwmTimer(); 110 }else{ 111 SetData(CNote.Freq); 112 StartPwmTimer(); 113 } 114 } SetInitData 107 SetInitData NoteCnt () CNote.Freq void MusicInit(void) 120 { 121 PwmTimerInit(); 122 LengthTimerInit(); 123 SetInitData(); 124 StartLengthTimer(); 125 } MusicInit 121 A PwmTimerInit 250

87 10. V () V 122 V LengthTimerInit 123 A 124 V StartLengthTimer 132 ClearLegthFlag(); 133 if(cnote.len>0){ 134 CNote.Len--; /* */ 135 } V 1.6ms intprg.c music.c intprg.c intprg.c // vector 19 Timer A Overflow interrupt(vect=19) void INT_TimerA(void) { IntTimerA(); } music.c IntTimerA CNote.Len 135 }else if(notecnt<(note_max-1) && ZeroCnt>0){ /* */ 136 if(zerocnt==50){ 137 StopPwmTimer(); 138 } 139 ZeroCnt--; 140 } 135 ZeroCnt ZeroCnt 50 (141 ) 1.6ms 50 = 80ms A }else if(notecnt<(note_max-1) && ZeroCnt<=0){ /* CNote.Len==0 */ 251

88 10.1. V 10. V () 141 ZeroCnt=50; 142 NoteCnt++; 143 CNote=Note[NoteCnt]; 144 fdata=cnote.freq; /* Freq A0 */ 145 if(fdata==0){ /* 0 */ 146 StopPwmTimer(); /* A0 */ 147 }else{ 148 SetData(fdata); 149 StartPwmTimer(); 150 } 151 } NoteCnt NoteCnt CNote 144 fdata fdata A A 151 }else{ /* */ 152 StopMusic(); 153 } ( A V) (06 TMRV02.c) 11 #include "music.h" /* */ music.h 19 MusicInit(); while(1){ 22 ; 23 } 252

89 10. V () V 19 MusicInit OS () e06 TMRV02 253

90

main01a.dvi

main01a.dvi Tutorial1A Tutorial1A TA 23 10 13 1. 1A 2 H8/36064 Vstone (VS-WRC003 TA RAM ROM 1B ROM (http://www.ac.ctrl.titech.ac.jp/ss2 2011/index.html 2. H8 High-performance Embedded Workshop (HEW HTerm ROM Flash

More information

MechLab.dvi

MechLab.dvi Rev. 1.11, Jan. 2010 mtanaka@ctrl.titech.ac.jp torii@ctrl.titech.ac.jp 0 5 0.1 3 310 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 0.2 : : : : : : : : : : : : : : : : : : : : : : : : :

More information

MechLab.dvi

MechLab.dvi Rev. 1.0, August 2009 mtanaka@ctrl.titech.ac.jp kashima@mei.titech.ac.jp 0 5 0.1 3 310... 5 0.2... 5 0.3... 6 0.4... 6 0.5... 6 0.6... 7 0.7... 7 0.8... 7 0.9... 8 1 9 1.1... 9 1.2 2... 9 1.3... 10 1.3.1...

More information

マイコンプログラミング講座

マイコンプログラミング講座 マイコンプログラミング講座 明治大学エレクトロニクス研究部武山文信 2008/03/04 & 2008/03/11 マイコンプログラミング講座 1 はじめに 回路ができてもプログラムが書けなければ意味がないソフトゼミで触れた部分は ソフトゼミの資料を見直すなどしてちょっと難しめに書いた気がするけど そこは口頭で補足ハードウェアマニュアル嫁ググれ 2008/03/04 & 2008/03/11 マイコンプログラミング講座

More information

( ) 2 3 A/D 1. Cygwin gcc make wget ( : ) 2. ( :h8300-elf Makefile)

( ) 2 3 A/D 1. Cygwin gcc make wget ( : ) 2. ( :h8300-elf Makefile) 6 2006 10 15 1 1 ( ) 2 3 A/D 1. Cygwin gcc make wget ( : ) 2. ( :h8300-elf Makefile) 2006 8 3 74VHC32 H8/3694 RADI-CON Reciever S + G Ch.1 Ch.3 Ch.5 OR1 OR2 FTIOA (P81) Ch.2 Ch.4 OR3 FTIOB (P82) Ch.6 OR4

More information

H8/3687グループ ハードウェアマニュアル

H8/3687グループ ハードウェアマニュアル 6 H8/3687 グループハードウェアマニュアル ルネサス 6 ビットシングルチップマイクロコンピュータ H8 ファミリ /H8/3H Tiny シリーズ Rev.5. 発行 :5 年 9 月 9 日 H8/3687N HD6483687G HD64N3687G H8/3687F HD64F3687 HD64F3687G H8/3687 HD6433687 HD6433687G H8/3686 HD6433686

More information

11.1. (RS-232C) 11. RS-232(Recommended Standard 232) RS-232C EIA-232-D/E TIA(Telecommunications Industry Association) ANSI/TIA/EIA-232-F-1997 USB 11.1

11.1. (RS-232C) 11. RS-232(Recommended Standard 232) RS-232C EIA-232-D/E TIA(Telecommunications Industry Association) ANSI/TIA/EIA-232-F-1997 USB 11.1 255 11 11.1 (RS-232C) C printf LED RS232C ( ) RS-232C 11.1.1 1 1 RS-232 RS-422 RS-485 USB(Universal Serial Bus) 11.1. (RS-232C) 11. RS-232(Recommended Standard 232) RS-232C EIA-232-D/E TIA(Telecommunications

More information

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /***************************************** 1 /******************************************************************************/ 2 /* IIC(Inter IC Bus) の制御 */ 3 /******************************************************************************/ 4 /*

More information

スライド 1

スライド 1 RX62N 周辺機能紹介 TMR 8 ビットタイマ ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ TMR の概要 プログラムサンプル (1) パルス出力機能 (8 ビットモード ) プログラムサンプル (2) インターバルタイマ機能 (16 ビット コンペアマッチカウントモード ) プログラムサンプルのカスタマイズ

More information

スライド 1

スライド 1 マイコンをはじめよう 割り込みを使おう 徳島大学大学院ソシオテクノサイエンス研究部 技術専門職員辻明典 連絡先 : 770-8506 徳島市南常三島町 2-1 TEL/FAX: 088-656-7485 E-mail::a-tsuji@is.tokushima-u.ac.jp 割り込みを使おう 第 8 回 2013/9/14(Sat) 10:00 11:30 2 本日の予定 1 割り込みについて 2

More information

1 1 TA, ,9 1. ( 2. TM TM GUI TM 1. P7-13 TM Notepad, Meadow, ( P109 ). 2. (shisaku01/sys test)

1 1 TA, ,9 1. (  2. TM TM GUI TM 1. P7-13 TM Notepad, Meadow, ( P109 ). 2. (shisaku01/sys test) 1 1 TA, 20 10 6,9 1. (http://www.cyb.mei.titech.ac.jp/2008ss2/main.htm) 2. TM TM GUI TM 1. P7-13 TM Notepad, Meadow, ( P109 ). 2. (shisaku01/sys test) H src c startup ncrt0 ss2.a30 sect30 ss2.inc 1 1 /

More information

‚æ4›ñ

‚æ4›ñ ( ) ( ) ( ) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 (OUS) 9 26 1 / 28 ( ) ( ) ( ) A B C D Z a b c d z 0 1 2 9 (OUS) 9

More information

PC Windows 95, Windows 98, Windows NT, Windows 2000, MS-DOS, UNIX CPU

PC Windows 95, Windows 98, Windows NT, Windows 2000, MS-DOS, UNIX CPU 1. 1.1. 1.2. 1 PC Windows 95, Windows 98, Windows NT, Windows 2000, MS-DOS, UNIX CPU 2. 2.1. 2 1 2 C a b N: PC BC c 3C ac b 3 4 a F7 b Y c 6 5 a ctrl+f5) 4 2.2. main 2.3. main 2.4. 3 4 5 6 7 printf printf

More information

スライド 1

スライド 1 RX62N 周辺機能紹介 DAC D/A Converter ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ DACの概要 データフォーマット 変換開始と変換時間 転送時間 プログラムサンプル 2 DAC の概要 3 機能概要 項目 内容 分解能 出力チャネル 消費電力低減機能 10 ビット 2 チャネル モジュールストップ状態への設定が可能

More information

Microsoft Word - T-AD16P.doc

Microsoft Word - T-AD16P.doc T-AD16P rev.1.0 取扱説明書 PC/104 バスシリーズ 16ビットADコンバータ差動 8ch シングルエンド16ch 各商品は 各社の商標 登録商標です ( 株 ) ティーエーシー各種制御用マイクロコンピュータ設計 製作 販売 この製品の外観及び仕様は品質改善のため 予告無く変更することがありますのでご了承下さい 600-8896 京都市下京区西七条西石ヶ坪町 66 電話 :075-311-7307

More information

GCC Developer Lite

GCC Developer Lite 1. GCC Developer Lite GNU GNU Linux GNU Microsoft Windows GNU Windows GCC Developer Lite GCC Developer Lite GNU Windows C Windows (H8 SH ) 2. 2-1. GNU GPL(GNU ) GNUTOOL GNU GPL GPL CD-R 2-2. GNUTOOL for

More information

C言語によるアルゴリズムとデータ構造

C言語によるアルゴリズムとデータ構造 Algorithms and Data Structures in C 4 algorithm List - /* */ #include List - int main(void) { int a, b, c; int max; /* */ Ÿ 3Ÿ 2Ÿ 3 printf(""); printf(""); printf(""); scanf("%d", &a); scanf("%d",

More information

RX開発環境移行ガイド V850からRXへの移行(コンパイラ編)(CA850/CX→CC-RX)

RX開発環境移行ガイド V850からRXへの移行(コンパイラ編)(CA850/CX→CC-RX) RX 開発環境移行ガイド V850からRXへの移行 ( コンパイラ編 ) (CA850/CX CC-RX) 2017/04/20 R20UT2608JJ0101 ソフトウェア事業部ソフトウエア技術部ルネサスシステムデザイン株式会社 はじめに 本資料は V850 ファミリ用 C コンパイラ CA850 および CX のプロジェクトを RX ファミリ用 C コン パイラ CC-RX のプロジェクトへ移行する際の

More information

Arduino UNO IS Report No. Report Medical Information System Laboratory

Arduino UNO IS Report No. Report Medical Information System Laboratory Arduino UNO 2015 2 25 IS Report No. Report Medical Information System Laboratory Abstract ( ) Arduino / Arduino Bluetooth Bluetooth : Arduino Arduino UNO Arduino IDE micro computer LED 1............................

More information

GR-SAKURA-SAのサンプルソフト説明

GR-SAKURA-SAのサンプルソフト説明 フルカラーシリアル LED テープ (1m) を GR-KURUMI で使ってみる 2014/2/25 がじぇっとるねさす鈴木 Rev. 1.00 フルカラーシリアル LED の特徴 http://www.switch-science.com/catalog/1399/ 3570 円 1m で 60 個の LED がついている 電源と信号線 1 本で制御する x 24 この信号を 24 個送信して

More information

LIN (Local Interconnect Network) マスタ編

LIN (Local Interconnect Network) マスタ編 お客様各位 カタログ等資料中の旧社名の扱いについて 2010 年 4 月 1 日を以って NEC エレクトロニクス株式会社及び株式会社ルネサステクノロジが合併し 両社の全ての事業が当社に承継されております 従いまして 本資料中には旧社名での表記が残っておりますが 当社の資料として有効ですので ご理解の程宜しくお願い申し上げます ルネサスエレクトロニクスホームページ (http://www.renesas.com)

More information

RXファミリ 多重割り込みの使い方 アプリケーションノート

RXファミリ 多重割り込みの使い方 アプリケーションノート RAN954JJ Rev.. RX.... 2 2.... 4 3.... 4 4.... 5 5.... 6 6.... 4 7.... 4 RAN954JJ Rev.. Page of 5 . IRQ IRQ3 PSW I PSW I I. #pragma interrupt (enable) : RX22 IRQ #pragma interrupt (Excep_IRQm (enable,vect=65))

More information

スライド 1

スライド 1 RX ファミリ用コンパイラスタートアップの紹介 ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ スタートアップの概要 スタートアッププログラム例 外部メモリを利用する場合の設定 2 スタートアップの概要 3 処理の流れとファイル構成例 パワーオン リセット Fixed_Vectors ( 固定ベクタテーブル )

More information

thesis.dvi

thesis.dvi H8 e041220 2009 2 Copyright c 2009 by Kentarou Nagashima c 2009 Kentarou Nagashima All rights reserved , H8.,,,..,.,., AKI-H8/3052LAN. OS. OS H8 Write Turbo. H8 C, Cygwin.,., windows. UDP., (TA7279P).,.

More information

tutorial_lc.dvi

tutorial_lc.dvi 00 Linux v.s. RT Linux v.s. ART-Linux Linux RT-Linux ART-Linux Linux kumagai@emura.mech.tohoku.ac.jp 1 1.1 Linux Yes, No.,. OS., Yes. Linux,.,, Linux., Linux.,, Linux. Linux.,,. Linux,.,, 0..,. RT-Linux

More information

アプリケーションノート AS-E402サンプルプログラム

アプリケーションノート AS-E402サンプルプログラム GR-SAKURA 用拡張ボード AS-E402 サンプルプログラム アプリケーションノート 1. 概要 GR-SAKURA AS-E402 CubeSuite+ 2. 用意するもの AS-E402 GR-SAKURA E1 DC GR-SAKURA AC E1 CubeSuite+ V2.01.00 3. サンプルプログラムの動作 AS-E402 LED SW1 LED1 SW2 LED2 LED3

More information

10ビットPWM機能によるデューティパルス出力

10ビットPWM機能によるデューティパルス出力 お 客 様 各 位 カタログ 等 資 料 中 の 旧 社 名 の 扱 いについて 2010 年 4 月 1 日 を 以 ってNECエレクトロニクス 株 式 会 社 及 び 株 式 会 社 ルネサステクノロジ が 合 併 し 両 社 の 全 ての 事 業 が 当 社 に 承 継 されております 従 いまして 本 資 料 中 には 旧 社 名 での 表 記 が 残 っておりますが 当 社 の 資 料 として

More information

untitled

untitled H8/300,H8S,H8SX [H8S,H8/300 Tool Chain Ver6.2.0.0] #define Inline static inline //************************************************** Inline char sil_and_mem(char *mem,char and) return (*((volatile

More information

[ 1] 1 Hello World!! 1 #include <s t d i o. h> 2 3 int main ( ) { 4 5 p r i n t f ( H e l l o World!! \ n ) ; 6 7 return 0 ; 8 } 1:

[ 1] 1 Hello World!! 1 #include <s t d i o. h> 2 3 int main ( ) { 4 5 p r i n t f ( H e l l o World!! \ n ) ; 6 7 return 0 ; 8 } 1: 005 9 7 1 1.1 1 Hello World!! 5 p r i n t f ( H e l l o World!! \ n ) ; 7 return 0 ; 8 } 1: 1 [ ] Hello World!! from Akita National College of Technology. 1 : 5 p r i n t f ( H e l l o World!! \ n ) ;

More information

(Making the electronic circuit with use of micro-processor)

(Making the electronic circuit with use of micro-processor) (Making the electronic circuit with use of micro-processor) 1055083 1 1 2 3 4 2L T = Vs T = 1 34000 2 = 58.824 5 4069 9V R1 1k Q1 NPN R2 1k

More information

Microsoft PowerPoint - RX62N動画マニュアルDMAC.ppt [互換モード]

Microsoft PowerPoint - RX62N動画マニュアルDMAC.ppt [互換モード] RX62N 周辺機能紹介 DMAC Direct Memory Access Controller ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ DMACの概要 転送モード 起動要因 その他の機能 プログラムサンプル 2 DMAC の概要 3 機能概要 項目 内容 最大転送数起動要因チャネル優先順位 1データ転送データブロックサイズノーマル

More information

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for ARM Lite 4.2.0 で作成した STM32F4 Discovery 基板用のプロジェクトです

More information

untitled

untitled II yacc 005 : 1, 1 1 1 %{ int lineno=0; 3 int wordno=0; 4 int charno=0; 5 6 %} 7 8 %% 9 [ \t]+ { charno+=strlen(yytext); } 10 "\n" { lineno++; charno++; } 11 [^ \t\n]+ { wordno++; charno+=strlen(yytext);}

More information

(search: ) [1] ( ) 2 (linear search) (sequential search) 1

(search: ) [1] ( ) 2 (linear search) (sequential search) 1 2005 11 14 1 1.1 2 1.2 (search:) [1] () 2 (linear search) (sequential search) 1 2.1 2.1.1 List 2-1(p.37) 1 1 13 n

More information

8ビットデータバスでアクセスする場合は、16ビットレジスタを上位バイト、下位バイトに分けてアクセスします

8ビットデータバスでアクセスする場合は、16ビットレジスタを上位バイト、下位バイトに分けてアクセスします はじめにこのたびは 弊社 T-IADA168 をお買い上げ頂きましてまことにありがとうございます このマニュアルは T-IADA168 の概要等について説明しています 各 LSI についての詳細は必要に応じてデータシートを参照してください ハードウエアの不具合に関しましてのサポートはいたしますが RTOS を含めたソフト面のサポートは基本的にはしておりません 注意事項 (1) 本書の内容に関しては将来予告なしに変更することがあります

More information

ETCB Manual

ETCB Manual ETCB Manual HARDWARE & PROGRAMMING MANUAL 目次 始めに ETCB 仕様 開発環境の構築 01 始めに 始めに 始めに 注意事項 免責事項 同梱品 02 始めに サポート 03 ETCB 仕様 ETCB 仕様 概要 仕様 項目サブ項目内容電源推奨入力電圧 6.6V~12V 最大入力電圧 16V 出力電圧内部 3.3V 外部 5.0V 最大出力電流値最大 2.2A

More information

I ASCII ( ) NUL 16 DLE SP P p 1 SOH 17 DC1! 1 A Q a q STX 2 18 DC2 " 2 B R b

I ASCII ( ) NUL 16 DLE SP P p 1 SOH 17 DC1! 1 A Q a q STX 2 18 DC2  2 B R b I 4 003 4 30 1 ASCII ( ) 0 17 0 NUL 16 DLE SP 0 @ P 3 48 64 80 96 11 p 1 SOH 17 DC1! 1 A Q a 33 49 65 81 97 113 q STX 18 DC " B R b 34 50 66 8 98 114 r 3 ETX 19 DC3 # 3 C S c 35 51 67 83 99 115 s 4 EOT

More information

joho07-1.ppt

joho07-1.ppt 0xbffffc5c 0xbffffc60 xxxxxxxx xxxxxxxx 00001010 00000000 00000000 00000000 01100011 00000000 00000000 00000000 xxxxxxxx x y 2 func1 func2 double func1(double y) { y = y + 5.0; return y; } double func2(double*

More information

Taro11-表紙と目次.PDF

Taro11-表紙と目次.PDF 2 1 2 2 3 4 6 1 6 2 7 10 PIC 11 PIC16F84A 14 1 IC 14 2 PIC16F84A 14 3 PIC 16 4 PIC 23 26 PIC 31 33 35 38 38 39 1 PICLite 39 2 my.h 41 43 1 43 2 44 3 45 4 PIC 46 5 PIC 48 49 1 LED 49 2 LED 53 3 LED 55 4

More information

Microsoft Word - SU1203教本(Sens)原稿.docx

Microsoft Word - SU1203教本(Sens)原稿.docx int valsw; // void setup(){ pinmode(13, OUTPUT); pinmode(a4, INPUT_PULLUP); //13 //A4 } void loop(){ valsw = digitalread(a4); if(valsw == 0){ //A4 valsw //valsw } digitalwrite(13, HIGH); //valsw 0LED ------(A)

More information

Microsoft Word - T-ADA16S.doc

Microsoft Word - T-ADA16S.doc T-ADA16S rev.1.0 PC/104 バスシリーズ 12ビットAD 12ビットDA 絶縁 IO 取扱説明書 各商品は 各社の商標 登録商標です ( 株 ) ティーエーシー各種制御用マイクロコンピュータ設計 製作 販売 この製品の外観及び仕様は品質改善のため 予告無く変更することがありますのでご了承下さい 600-8896 京都市下京区西七条西石ヶ坪町 66 電話 :075-311-7307

More information

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D II 8 2003 11 12 1 6 ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 Daisuke 8 =>. 73 Daisuke 35 Hiroshi 64 Ichiro 87 Junko

More information

FreeBSD 1

FreeBSD 1 FreeBSD 1 UNIX OS 1 ( ) open, close, read, write, ioctl (cdevsw) OS DMA 2 (8 ) (24 ) 256 open/close/read/write Ioctl 3 2 2 I/O I/O CPU 4 open/close/read/write open, read, write open/close read/write /dev

More information

2008 DS T050049

2008 DS T050049 DS T050049. PSP DS DS DS RPG DS OS Windows XP DevkiPro OS DS CPU ARM devkitarm MSYS MinGW MSYS MinGW Unix OS C++ C++ make nds nds DS DS micro SD Card nds DS DS DS nds C Java C++ nds nds DS 2008 DS T050049

More information

( ) ー ( () ) 250 200 150 100 50 0 51 20 54 59 33 35 91 92 93 98 99 94 6 7 7 8 9 11 18 17 18 20 22 23 10 9 8 9 9 9 62 40 66 74 41 47 21 22 23 24 25 26 10 8 6 4 2 0 m3/s 7 41.3 5 5 18.4

More information

Microsoft Word - SU1204教本(Driver)原稿.docx

Microsoft Word - SU1204教本(Driver)原稿.docx void setup(){ pinmode(13, OUTPUT); //13 void loop(){ digitalwrite(13, HIGH); //13 HIGH delay(500); digitalwrite(13, LOW); //13 LOW delay(500); setup pinmode loop delay C M B void setup(){ pinmode(12,output);

More information

NI P1200 Release Notes Cover

NI P1200 Release Notes Cover PEX-H2994W Board Support Package Installation on RedHawk Release Notes July 4, 2019 1. はじめに 本書は Concurrent Real Time IncCCRT) の RedHawk 上で動作する インターフェース社製 PEX- H2994W PCI Express ボードサポートパッケージ用リリースノートです

More information

model-600E用ActiveX取扱説明書

model-600E用ActiveX取扱説明書 model-600e ActiveX Rev 1.0 2008 9 12 ( ) 1. model-600e ActiveX Microsoft OLE model-600e Microsoft Visual Basic 2. model-600e ActiveX 3. [1] 4. Microsoft Excel 2007 1) Excel2007 ActiveX ActiveX KEISOKU

More information

R8C/M12Aマイコン実習マニュアル ブレッドボード版

R8C/M12Aマイコン実習マニュアル ブレッドボード版 R8C/MA マイコン実習マニュアルブレッドボード版 第.0 版 05.04.0 株式会社日立ドキュメントソリューションズ 注意事項 (rev.6.0h) 著作権 本マニュアルに関する著作権は株式会社日立ドキュメントソリューションズに帰属します 本マニュアルは著作権法および 国際著作権条約により保護されています 禁止事項 ユーザーは以下の内容を行うことはできません 第三者に対して 本マニュアルを販売

More information

O(N) ( ) log 2 N

O(N) ( ) log 2 N 2005 11 21 1 1.1 2 O(N) () log 2 N 1.2 2 1 List 3-1 List 3-3 List 3-4? 3 3.1 3.1.1 List 2-1(p.70) 1 1 10 1 3.1.2 List 3-1(p.70-71) 1 1 2 1 2 2 1: 1 3 3.1.3 1 List 3-1(p.70-71) 2 #include stdlib.h

More information

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ 第 2 回 本日の内容割り込みとは タイマー 割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれば 次の動作に移るし そうでなければ また少し待ってから同じことを繰り返す

More information

3. スイッチ設定 ( 表 3) モジュール SW4 SW5 C1 OFF 下 (GND) C2 OFF 下 (GND) C3 OFF 下 (GND) C4 OFF 下 (GND) C5 OFF 上 (R/-W) C6 ON 下 (GND) 使用するモジュールに応じて, スイッチを切り換えて下さい.

3. スイッチ設定 ( 表 3) モジュール SW4 SW5 C1 OFF 下 (GND) C2 OFF 下 (GND) C3 OFF 下 (GND) C4 OFF 下 (GND) C5 OFF 上 (R/-W) C6 ON 下 (GND) 使用するモジュールに応じて, スイッチを切り換えて下さい. キャラクタ LCD を制御 (C 言語 ) 対象 :16 文字 2 行 (SC1602BS*B) 20 文字 4 行 (SC2004CS*B) 表 1 接続 (Bit) キャラジェネ (CGRAM) 点滅 (BLINK) BUSY フラグ LCD 電源 (ON/OFF) (BF) SC1602_C1 SC2004_C1 8 x x x x SC1602_C2 SC2004_C2 4 x x x x

More information

Java演習(4) -- 変数と型 --

Java演習(4)   -- 変数と型 -- 50 20 20 5 (20, 20) O 50 100 150 200 250 300 350 x (reserved 50 100 y 50 20 20 5 (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics; (reserved public class Blocks1 extends

More information

51505agj.PDF

51505agj.PDF Type No. 2002 7 3 ******** 1.... 2 2.... 3 3.... 7 4. I/O... 9 5.... 11 6.... 12 7.... 16 8.... 16 9.... 16 10.... 17 11.... 18 CORPORATION Page 1/18 1. min. -20max. 70 min. -20max. 70 20 2 5 8 1 83.0

More information

スライド 1

スライド 1 RX62N 周辺機能紹介 MTU2 マルチファンクションタイマパルスユニット 2 ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ MTU2 の概要 プログラムサンプル (1) インプットキャプチャ機能 プログラムサンプル (2) PWM モード プログラムサンプル (3) 相補 PWM モード プログラムサンプルのカスタマイズ

More information

6-1

6-1 6-1 (data type) 6-2 6-3 ML, Haskell, Scala Lisp, Prolog (setq x 123) (+ x 456) (setq x "abc") (+ x 456) ; 6-4 ( ) subtype INDEX is INTEGER range -10..10; type DAY is (MON, TUE, WED, THU, FRI, SAT, SUN);

More information

V850E2/ML4 マイクロコンピュータ Peripheral LibUSB Demo アプリケーションノート

V850E2/ML4 マイクロコンピュータ Peripheral LibUSB Demo アプリケーションノート R01AN1098JJ0100 Rev.1.00 V850E2/ML4 USB PC V850E2/ML4 CPU LED V850E2/ML4(uPD70F4022) 1.... 2 2.... 3 3.... 4 4.... 6 5.... 9 6.... 18 R01AN1098JJ0100 Rev.1.00 Page 1 of 27 1. 1.1 V850E2/ML4 USB PC LibUSB

More information

DA100データアクイジションユニット通信インタフェースユーザーズマニュアル

DA100データアクイジションユニット通信インタフェースユーザーズマニュアル Instruction Manual Disk No. RE01 6th Edition: November 1999 (YK) All Rights Reserved, Copyright 1996 Yokogawa Electric Corporation 801234567 9 ABCDEF 1 2 3 4 1 2 3 4 1 2 3 4 1 2

More information

第5回お試しアカウント付き並列プログラミング講習会

第5回お試しアカウント付き並列プログラミング講習会 qstat -l ID (qstat -f) qscript ID BATCH REQUEST: 253443.batch1 Name: test.sh Owner: uid=32637, gid=30123 Priority: 63 State: 1(RUNNING) Created at: Tue Jun 30 05:36:24 2009 Started at: Tue Jun 30 05:36:27

More information

⊿ΣA/D 変換器 ユーザーズガイド

⊿ΣA/D 変換器 ユーザーズガイド お客様各位 カタログ等資料中の旧社名の扱いについて 年 月 日を以って NEC エレクトロニクス株式会社及び株式会社ルネサステクノロジが合併し 両社の全ての事業が当社に承継されております 従いまして 本資料中には旧社名での表記が残っておりますが 当社の資料として有効ですので ご理解の程宜しくお願い申し上げます ルネサスエレクトロニクスホームページ (http://www.renesas.com) 年

More information

アプリケーションノート MT-R300 割り込みプログラムのデバッグ方法

アプリケーションノート MT-R300 割り込みプログラムのデバッグ方法 アプリケーションノート マイコントレーニングボード MT-R300 割り込みプログラムのモニタデバッグ方法 1. 概要 マイコントレーニングボード MT-R300 に搭載しているルネサステクノロジ社の 16 ビットマイコン HD64F3062BF ( 以下 H8/3062BF マイコン ) では H8/300H 用モニタプログラム ( 以下モニタプログラム ) を内蔵フラッシュメモリに書込むことで

More information

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一 RX210 グループ IRQ 割り込みを使用したパルス出力 要旨 本サンプルコードでは IRQ 割り込みが発生すると 一定期間タイマでパルスを出力する 方法について説明します 対象デバイス RX210 1 / 25 内容 1. 仕様... 3 2. 動作確認条件... 3 3. ハードウェア説明... 3 3.1 使用端子一覧... 3 4. ソフトウェア説明... 4 4.1 動作概要... 4

More information

Untitled

Untitled AtTiny85 (TS119-5 ) ------------------------------------------ Ver-1.0 23.Aug.2016 S.S 9 5 CPU EE-PROM TS119-5(7 +α ) #include #define KEYIN 2 #define BUZZER 3 #define LED 5 #define stsound1

More information

double float

double float 2015 3 13 1 2 2 3 2.1.......................... 3 2.2............................. 3 3 4 3.1............................... 4 3.2 double float......................... 5 3.3 main.......................

More information

untitled

untitled ( ) () ( ) 1 1 TX19A31_AG3 TX19A/H1 CPUTMP19A31CYFG AG3 AG3 2 2 3 TX19A31_AG3 CPU 32 RISC TMP19A31CYFG (U1) 80MHz ROM 32Mbit ROM 1 ROM (U8) 16Mbit Flash ROM 1 (U9) RAM 4Mbit SRAM 1 (U10) I/F RS232C 1chSIO

More information

Condition DAQ condition condition 2 3 XML key value

Condition DAQ condition condition 2 3 XML key value Condition DAQ condition 2009 6 10 2009 7 2 2009 7 3 2010 8 3 1 2 2 condition 2 3 XML key value 3 4 4 4.1............................. 5 4.2...................... 5 5 6 6 Makefile 7 7 9 7.1 Condition.h.............................

More information

JAXA key

JAXA key ! 芸術衛星INVADERのフライトモデル I A 2 8 7 IC J 6 R 22 I 7 6 C 9 I 9 9 J 7R 2 R 9 6 8 I 7 8 7 2 I22 7 8 2 J C I R 2 8 7 J 8 2 R C J C 9 6 I 2 6 7 2 8 8 6 I C 7 I C 9 C 9 J 7 C R 2 8 7 I I 9 6 8 2 R J 8 7 C

More information

Microsoft Word - no15.docx

Microsoft Word - no15.docx ex33.c /* */ #define IDLENGTH 7 /* */ #define MAX 100 /* */ /* */ struct student char idnumber[idlength + 1]; /* */ int math; /* () */ int english; /* () */ int japanese; /* () */ double average; /* */

More information

- - http://168iroha.net 018 10 14 i 1 1 1.1.................................................... 1 1.................................................... 7.1................................................

More information

sm1ck.eps

sm1ck.eps DATA SHEET DS0 0 ASSP, IC,,,,, (VS =. V.%) (VCC = 0. V ) (VR =. V.%) ( ) DIP, SIP, SOP, (DIP-P-M0) (SIP-P-M0) (FPT-P-M0) (FRONT VIEW) (TOP VIEW) C T C T V S V REF V CC V CC V REF V S (DIP-P-M0) (FPT-P-M0)

More information

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ 第 2 回 本日の内容割り込みとは タイマー 割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれば 次の動作に移るし そうでなければ また少し待ってから同じことを繰り返す

More information

2: 3: A, f, φ f(t = A sin(2πft + φ = A sin(ωt + φ ω 2πf 440Hz A ( ( 4 ( 5 f(t = sin(2πf 1t + sin(2πf 2 t = 2 sin(2πt(f 1 + f 2 /2 cos(2πt(f 1 f

2: 3: A, f, φ f(t = A sin(2πft + φ = A sin(ωt + φ ω 2πf 440Hz A ( ( 4 ( 5 f(t = sin(2πf 1t + sin(2πf 2 t = 2 sin(2πt(f 1 + f 2 /2 cos(2πt(f 1 f 12 ( TV TV, CATV, CS CD, DAT, DV, DVD ( 12.1 12.1.1 1 1: T (sec f (Hz T= 1 f P a = N/m 2 1.013 10 5 P a 1 10 5 1.00001 0.99999 2,3 1 2: 3: 12.1.2 A, f, φ f(t = A sin(2πft + φ = A sin(ωt + φ ω 2πf 440Hz

More information

Java updated

Java updated Java 2003.07.14 updated 3 1 Java 5 1.1 Java................................. 5 1.2 Java..................................... 5 1.3 Java................................ 6 1.3.1 Java.......................

More information

新・明解C言語 実践編

新・明解C言語 実践編 第 1 章 見 21 1-1 見えないエラー 見 List 1-1 "max2x1.h" a, b max2 List 1-1 chap01/max2x1.h max2 "max2x1.h" #define max2(a, b) ((a) > (b)? (a) : (b)) max2 List 1-2 List 1-2 chap01/max2x1test.c max2 #include

More information

新版明解C言語 実践編

新版明解C言語 実践編 2 List - "max.h" a, b max List - max "max.h" #define max(a, b) ((a) > (b)? (a) : (b)) max List -2 List -2 max #include "max.h" int x, y; printf("x"); printf("y"); scanf("%d", &x); scanf("%d", &y); printf("max(x,

More information

RX600 & RX200シリーズ RX用シンプルフラッシュAPI アプリケーションノート

RX600 & RX200シリーズ RX用シンプルフラッシュAPI アプリケーションノート R01AN0544JU0240 Rev.2.40 RX600 RX200 API MCU API API RX 0xFF 3.10 API RX610 RX621 RX62N RX62T RX62G RX630 RX631 RX63N RX63T RX210 1.... 2 2. API... 3 3.... 11 4.... 16 5. API... 18 6.... 32 R01AN0544JU0240

More information

jikken.dvi

jikken.dvi 1 1 PI 2 1 2 ( 1) H8-Tiny H8/3672 HD64F3672FP 16 CPU ( 16MHz) ROM 16KB, RAM 2048 2KB AD LED 1(c) ( A ) 赤外 LED 前 CdS セル LED 表示 RS232C 端子 (PC との接続端子 ) センサ類 ラインセンサ x3 (LED+CdS セル ) モータドライバ ターゲット Start ボタン

More information

NL-22/NL-32取扱説明書_操作編

NL-22/NL-32取扱説明書_操作編 MIC / Preamp ATT NL-32 A C ATT AMP 1 AMP 2 AMP 3 FLAT FLAT CAL.SIG. OVER LOAD DET. AMP 4 AMP 5 A/D D/A CONV. AMP 6 AMP 7 A/D CONV. Vref. AMP 8 AMP 10 DC OUT AMP 9 FILTER OUT AC DC OUT AC OUT KEY SW Start

More information

Microsoft Word - 本文.doc

Microsoft Word - 本文.doc - 内蔵コンパイラ ForCy で学ぶ - 組み込みプログラミング ForCy USB 2.0 初版 2007/08/03 第 2 版 2009/02/03 有限会社リカージョン - 内蔵コンパイラ ForCy で学ぶ - 組み込みプログラミング FORTH C + 4 / :ForCy i ForCy-USB ForCy-USB USB ForCy C - 2 - ForCy-USB Atmel

More information

For_Beginners_CAPL.indd

For_Beginners_CAPL.indd CAPL Vector Japan Co., Ltd. 目次 1 CAPL 03 2 CAPL 03 3 CAPL 03 4 CAPL 04 4.1 CAPL 4.2 CAPL 4.3 07 5 CAPL 08 5.1 CANoe 5.2 CANalyzer 6 CAPL 10 7 CAPL 11 7.1 CAPL 7.2 CAPL 7.3 CAPL 7.4 CAPL 16 7.5 18 8 CAPL

More information

Microsoft Word - マイコンを用いた信号# doc

Microsoft Word - マイコンを用いた信号# doc 1. C 2. 2.1 1980 Z80 PIC AVR SuperH H8 PICPeripheral Interface Controller 20MHz AD RA2 RA3 RA4 CLR VSS RB0 RB1 RB2 RB3 1 2 3 4 5 6 7 8 9 PIC16F84A-20P 0315025 18 RA1 17 RA0 16 CLK1 15 CLK2 14 VDD 13 RB7

More information

スライド 1

スライド 1 RX62N 周辺機能紹介 CMT コンペアマッチタイマ ルネサスエレクトロニクス株式会社ルネサス半導体トレーニングセンター 2013/08/02 Rev. 1.00 00000-A コンテンツ CMT の概要 プログラムサンプル プログラムサンプルのカスタマイズ 2 CMT の概要 3 CMT の仕様 CMT ユニット 0 チャネル 16ビットタイマ CMT0 CMT1 ユニット 1 CMT2 CMT3

More information

MAX191 EV J

MAX191 EV J -0; Rev ; / µ µ PART TEMP. RANGE BOARD TYPE MAXEVSYS-DIP 0 C to +0 C Through-Hole MAXEVKIT-DIP 0 C to +0 C Through-Hole 0CMODULE-DIP 0 C to +0 C Through-Hole Evaluates: MAX Maxim Integrated Products Evaluates:

More information

64bit SSE2 SSE2 FPU Visual C++ 64bit Inline Assembler 4 FPU SSE2 4.1 FPU Control Word FPU 16bit R R R IC RC(2) PC(2) R R PM UM OM ZM DM IM R: reserved

64bit SSE2 SSE2 FPU Visual C++ 64bit Inline Assembler 4 FPU SSE2 4.1 FPU Control Word FPU 16bit R R R IC RC(2) PC(2) R R PM UM OM ZM DM IM R: reserved (Version: 2013/5/16) Intel CPU (kashi@waseda.jp) 1 Intel CPU( AMD CPU) 64bit SIMD Inline Assemler Windows Visual C++ Linux gcc 2 FPU SSE2 Intel CPU double 8087 FPU (floating point number processing unit)

More information

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一 RX63N グループ IRQ 割り込みを使用したパルス出力 要旨 本サンプルコードでは IRQ 割り込みが発生すると 一定期間タイマでパルスを出力する 方法について説明します 対象デバイス RX63N 1 / 53 内容 1. 仕様... 3 2. 動作確認条件... 3 3. ハードウェア説明... 3 3.1 使用端子一覧... 3 4. ソフトウェア説明... 4 4.1 動作概要... 4

More information

void hash1_init(int *array) int i; for (i = 0; i < HASHSIZE; i++) array[i] = EMPTY; /* i EMPTY */ void hash1_insert(int *array, int n) if (n < 0 n >=

void hash1_init(int *array) int i; for (i = 0; i < HASHSIZE; i++) array[i] = EMPTY; /* i EMPTY */ void hash1_insert(int *array, int n) if (n < 0 n >= II 14 2018 7 26 : : proen@mm.ics.saitama-u.ac.jp 14,, 8 2 12:00 1 O(1) n O(n) O(log n) O(1) 32 : 1G int 4 250 M 2.5 int 21 2 0 100 0 100 #include #define HASHSIZE 100 /* */ #define NOTFOUND 0

More information

RX62N グループ SCI を使ったクロック同期式シングルマスタ制御ソフトウェア

RX62N グループ SCI を使ったクロック同期式シングルマスタ制御ソフトウェア RX62N SCI R01AN1088JJ0101 Rev.1.01 RX62N SCI SPI SPI MCU RX62N R1EX25xxx SPI Serial EEPROM Micron Technology M25P Serial Flash memory 64Mbit Micron Technology M45PE Serial Flash memory 1Mbit 1.... 2 2....

More information

19.1. M16C 19. PSD 55ms CPU f AD 10MHz AN4(P104) ϕ AD A/D f AD/4(= 8MHz) 8 AN4 PSD ( ) 8 A/D sci.h 1 #ifndef _SCI_H_ 2 #define _SCI_H_ 3 4 #define SCI

19.1. M16C 19. PSD 55ms CPU f AD 10MHz AN4(P104) ϕ AD A/D f AD/4(= 8MHz) 8 AN4 PSD ( ) 8 A/D sci.h 1 #ifndef _SCI_H_ 2 #define _SCI_H_ 3 4 #define SCI 427 19 CPU 19.1 M16C OAKS16-LCD Board OAKS16-62P BoardKit I/O OAKS16-62P BoardKit CPU M30620FCAFP OAKS16-LCD Board LED8 8 2 16 2 LCD1 RS232C D C 19.1.1 M16C/62 A/D ( ) PSD GP2D12 AN4 8 A/D PSD 19.1. M16C

More information

untitled

untitled CISC(complex instruction set computer) RISC(reduced instruction set computer) (cross software) (compiler) (assembler) (linkage editor) (loader) tokenizer) (parser) (code generator) (execute) GNU http://www.gnu.org/

More information

(2 Linux Mozilla [ ] [ ] [ ] [ ] URL 2 qkc, nkc ~/.cshrc (emacs 2 set path=($path /usr/meiji/pub/linux/bin tcsh b

(2 Linux Mozilla [ ] [ ] [ ] [ ] URL   2 qkc, nkc ~/.cshrc (emacs 2 set path=($path /usr/meiji/pub/linux/bin tcsh b II 5 (1 2005 5 26 http://www.math.meiji.ac.jp/~mk/syori2-2005/ UNIX (Linux Linux 1 : 2005 http://www.math.meiji.ac.jp/~mk/syori2-2005/jouhousyori2-2005-00/node2. html ( (Linux 1 2 ( ( http://www.meiji.ac.jp/mind/tool/internet-license/

More information

(Version: 2017/4/18) Intel CPU 1 Intel CPU( AMD CPU) 64bit SIMD Inline Assemler Windows Visual C++ Linux gcc 2 FPU SSE2 Intel CPU do

(Version: 2017/4/18) Intel CPU 1 Intel CPU( AMD CPU) 64bit SIMD Inline Assemler Windows Visual C++ Linux gcc 2 FPU SSE2 Intel CPU do (Version: 2017/4/18) Intel CPU (kashi@waseda.jp) 1 Intel CPU( AMD CPU) 64bit SIMD Inline Assemler Windows Visual C++ Linux gcc 2 FPU SSE2 Intel CPU double 8087 FPU (floating point number processing unit)

More information

bitvisor-ipc v12b.key

bitvisor-ipc v12b.key PC PC OS PC PC 1 1 2 101 101 enum tre_rpc_direction { TRE_RPC_DIRECTION_REQUEST, TRE_RPC_DIRECTION_RESULT }; struct tre_rpc_request { }; enum tre_rpc_direction direction; ulong id; ulong proc_number;

More information

2

2 WV-CW960 2 3 4 5 6 7 8 9 10 11 SW1 S TA RT RS485Setting SW2 DIP SW1 ON 1 2 3 4 5 6 7 8 ON 1 2 3 4 DIP SW2 12 13 q w q e 14 15 16 17 18 19 ** RS485 SETUP ** UNIT NUMBER SUB ADDRESS BAUD RATE DATA BIT PARITY

More information

PowerPoint Presentation

PowerPoint Presentation p.130 p.198 p.208 2 double weight[num]; double min, max; min = max = weight[0]; for( i= 1; i i < NUM; i++ ) ) if if ( weight[i] > max ) max = weight[i]: if if ( weight[i] < min ) min = weight[i]: weight

More information

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード] RL78/G14 周辺機能紹介タイマ RD ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ タイマ RD の概要 PWM 機能のプログラム サンプル紹介 相補 PWM モードのプログラム サンプル紹介 2 タイマ RD の概要 3 タイマ RD の機能 モード 使用チャネル チャネル0, チャネル1 独立で使用

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 磁気コンパスの試作 ~ データ送信の無線化 ~ 液晶表示 電源 5V 位 ICSP PICKit3 PIC:16F1827 液晶表示器 ACM1602NI-FLW-FBW-M01 液晶表示器 AQM0802A-RN-GBW PIC16F1827 完成版 変更点 :2015.1.23 2015.1.30 倒立振子デモ 2015.1.22 倒立振子, グラフィッデモ 2014.12.18 グラフィックデモ

More information

表 示 制 御 16 文 字 2 行 の 表 示 が 可 能 ですが, 内 部 アドレスと LCD 画 面 とは 連 続 したアドレスに 配 置 されていませ ん. +00 +01 +02 +03 +04 +05 +06 +07 +08 +09 +0A +0B +0C +0D +0E +0F +40

表 示 制 御 16 文 字 2 行 の 表 示 が 可 能 ですが, 内 部 アドレスと LCD 画 面 とは 連 続 したアドレスに 配 置 されていませ ん. +00 +01 +02 +03 +04 +05 +06 +07 +08 +09 +0A +0B +0C +0D +0E +0F +40 LCD(SC1602)4ビットモード 接 続 Sunlike 社 製 SC1602を 制 御 してみます. 今 回 は 結 線 数 を 節 約 して,マイコンとは6 本 のポートを 使 って 接 続 します. 接 続 の 概 要 LCDを4ビットモードで 制 御 LCDとマイコンの 接 続 は6 本 DB4~DB7:4ビットモードデータバス RS :レジスタセレクト (コマンド/データ) E :イネーブル

More information

マイコンボードの LED 制御 準備編その 1 マイコンとノート PC の役割 どうすれば LED は光るの? 光らせる LED の選択は? マイコン端子に接続された LED マイコン端子の電圧設定 制御用ソフトウェアの注意点 1

マイコンボードの LED 制御 準備編その 1 マイコンとノート PC の役割 どうすれば LED は光るの? 光らせる LED の選択は? マイコン端子に接続された LED マイコン端子の電圧設定 制御用ソフトウェアの注意点 1 マイコンボードの LED 制御 準備編その 1 マイコンとノート PC の役割 どうすれば LED は光るの? 光らせる LED の選択は? マイコン端子に接続された LED マイコン端子の電圧設定 制御用ソフトウェアの注意点 1 入出力ポートAD 変換器 アナログ光センサデジタル入出力ポートマイコンボード マイコンとノート PC の役割 タイマー プログラム メモリ ( アナログ入力をデジタル信号へ変換

More information