📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{… |
|||
| (同じ利用者による、間の2版が非表示) | |||
| 399行目: | 399行目: | ||
<br><br> | <br><br> | ||
== サンプルコード == | |||
以下の例では、タイマA0 CCR0の比較一致割り込み (CCR0の割り込みサービスルーチン) により、LEDを1秒ごとにトグルしている。<br> | |||
<br> | |||
タイマA0の設定を以下に示す。<br> | |||
* CCR0の比較一致割り込みを有効する。 | |||
* CCR0に <math>32768 - 1</math> を設定して、1秒間隔で割り込みが発生するように設定する。 (ACLKは、32.768[kHz]) | |||
* タイマA0のクロックソースをACLKに設定して、アップモードで動作させる。 | |||
<br> | |||
<syntaxhighlight lang="c"> | |||
#include <msp430.h> | |||
#define LED_PIN BIT0 // LEDが接続されているピン (例: P1.0) | |||
int main(void) | |||
{ | |||
WDTCTL = WDTPW | WDTHOLD; // ウォッチドッグタイマを停止 | |||
P1DIR |= LED_PIN; // LEDピンを出力に設定 | |||
// タイマA0の設定 | |||
TA0CCTL0 = CCIE; // CCR0の比較一致割り込みを有効化 | |||
TA0CCR0 = 32768 - 1; // 1秒間隔 (ACLK = 32.768[kHz]) | |||
TA0CTL = TASSEL_1 | MC_1; // ACLKを選択して、アップモード | |||
// 低電力モード3 (LPM3), 割り込みを有効化 | |||
__bis_SR_register(LPM3_bits | GIE); | |||
// 空の操作 (コンパイラの最適化を防ぐため) | |||
__no_operation(); | |||
} | |||
// タイマA0 CCR0の割り込みサービスルーチン | |||
#pragma vector=TIMER0_A0_VECTOR | |||
__interrupt void Timer_A0_ISR(void) | |||
{ | |||
P1OUT ^= LED_PIN; // LEDの状態を切り替え | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
また、Timer_A3モジュールのタイマA0を使用する場合、Timer_A3モジュールの割り込みベクトル名は<code>TIMER0_A1_VECTOR</code>であるため、割り込みベクトル名を変更する必要がある。<br> | |||
したがって、変更点は、割り込みサービスルーチンの宣言部分のみとなる。<br> | |||
<syntaxhighlight lang="c"> | |||
#pragma vector=TIMER0_A1_VECTOR | |||
</syntaxhighlight> | |||
<br><br> | |||
{{#seo: | |||
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | |||
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板 | |||
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | |||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |||
}} | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:MSP430]] | [[カテゴリ:MSP430]] | ||